ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
1085687
Adept (13.03.2021 21:23 - 14.03.2021 20:45, просмотров: 9033) MBedder
XMEGA+SMBus, в частности работа с ИК-термометром MLX90614 

маюсь с дебильным ИК-термометром MLX90614 :(( БляТь, доки писали индусы наверное, а разрабатывали китайцы :(( с одной стороны вроде более менее в общих чертах понятно (исключая всякие досадные "недочёты" в документации", с другой стороны - нихера не работает так как указано :((( скоро башку уже сверну - в чём дело - никак не возьму в толк ещё шибко вумный идиотский I2C автомат иксмеги :(((

Есть подозрение, что после записи на шину команды ((Write:B4) из-за долгого повторного старта (перед Read:B5 с красным акнолиджем) , вылетаю по таймауту SMBus. А MLX настолько дебильно сделана внутри, что хрен поймёшь как она реагирует. К примеру если адресом поставлены не те ячейки RAM, то вообще может не давать акнолидж на запрос чтения, или давать 1 байт данных всего, а потом впадать в ступор, или ничего не давать. Идиотизм какой-то :(( девайс сделан наверное специально, чтобы выматывать нервы разработчикам :((

На картиночках поведение TWI и кусочки соответсвующего кода. В одном случае всё свёрнуто в процедуры и макросы (с ретреями, диагностикой ошибок и прочим) в другом - тупо линейные команды записи в регистры значений и п/п задержек. В обоих случайаях поведение аналогичное почти, с макросами второе чиение после НЕакнолиджа получается само, с линейными командами, вручную делаю повтор, т.к. иначе транзакция останавливается.

И никак не получается минимимзировать растяжку клока при повторном старте :((

на картинках - акнолидж и данные от датчика приподняты над "нулём", т.к. его земля включена через диод (очень удобно при отладке, сразу видно кто сигналы к земле тянет, мастер, или слейв)





Ща ещё мануал по иксмеге покурю по TWI, но кажется SMBus довольно популярная штуа, и если есть косяк с таумаутами TWI автомата при повторном старте, то там вообще ничего не должно работать.


и да, в доке диаграммка выглядит так:


всё, за исключением растянутого клока на повторном старте перед первым чтением, аналогично.



Какие у кого есть мысли и опыт на этот счёт, а то я как-то подз@ебался уже, честно говоря :(((


P.S. в "интернетах" тема "MLX90614 читаются одни FF" имеет некоторую популярность место быть. Народ как-то побеждает всё вроде в своих "ардуинах", но про иксмегу ничего не сказано. (а I2C у ней реально другой, ну просто вот совсем, нежели, скажем в мегах)

...делать нужно так, как нужно. А как ненужно - делать не нужно (С) Винни-Пух :)