2024-02-23 12:51 AM
Hello,
I have an STM32F407 (Master) communicating with an AHT10 device (Slave) over I2C as one to one. Till this part everything works just fine, the problem start when i add a new device (Slave) in the same bus (eg. MPU6050) after a while the I2C lines locked up (SCL High and SDA Low). As shown in the picture below.
Once I power off only the AHT10 Device the lines goes back normal, and if I put it back in the bus, after some times (the period of time it's not synchronised) the problem will appear again. As shown below.
At first i thought that the problem within the AHT10 Device and As I mentioned before in one to one connectivity he works just fine. Even tho, the master his the one that he should release the line. Aside from that, I noticed that the I2C not sending the 9th clock pulse to release the I2C lines. As shown below.
So, I checked the I2C_ISR register to get the status of the I2C peripheral and I found that the ARLO Bit = 1 (Arbitration Lost Bit), so I tried to reset the I2C through the SWRST Bit (Software Reset) in the I2C_CR1 register. After, the I2C is initialized and the register statue returned to the ideal state, but the problem remain the same.
PS: As I noticed in the previous problems within the community, this is a frequent problem.
Waiting for support, Thanks in advance,
Regards,
2024-02-25 08:17 AM
Hi waclawek.jan
> what if AHT10 considers it as an address?
- Maybe that's the case, I didn't' noticed till now but I will follow each last msg or add before the SDA goes low.
> show us a zoomed section of the end of communication
- Okay I will try.
> Only a single AHT10 can be connected to the I2C bus
- I have already read that section but I thought they meant only one AHT10 device in the bus, because u can't change the address of the others. Not that we can't add another device even though it's not AHT10, but yeah maybe correct theory.
Thank you.
2024-02-25 08:20 AM
And for the AHT10 Device, this is the English Version of the datasheet.