Термодатчик на I2C перестал работать, возвращает ошибку тайм-аута - PullRequest
0 голосов
/ 25 октября 2019

Я использую термодатчик MLX90640. Это датчик, который используется в качестве тепловой камеры в низком разрешении (https://www.melexis.com/en/product/MLX90640/Far-Infrared-Thermal-Sensor-Array).. Я работал с ним на прошлой неделе без проблем на Raspberry Pi 3B +. ​​Однако сегодня я не смог заставить его работать наNVidia Jetson TX2.Попробовав множество решений, я вернулся к Pi с тем же датчиком, и оказалось, что датчик больше не работает с тем же программным обеспечением.

Помимо использования программного обеспечения, которое я написал сам, я попробовалпримеры от производителя (https://github.com/pimoroni/mlx90640-library) без везения. Он либо вернет I2C Read Error!, либо frameData timeout error waiting for dataReady в сочетании с Segmentation fault. Эта ошибка сохраняется как для Jetson, так и для Pi, но яв основном работает с Pi, потому что раньше он работал для Pi.

Я все еще могу обнаружить датчик с помощью i2cdetect:

pi@raspberrypi:~/ $ sudo i2cdetect -yr 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- 33 -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- 

Стандартный адрес 0x33.

Причина, по которой я спрашиваю, состоит в том, что очень трудно найти информацию о датчике или других датчиках i2c, имеющих те же проблемы. Странно то, что раньше он работал правильно вточно такая же ситуация. Единственное, о чем я могу думать, это то, что Jetson как-то изменил внутренние регистры датчика. В таблице данных имеется информация о регистрах (https://www.melexis.com/-/media/files/documents/datasheets/mlx90640-datasheet-melexis.pdf), но я не могу понять, как это использовать. Любые идеи приветствуются, поскольку я попробовал все, насколько я знаю.

...