- Fri Nov 30, 2018 8:50 pm
#201260
I have been trying to troubleshoot an odd issue with this sensor. This is my first time with the MLX90640, so I figured there was a lot of room on my end to adapt to the learning curve. However, I believe I have an issue which is inherent to the hardware itself.
When I try to use Sparkfun's linked MLX library I notice that any I2C read will always BEGIN at the same device memory address. It is as if the camera device is not storing my requested 16-bit address during an I2C-Write sequence.
Example:
I2C-Write to slave (0x33) address (0x2400)
When I perform a 2 byte read, the bytes 0x0009 (or sometimes 0x0008) are read. I'm using a logic analyzer to determine this.
Example (more):
I2C-Write to slave (0x33) address (0x8000)
read return 0x0009
I2C-Write to slave (0x33) address (0x8010)
read return 0x0009
I2C-Write to slave (0x33) address (0x240F)
read return 0x0009
In fact, when I perform a 32byte read instead of a 2byte read, I receive the same 32bytes of data every time. After checking the data sheet and expected data, it seems the device is stuck at providing reads beginning at address 0x8000 every time.
I believe this device is defective but would like others to help point any faults here. I was using the un-modified code provided in the product's link by Sparkfun. The Serial output always says "Parameter extraction failed", and the 'error code' associated with this during the EEPROM parsing was -4. However, I don't believe this is an error with that error code, I believe the data being 'parsed' was never from the EEPROM at all.
Thanks!
When I try to use Sparkfun's linked MLX library I notice that any I2C read will always BEGIN at the same device memory address. It is as if the camera device is not storing my requested 16-bit address during an I2C-Write sequence.
Example:
I2C-Write to slave (0x33) address (0x2400)
When I perform a 2 byte read, the bytes 0x0009 (or sometimes 0x0008) are read. I'm using a logic analyzer to determine this.
Example (more):
I2C-Write to slave (0x33) address (0x8000)
read return 0x0009
I2C-Write to slave (0x33) address (0x8010)
read return 0x0009
I2C-Write to slave (0x33) address (0x240F)
read return 0x0009
In fact, when I perform a 32byte read instead of a 2byte read, I receive the same 32bytes of data every time. After checking the data sheet and expected data, it seems the device is stuck at providing reads beginning at address 0x8000 every time.
I believe this device is defective but would like others to help point any faults here. I was using the un-modified code provided in the product's link by Sparkfun. The Serial output always says "Parameter extraction failed", and the 'error code' associated with this during the EEPROM parsing was -4. However, I don't believe this is an error with that error code, I believe the data being 'parsed' was never from the EEPROM at all.
Thanks!