cancel
Showing results for 
Search instead for 
Did you mean: 

I2C Address Issue

sutassanai
Associate
Posted on August 05, 2014 at 07:53

Hi 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):

0690X00000602stQAA.jpg

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

0690X00000602w6QAA.jpg

0690X00000602wBQAQ.jpg

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)
0 REPLIES 0