Reading Random Data from EEPROM
Sasasu opened this issue · comments
I have an MLX90640, but I'm always reading completely random data from the EEPROM.
I'm using RP2040 and Nuttx to read the MLX90640, and the code I'm using can be found at Sasasu/nuttx-apps@612218f.
The I2C frequency when reading the EEPROM is 50kHz.
There are 2K pull-up resistors on the SCL and SDA lines of the I2C, and the signal quality captured with an oscilloscope is shown in the image.
The logic analyzer shows that the data received by the MCU is the same as the data on the line.
Here are a few of the results I've obtained from multiple reads, which are completely different from each other.
1: 0x3E, 0x81, 0x5C, 0xF0, 0x6F, 0x00, 0x38, 0x1D, 0x46, 0x9A, 0x11, 0x79, 0x21, 0x28, 0x41, 0xEF, 0x5E, 0xB6
2: 0x49, 0xCE, 0x0B, 0x36, 0x26, 0xA8, 0x41, 0x3B, 0x2B, 0x86, 0x06, 0xD2, 0x4C, 0xE8, 0x3D, 0x61, 0x59, 0x58
3: 0x42, 0x73, 0x1D, 0xC8, 0x16, 0xAA, 0x45, 0xA0, 0x36, 0x32, 0x74, 0xCA, 0x59, 0x58, 0x3E, 0xC5, 0x31, 0x5B
4: 0x39, 0x66, 0x6E, 0x87, 0x5E, 0xD8, 0x3E, 0x11, 0x50, 0xF2, 0x7F, 0x06, 0x2F, 0xE0, 0x41, 0x93, 0x17, 0xC8
5: 0x63, 0x1E, 0x68, 0x38, 0x3B, 0xE0, 0x49, 0x62, 0x0A, 0x02, 0x27, 0x58, 0x41, 0xD8, 0x2A, 0x0B, 0x0A, 0xCC
6: 0x2B, 0x28, 0x41, 0xC7, 0x26, 0x52, 0x0C, 0x2A, 0x49, 0xBC, 0x3A, 0xA7, 0x6A, 0x1E, 0x61, 0x2A, 0x65, 0x06
the device ID is OAB2377801
I believe this is not normal. Are there any possible reasons for this issue?
mlx90640 is using big endian