Полная версия этой страницы:
ИК-термометр MLX90614
Mityan
May 10 2012, 08:45
Кто работал с этой микросхемой? Поделитесь, пожалуйста, опытом, как она запускается.
Во всех примерах кодов для нее идет просто инициализация И2Си, затем чтение в цикле, все как в протоколе SMBus и написано.
У меня же она находится в сбросе. Т.е. на все запросы всех регистров шлет 0xFF, и CRC8 - последний РЕС-байт тоже.
Только на команду READ_FLAGS отвечает 0x10 0x00 0x3B, что соответствует одному выставленному биту в диагностическом регистре -
POR initialization routine is still ongoing. Low active. + правильное CRC.
Какие хитрости необходимы по вводу ее в работу?
SDA_Low на 90 мс пробовал - не помогает.
Спасибо.
Mityan
May 10 2012, 13:15
В общем, третий день мучаюсь, и вроде разобрался. Зарегистрировался на сайте производителя - Melexis.
Там вычитал, что у них Repeated START - это вовсе не рестарт SMBus, а просто Старт, т.е. после отправки адреса устройства и адреса регистра для чтения надо не рестарт делать, а просто условие Старта опять генерировать, и тогда все работает.
А при чтении флагов эта процедура (повторный старт) не нужна, поэтому оно у меня проходило.
Всех приветствую.
Я тоже мучаюсь с этим датчиком, но у меня проблема иная. Допустим хочу прочитать регистр с температурой, формирую старт, отправляю адрес датчика, получаю от него АСК, отправляю адрес регистра, которой хочу прочитать, получаю от датчика АСК. Формирую повторный старт, отправляю адрес и в ответ не получаю АСК. Что я делаю не так?
Спасибо.
Разобрался, надо было лучше читать даташит на stm32.
HelicopterX
Feb 6 2014, 14:29
Тут лежат сэмплы для этого датчика
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.