Работа системы

I2C интерфейс с ТМРЮО реализован полностью программно и использу­ет всего две линии ввода/вывода портов общего назначения MSP430. За счет наличия у ТМРЮО поддержки конфигурирования адреса, к одной I2C шине можно подключить до восьми таких приборов. В данном примере применения входы установки адреса подключены к общей линии, и поэтому семибитный адрес ТМРЮО имеет значение 1001000.

При любых запросах к ТМРЮО сначала необходимо послать адрес (7 бит + бит записи WR), а потом 8 битный указатель адреса. Указатель адреса определяет один из трех обновляемых микроконтроллером регистров. В этом примере приме­нения конфигурационный регистр ТМРЮО обновляется в каждом цикле основной программы и устанавливает цифровой температурный датчик в режим однократ­ного преобразования. Точно также осуществляется считывание данных.

Запрос на считывание данных из ТМРЮО, как и в режиме записи, начина­ется с передачи 16 битных данных. Сначала передается адрес датчика, а потом 8 битный указатель регистра ТМРЮО. Потом снова передается адрес датчика, после чего считываются данные. При второй передаче адреса бит RD/WR в байте адреса должен быть установлен, что указывает на предстоящее считывание данных.

Результат преобразования передается в виде 16 битных данных. Оба байта передаются старшим значащим битом вперед. Имеется возможность настройки представления результата преобразования в виде двоичного числа с количеством разрядов от 9 до 12. По умолчанию данные представляются в 9 битном формате, который обеспечивает разрешение 0.5°С/МЗБ. Этот формат и используется в опи-

Библиотека Компэла165


Ь ///■ Интерфейс с внешними устройствами

сываемом примере применения. Остальные младшие значащие биты, передавае­мые ТМР100 считываются как ноль и могут игнорироваться.

Для универсального измерителя температуры разрешающая способность в 1 °С вполне достаточна. В этом случае можно не считывать второй байт. Но тогда не осуществляется преобразования градусов Цельсия в градусы Фаренгейта с прием­лемой точностью, зато снижается время работы системы в активном режиме.

После принятия данных от ТМР100, MSP430 выполняет их преобразование и отображает измеренную температуру на ЖКИ. При этом осуществляется обработ­ка СЗБ, несущего информацию о знаке измеренной температуры, и преобразова­ние двоичного кода в двоично-десятичный, который и отображается на ЖКИ.

По окончании обработки данных MSP430 переходит в дежурный режим LPM3, ток потребления в котором снижается до 2.0 мкА. Через 6 секунд фор­мируется прерывание по переполнению таймера, которое выводит микрокон­троллер из дежурного режима и основная программа начинает выполняться с начала. Для генерации 2 секундного сигнала прерывания используется модуль основного таймера, который потребляет 3.55 мкА, что позволит системе рабо­тать от 3 В батарейки всего 7.5 лет. Для увеличения срока службы можно сни­зить частоту сигнала прерывания или использовать модуль Таймера А. В любом случае, частота прерывания полностью программируема и может быть отрегу­лирована в соответствии с требованиями к системе.