Posted on August 05, 2014 at 07:53Hi All,
I am having an issue with I2C on the STM32F4. After successfully transmitting an address byte with values below 0xF0 , but when address value is more or equal 0xF0 (e.g. 0xF0, 0xF2, 0xF4 ..) - the slave acknowledging After the first byte of I2C transaction(As it should do) and cause error by the Acknowledge failure flag.
Here is the wave from that I capture(As you can see that the transaction hang after first byte):

I have try the same thing with my Arduino Uno and it work fine,As picture below:


I do a little search and found that because STM32f4 reserved address 0xF0-0xFE for 10 bits addressing. So when i try to send these address in 7 bit mode, the ACK after the first byte will cause the error.
Has anyone encountered this issue, or another way to resolve this? I appreciate every software solution that can sort a thing out.
Here are the system
- Board: STM32F4DISCOVERY
- Libraries : STM32CubeMX version 4.3.0
- I2C Slave Device: SRF02 (http://www.robot-electronics.co.uk/htm/srf02tech.htm)