mirror of https://github.com/ARMmbed/mbed-os.git
[dev_asynch_i2c] Extend asynch I2C to STM32F4 boards
Move i2c_s to common_objects.h Introduce I2C Master/Slave asynch test Test I2C asynch master/slave on STM32F4 boardspull/2622/head
parent
1707b3c582
commit
d7dda282c2
|
@ -783,7 +783,7 @@
|
|||
"progen": {"target": "nucleo-f401re"},
|
||||
"detect_code": ["0720"],
|
||||
"macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
|
||||
"device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
|
||||
"device_has": ["ANALOGIN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
|
||||
"release_versions": ["2", "5"]
|
||||
},
|
||||
"NUCLEO_F410RB": {
|
||||
|
@ -796,7 +796,7 @@
|
|||
"progen": {"target": "nucleo-f410rb"},
|
||||
"macros": ["MBEDTLS_ENTROPY_HARDWARE_ALT", "TRANSACTION_QUEUE_SIZE_SPI=2"],
|
||||
"detect_code": ["0740"],
|
||||
"device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
|
||||
"device_has": ["ANALOGIN", "ANALOGOUT", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
|
||||
"release_versions": ["2", "5"]
|
||||
},
|
||||
"NUCLEO_F411RE": {
|
||||
|
@ -834,7 +834,7 @@
|
|||
"supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
|
||||
"progen": {"target": "nucleo-f429zi"},
|
||||
"macros": ["MBEDTLS_ENTROPY_HARDWARE_ALT", "DEVICE_RTC_LSI=1", "TRANSACTION_QUEUE_SIZE_SPI=2"],
|
||||
"device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
|
||||
"device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "RTC_LSI", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
|
||||
"detect_code": ["0796"],
|
||||
"features": ["IPV4"],
|
||||
"release_versions": ["2", "5"]
|
||||
|
@ -849,7 +849,7 @@
|
|||
"progen": {"target": "nucleo-f446re"},
|
||||
"detect_code": ["0777"],
|
||||
"macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
|
||||
"device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
|
||||
"device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
|
||||
"release_versions": ["2", "5"]
|
||||
},
|
||||
"NUCLEO_F446ZE": {
|
||||
|
@ -862,7 +862,8 @@
|
|||
"progen": {"target": "nucleo-f446ze"},
|
||||
"detect_code": ["0778"],
|
||||
"macros": ["TRANSACTION_QUEUE_SIZE_SPI=2"],
|
||||
"device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"]
|
||||
"device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
|
||||
"release_versions": ["2", "5"]
|
||||
},
|
||||
|
||||
"B96B_F446VE": {
|
||||
|
@ -1077,7 +1078,7 @@
|
|||
"macros": ["MBEDTLS_ENTROPY_HARDWARE_ALT","DEVICE_RTC_LSI=1","TRANSACTION_QUEUE_SIZE_SPI=2"],
|
||||
"supported_toolchains": ["ARM", "uARM", "GCC_ARM", "IAR"],
|
||||
"progen": {"target": "disco-f429zi"},
|
||||
"device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
|
||||
"device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_ASYNCH", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
|
||||
"release_versions": ["2", "5"]
|
||||
},
|
||||
"DISCO_F469NI": {
|
||||
|
@ -1090,7 +1091,7 @@
|
|||
"macros": ["MBEDTLS_ENTROPY_HARDWARE_ALT","TRANSACTION_QUEUE_SIZE_SPI=2"],
|
||||
"progen": {"target": "disco-f469ni"},
|
||||
"detect_code": ["0788"],
|
||||
"device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
|
||||
"device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "ERROR_RED", "I2C", "I2CSLAVE", "INTERRUPTIN", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "STDIO_MESSAGES"],
|
||||
"release_versions": ["2", "5"]
|
||||
},
|
||||
"DISCO_L053C8": {
|
||||
|
|
|
@ -65,10 +65,7 @@ struct dac_s {
|
|||
uint8_t channel;
|
||||
};
|
||||
|
||||
struct i2c_s {
|
||||
I2CName i2c;
|
||||
uint32_t slave;
|
||||
};
|
||||
|
||||
|
||||
#include "common_objects.h"
|
||||
#include "gpio_object.h"
|
||||
|
|
|
@ -65,10 +65,6 @@ struct dac_s {
|
|||
uint8_t channel;
|
||||
};
|
||||
|
||||
struct i2c_s {
|
||||
I2CName i2c;
|
||||
uint32_t slave;
|
||||
};
|
||||
|
||||
struct can_s {
|
||||
CANName can;
|
||||
|
|
|
@ -60,11 +60,6 @@ struct analogin_s {
|
|||
uint8_t channel;
|
||||
};
|
||||
|
||||
struct i2c_s {
|
||||
I2CName i2c;
|
||||
uint32_t slave;
|
||||
};
|
||||
|
||||
#include "common_objects.h"
|
||||
#include "gpio_object.h"
|
||||
|
||||
|
|
|
@ -65,11 +65,6 @@ struct dac_s {
|
|||
uint8_t channel;
|
||||
};
|
||||
|
||||
struct i2c_s {
|
||||
I2CName i2c;
|
||||
uint32_t slave;
|
||||
};
|
||||
|
||||
#include "common_objects.h"
|
||||
#include "gpio_object.h"
|
||||
|
||||
|
|
|
@ -65,11 +65,6 @@ struct dac_s {
|
|||
uint8_t channel;
|
||||
};
|
||||
|
||||
struct i2c_s {
|
||||
I2CName i2c;
|
||||
uint32_t slave;
|
||||
};
|
||||
|
||||
struct can_s {
|
||||
CANName can;
|
||||
int index;
|
||||
|
|
|
@ -65,11 +65,6 @@ struct dac_s {
|
|||
uint8_t channel;
|
||||
};
|
||||
|
||||
struct i2c_s {
|
||||
I2CName i2c;
|
||||
uint32_t slave;
|
||||
};
|
||||
|
||||
struct can_s {
|
||||
CANName can;
|
||||
int index;
|
||||
|
|
|
@ -60,11 +60,6 @@ struct analogin_s {
|
|||
uint8_t channel;
|
||||
};
|
||||
|
||||
struct i2c_s {
|
||||
I2CName i2c;
|
||||
uint32_t slave;
|
||||
};
|
||||
|
||||
#include "common_objects.h"
|
||||
#include "gpio_object.h"
|
||||
|
||||
|
|
|
@ -60,11 +60,6 @@ struct analogin_s {
|
|||
uint8_t channel;
|
||||
};
|
||||
|
||||
struct i2c_s {
|
||||
I2CName i2c;
|
||||
uint32_t slave;
|
||||
};
|
||||
|
||||
#include "common_objects.h"
|
||||
#include "gpio_object.h"
|
||||
|
||||
|
|
|
@ -65,11 +65,6 @@ struct dac_s {
|
|||
uint8_t channel;
|
||||
};
|
||||
|
||||
struct i2c_s {
|
||||
I2CName i2c;
|
||||
uint32_t slave;
|
||||
};
|
||||
|
||||
#include "common_objects.h"
|
||||
#include "gpio_object.h"
|
||||
|
||||
|
|
|
@ -60,11 +60,6 @@ struct analogin_s {
|
|||
uint8_t channel;
|
||||
};
|
||||
|
||||
struct i2c_s {
|
||||
I2CName i2c;
|
||||
uint32_t slave;
|
||||
};
|
||||
|
||||
#include "common_objects.h"
|
||||
#include "gpio_object.h"
|
||||
|
||||
|
|
|
@ -60,11 +60,6 @@ struct analogin_s {
|
|||
uint8_t channel;
|
||||
};
|
||||
|
||||
struct i2c_s {
|
||||
I2CName i2c;
|
||||
uint32_t slave;
|
||||
};
|
||||
|
||||
#include "common_objects.h"
|
||||
#include "gpio_object.h"
|
||||
|
||||
|
|
|
@ -65,11 +65,6 @@ struct dac_s {
|
|||
uint8_t channel;
|
||||
};
|
||||
|
||||
struct i2c_s {
|
||||
I2CName i2c;
|
||||
uint32_t slave;
|
||||
};
|
||||
|
||||
#include "common_objects.h"
|
||||
#include "gpio_object.h"
|
||||
|
||||
|
|
|
@ -65,11 +65,6 @@ struct dac_s {
|
|||
uint8_t channel;
|
||||
};
|
||||
|
||||
struct i2c_s {
|
||||
I2CName i2c;
|
||||
uint32_t slave;
|
||||
};
|
||||
|
||||
struct can_s {
|
||||
CANName can;
|
||||
int index;
|
||||
|
|
|
@ -65,11 +65,6 @@ struct dac_s {
|
|||
uint8_t channel;
|
||||
};
|
||||
|
||||
struct i2c_s {
|
||||
I2CName i2c;
|
||||
uint32_t slave;
|
||||
};
|
||||
|
||||
struct can_s {
|
||||
CANName can;
|
||||
int index;
|
||||
|
|
|
@ -65,11 +65,6 @@ struct dac_s {
|
|||
uint8_t channel;
|
||||
};
|
||||
|
||||
struct i2c_s {
|
||||
I2CName i2c;
|
||||
uint32_t slave;
|
||||
};
|
||||
|
||||
struct can_s {
|
||||
CANName can;
|
||||
int index;
|
||||
|
|
|
@ -62,11 +62,6 @@ struct analogin_s {
|
|||
|
||||
|
||||
|
||||
struct i2c_s {
|
||||
I2CName i2c;
|
||||
uint32_t slave;
|
||||
};
|
||||
|
||||
#include "common_objects.h"
|
||||
struct can_s {
|
||||
CANName can;
|
||||
|
|
|
@ -0,0 +1,145 @@
|
|||
#include "mbed.h"
|
||||
#include "test_env.h"
|
||||
|
||||
#if !DEVICE_I2C || !DEVICE_I2C_ASYNCH
|
||||
#error [NOT_SUPPORTED] I2C ASYNCH is not supported
|
||||
#endif
|
||||
|
||||
#define SIZE (10)
|
||||
#define ADDR (0x90)
|
||||
#define FREQ 100000
|
||||
|
||||
#if defined(TARGET_KL25Z)
|
||||
I2C i2c(PTE0, PTE1);
|
||||
#elif defined(TARGET_nRF51822)
|
||||
I2C i2c(p22,p20);
|
||||
#elif defined(TARGET_NUCLEO_F411RE) || defined (TARGET_DISCO_F469NI)
|
||||
#define TEST_SDA_PIN PB_9
|
||||
#define TEST_SCL_PIN PB_8
|
||||
I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN); // I2C_1 (Arduino: D14/D15)
|
||||
#elif defined(TARGET_FF_ARDUINO) || defined(TARGET_MAXWSNENV)
|
||||
I2C i2c(I2C_SDA, I2C_SCL);
|
||||
#define TEST_SDA_PIN PB_9
|
||||
#define TEST_SCL_PIN PB_8
|
||||
#elif defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32GG_STK3700) || defined(TARGET_EFM32WG_STK3800)
|
||||
#define TEST_SDA_PIN PD6
|
||||
#define TEST_SCL_PIN PD7
|
||||
I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
|
||||
#elif defined(TARGET_EFM32ZG_STK3200)
|
||||
#define TEST_SDA_PIN PE12
|
||||
#define TEST_SCL_PIN PE13
|
||||
I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
|
||||
#elif defined(TARGET_EFM32HG_STK3400)
|
||||
#define TEST_SDA_PIN PD6
|
||||
#define TEST_SCL_PIN PD7
|
||||
I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
|
||||
#elif defined(TARGET_EFM32PG_STK3401)
|
||||
#define TEST_SDA_PIN PC10
|
||||
#define TEST_SCL_PIN PC11
|
||||
I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
|
||||
#elif defined(TARGET_SAMR21G18A)
|
||||
#define TEST_SDA_PIN PA16
|
||||
#define TEST_SCL_PIN PA17
|
||||
I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
|
||||
#elif defined(TARGET_SAMD21J18A) || defined(TARGET_SAMD21G18A) || defined(TARGET_SAML21J18A)
|
||||
#define TEST_SDA_PIN PA08
|
||||
#define TEST_SCL_PIN PA09
|
||||
I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
|
||||
#elif defined(TARGET_SAMG55J19)
|
||||
#define TEST_SDA_PIN PA10
|
||||
#define TEST_SCL_PIN PA09
|
||||
I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
|
||||
#else
|
||||
//I2C i2c(p28, p27);
|
||||
#endif
|
||||
|
||||
volatile int why;
|
||||
volatile bool complete = false;
|
||||
void cbdone(int event) {
|
||||
complete = true;
|
||||
why = event;
|
||||
}
|
||||
|
||||
|
||||
int main() {
|
||||
|
||||
event_callback_t callback;
|
||||
char buf[] = {3, 2, 1, 4, 5, 6, 7, 8, 9, 10};
|
||||
char res[SIZE];
|
||||
char buf_master_tx[] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
|
||||
char buf_master_rx[SIZE];
|
||||
int rc;
|
||||
|
||||
printf("\n\nTest init\n");
|
||||
|
||||
callback.attach(cbdone);
|
||||
|
||||
i2c.frequency(FREQ);
|
||||
|
||||
// First transfer: Tx/Rx
|
||||
printf("\nFirst transfer: Master Tx\n");
|
||||
rc = i2c.transfer(ADDR, buf, SIZE, 0, 0, callback, I2C_EVENT_ALL, true);
|
||||
if (rc != 0) {
|
||||
notify_completion(false);
|
||||
}
|
||||
while (!complete) {
|
||||
sleep();
|
||||
}
|
||||
if (why != I2C_EVENT_TRANSFER_COMPLETE) {
|
||||
notify_completion(false);
|
||||
}
|
||||
printf("Why: %d\n", (int)why);
|
||||
why = 0;
|
||||
complete = false;
|
||||
|
||||
// Second transfer: Rx
|
||||
printf("\nSecond transfer: Master Rx\n");
|
||||
rc = i2c.transfer(ADDR, 0, 0, res, SIZE, callback, I2C_EVENT_ALL, false);
|
||||
if (rc != 0) {
|
||||
notify_completion(false);
|
||||
}
|
||||
while (!complete) {
|
||||
sleep();
|
||||
}
|
||||
if (why != I2C_EVENT_TRANSFER_COMPLETE) {
|
||||
notify_completion(false);
|
||||
}
|
||||
printf("Why: %d\n", (int)why);
|
||||
|
||||
// Check buffers
|
||||
for(int i = 0; i < SIZE; i++) {
|
||||
if (res[i] != (buf[i] + 1)) {
|
||||
printf("Buffer check KO\n");
|
||||
notify_completion(false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Third transfer: Tx/Rx
|
||||
printf("\nThird transfer: Master Tx/Rx\n");
|
||||
rc = i2c.transfer(ADDR, buf_master_tx, SIZE, buf_master_rx, SIZE, callback, I2C_EVENT_ALL, false);
|
||||
if (rc != 0) {
|
||||
notify_completion(false);
|
||||
}
|
||||
while (!complete) {
|
||||
sleep();
|
||||
}
|
||||
if (why != I2C_EVENT_TRANSFER_COMPLETE) {
|
||||
printf("Transfer result: 0x%x\n", why);
|
||||
notify_completion(false);
|
||||
}
|
||||
complete = false;
|
||||
why = 0;
|
||||
printf("Transfer result: OK\n");
|
||||
|
||||
for(int i = 0; i < SIZE; i++) {
|
||||
if (buf_master_rx[i] != (buf_master_tx[i] + 1)) {
|
||||
printf("Buffer check KO\n");
|
||||
printf("buf_master_rx[%d]: %d, buf_master_tx[%d]: %d\n",i,buf_master_rx[i],i,buf_master_tx[i]);
|
||||
notify_completion(false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
printf("Buffer check OK\n");
|
||||
notify_completion(true);
|
||||
}
|
|
@ -8,17 +8,23 @@
|
|||
// ********************************************************
|
||||
// This tests data transfer between two I2C interfaces on
|
||||
// the same chip, one configured as master, the other as
|
||||
// slave. Works on the LPC1768 mbed.
|
||||
// slave. Works on:
|
||||
//
|
||||
// Wiring:
|
||||
// *LPC1768 mbed
|
||||
// p28 <-> p9
|
||||
// p27 <-> p10
|
||||
// pull-up resistors on both lines
|
||||
// *STM32F4 boards
|
||||
// cf below for wiring
|
||||
//
|
||||
// ********************************************************
|
||||
|
||||
#if defined(TARGET_NUCLEO_F411RE)
|
||||
#if defined(TARGET_NUCLEO_F411RE) || defined (TARGET_NUCLEO_F446RE) || defined (TARGET_NUCLEO_F410RB) || defined (TARGET_NUCLEO_F401RE)
|
||||
I2C master(PB_9, PB_8); // I2C_1 (Arduino: D14/D15)
|
||||
I2CSlave slave(PB_3, PB_10); // I2C_2 (Arduino: D3/D6)
|
||||
#elif defined (TARGET_NUCLEO_F429ZI) || defined (TARGET_DISCO_F429ZI) || defined (TARGET_NUCLEO_F446ZE)
|
||||
I2C master(PB_9, PB_8); // I2C_1 (Arduino: D14/D15)
|
||||
I2CSlave slave(PB_11, PB_10); // I2C_2
|
||||
#endif
|
||||
|
||||
int main()
|
||||
|
|
|
@ -11,14 +11,15 @@
|
|||
// the same chip, one configured as master, the other as
|
||||
// slave.
|
||||
//
|
||||
// Wiring:
|
||||
// D14 <-> D3
|
||||
// D15 <-> D6
|
||||
// Wiring: cf below
|
||||
// ********************************************************
|
||||
|
||||
#if defined(TARGET_NUCLEO_F411RE)
|
||||
#if defined (TARGET_NUCLEO_F411RE) || defined (TARGET_NUCLEO_F446RE) || defined (TARGET_NUCLEO_F410RB) || defined (TARGET_NUCLEO_F401RE)
|
||||
I2C master(PB_9, PB_8); // I2C_1 (Arduino: D14/D15)
|
||||
I2CSlave slave(PB_3, PB_10); // I2C_2 (Arduino: D3/D6)
|
||||
#elif defined (TARGET_NUCLEO_F429ZI) || defined (TARGET_DISCO_F429ZI) || defined (TARGET_NUCLEO_F446ZE)
|
||||
I2C master(PB_9, PB_8); // I2C_1 (Arduino: D14/D15)
|
||||
I2CSlave slave(PB_11, PB_10); // I2C_2
|
||||
#endif
|
||||
|
||||
volatile int why;
|
||||
|
|
|
@ -16,9 +16,11 @@ I2CSlave slave(p9, p10);
|
|||
I2CSlave slave(PA16, PA17);
|
||||
#elif defined(TARGET_SAMD21J18A) || defined(TARGET_SAMD21G18A) || defined(TARGET_SAML21J18A)
|
||||
I2CSlave slave(PA08, PA09);
|
||||
#elif defined(TARGET_NUCLEO_F411RE) || defined(TARGET_NUCLEO_F429ZI) || defined(TARGET_NUCLEO_F446RE)
|
||||
#elif defined(TARGET_NUCLEO_F411RE) || defined(TARGET_NUCLEO_F446RE)
|
||||
//I2C master(PB_9, PB_8); // I2C_1 (Arduino: D14/D15)
|
||||
I2CSlave slave(PB_3, PB_10); // I2C_2 (Arduino: D3/D6)
|
||||
#elif defined(TARGET_NUCLEO_F429ZI)
|
||||
I2CSlave slave(PB_11, PB_10); // I2C_2
|
||||
#elif defined(TARGET_FF_ARDUINO)
|
||||
I2CSlave slave(I2C_SDA, I2C_SCL);
|
||||
#elif defined(TARGET_SAMG55J19)
|
||||
|
|
|
@ -87,7 +87,13 @@ Wiring:
|
|||
|
||||
* i2c_loop:
|
||||
* LPC1768: (p28 <-> p9), (p27 <-> p10)
|
||||
* NUCLEO_F401RE: (PB_9 <-> PB_3), (PB_8 <-> PB_10)
|
||||
* NUCLEO_F410RB: (PB_9 <-> PB_3), (PB_8 <-> PB_10)
|
||||
* NUCLEO_F411RE: (PB_9 <-> PB_3), (PB_8 <-> PB_10)
|
||||
* NUCLEO_F446RE: (PB_9 <-> PB_3), (PB_8 <-> PB_10)
|
||||
* NUCLEO_F429ZI: (PB_9 <-> PB_11), (PB_8 <-> PB_10)
|
||||
* NUCLEO_F446ZE: (PB_9 <-> PB_11), (PB_8 <-> PB_10)
|
||||
* DISCO_F429ZI: (PB_9 <-> PB_11), (PB_8 <-> PB_10)
|
||||
|
||||
* i2c_eeprom:
|
||||
* LPC1*: (SDA=p28 , SCL=p27)
|
||||
|
@ -265,7 +271,7 @@ TESTS = [
|
|||
"id": "MBED_A20", "description": "I2C master/slave test",
|
||||
"source_dir": join(TEST_DIR, "mbed", "i2c_master_slave"),
|
||||
"dependencies": [MBED_LIBRARIES, TEST_MBED_LIB,],
|
||||
"mcu": ["LPC1768", "RZ_A1H", "NUCLEO_F411RE"],
|
||||
"mcu": ["LPC1768", "RZ_A1H", "NUCLEO_F411RE", "NUCLEO_F446RE", "NUCLEO_F429ZI", "DISCO_F429ZI", "NUCLEO_F446ZE", "NUCLEO_F410RB", "NUCLEO_F401RE"],
|
||||
"peripherals": ["i2c_loop"]
|
||||
},
|
||||
{
|
||||
|
@ -341,6 +347,14 @@ TESTS = [
|
|||
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG",
|
||||
"DISCO_F746NG", "DISCO_L476VG", "NUCLEO_L476RG", "NUCLEO_L432KC",
|
||||
"DISCO_F769NI"]
|
||||
},
|
||||
{
|
||||
"id": "MBED_A29", "description": "i2c_master_slave_asynch",
|
||||
"source_dir": join(TEST_DIR, "mbed", "i2c_master_slave_asynch"),
|
||||
"dependencies": [MBED_LIBRARIES, TEST_MBED_LIB],
|
||||
"mcu": ["NUCLEO_F411RE", "NUCLEO_F446RE", "NUCLEO_F429ZI", "DISCO_F429ZI", "NUCLEO_F446ZE", "NUCLEO_F410RB", "NUCLEO_F401RE"],
|
||||
"automated": True,
|
||||
"peripherals": ["i2c_loop"]
|
||||
},
|
||||
{
|
||||
"id": "MBED_BLINKY", "description": "Blinky",
|
||||
|
@ -1166,11 +1180,6 @@ TESTS = [
|
|||
"automated": True,
|
||||
#"host_test" : "detect_auto",
|
||||
},
|
||||
{
|
||||
"id": "I2C_MASTER_SLAVE_ASYNCH", "description": "i2c_master_slave_asynch",
|
||||
"source_dir": join(TEST_DIR, "mbed", "i2c_master_slave_asynch"),
|
||||
"dependencies": [MBED_LIBRARIES, TEST_MBED_LIB],
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
|
|
Loading…
Reference in New Issue