I have connected sparkfun f9p board with Esp32 board using I2C communication. While working, i have noticed that the f9p i2c address changes from 0x42 to 0x44. After that, I need to set it through ucenter and then it starts working again
Why is this happening? Is there a problem with f9p i2c? How should I solve this?
The F9P I2C address can be changed using a UBX-CFG-PRT or a UBX-CFG-VALSET (CFG-I2C-ADDRESS, 0x20510001) message. Could your code be sending one of those?
Thank you for the suggestion. I have removed the pull-up resistors, but the behaviour is still random.
Just a quick question—can the F9P ever change its I2C address to 0x44 on its own? Have you ever seen the address automatically switch to 0x44?
The only plausible explanation I have is that maybe you have noise on UART1, and it is somehow creating a valid UBX-CFG-PRT or UBX-CFG-VALSET message? But I think that is extremely unlikely. The messages are CRC-checked.
Do you have any other hardware connected to UART1? Could it be generating the message?
I have set it 0x42 and then I save it in flash. After that, I run the script and the address changes. And it is random, it is not always behaving. Sometimes, it changes and sometimes, it does not.
Yes, actually, I am receiving UBX-NAV-SAT data, RTCM messages and NMEA data on this port and segregating them. Hence, I have kept the baud rate so fast.
I have double-checked the code. We are not using UBX-CFG-PRT anywhere. We are using UBX-CFG-VALSET, but not for any I2C-related settings, especially not for the key 0x20510001.