SoftwareWire проблема с рядом датчиков

Нет ответов
sadman41
Offline
Зарегистрирован: 19.10.2016

Подключал сегодня MLX90614 по I2C: стандартные библиотеки работают, данные с датчика читают; пытаюсь интегрировать в свой проект и ловлю удивительные баги - с датчика ничего вразумительного не читается, но сканирование проходит и адрес обнаруживается. Начал копать и обнаружил, что проблема наблюдается при переходе на SoftwareWire. Долго думал, всячески мигал светодиодом и смотрел в логический анализатор. Увидел, что Ардуина зачем-то дергает ногой во время repstart-а. И это сносит MLX90614 голову так, что он перестает отвечать. Все другие сенсоры, которые у меня есть - спокойно пережевывают данную ситуацию. Т.е. 98% датчиков из ящика работают нормально в сложившейся ситуации, а термометр выпендривается. 

Тогда я решил пойти проверенным путем - заглянуть к мантайнеру в гитхаб... Оказалось, что не я один такой счастливчик: баг с репстартом закрыт 3 месяца назад (https://github.com/Testato/SoftwareWire/pull/15). Немедля обновился до SoftwareWire 1.5.1 и вуаля - придирчивый сенсор проявил благосклонность и начал отдавать данные.

Такие вот дела. Имейте в виду.