В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Применение > Микроконтроллеров > MSP430
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


Подключение MSP430 и температурного датчика TMP100 с интерфейсом I2C

Резюме

В данном примере применения описывается аппаратный и программный интерфейс между 16- разрядным микроконтроллером MSP430F413 и цифровым температурным датчиком TMP100. Система, построенная на основе этих микросхем производства компании Texas Instruments, способна работать от одной 3 В батарейки более 10 лет. В нижеследующих разделах описано как аппаратно соединить эти микросхемы и программно реализовать протокол обмена по двухпроводной I2C шине. Несмотря на то, что в данном примере применения используется температурный датчик TMP100, описанный интерфейс может быть применен для подключения к любому микроконтроллеру семейства MSP430 любого периферийного устройства с подчиненным I2C интерфейсом.

Рисунок 1. Схема соединения MSP430F413 и TMP100

Введение

Во множестве систем требуется отслеживать и измерять температуру. Часто такие измерения должны выполняться удаленно и при использовании автономного источника питания, а, следовательно, для увеличения срока службы потреблять система должна минимально. В большинстве систем измерение температуры производится при помощи дискретных транзисторов, терморезисторов или термопар и "систем на кристалле " (SoC). TMP100 представляет собой SoC, а при объединении со сверхнизко потребляющим микроконтроллером MSP430, как это показано на рисунке 1, становится полнофункциональной системой измерения температуры, способной работать от одной батарейки более 10 лет.

Теория функционирования

Система измерения температуры MSP430-TMP100 предназначена для постоянного отображения температуры датчика TMP100. В режиме одновибратора TMP100 после каждого измерения переходит в дежурный режим, ток потребления в котором снижается до 0.1 мкА. Вместе с MSP430, который потребляет в режиме LPM3 всего 0.9 мкА, и 3.5 цифровым статическим ЖКИ получается система измерения температуры с разрешающей способностью 0.5°C и средним потреблением менее 2.45 мкА. Диаграмма потребления тока системой приведена на рисунке 2.

Рисунок 2. Диаграмма потребления системой тока

Питание системы осуществляется от одной 3 В батарейки типа CR-2032, которая имеет емкость порядка 220 мА*часов. При среднем токе потребления, равном 2.45 мкА (см. рисунок 2), измерение и индикация температуры может осуществляться в течение более чем 10 лет:

220 мА*ч/ 2.45 мкА = 89 796 часов = 10.25 лет

Для обеспечения этого пришлось позаботиться о минимальном количестве рабочих циклов MSP430. Время выхода из дежурного режима, равное 6 мкс, позволило MSP430 управлять цифровым температурным датчиком TMP100, работающем в режиме однократного преобразования. На рисунке 3 приведена блок-схема алгоритма работы MSP430 и цифрового температурного датчика.

Рисунок 3. Блок-схема алгоритма работы MSP430F413/TMP100

За счет снижения времени активности MSP430 в 1.6 мс цикле преобразования можно добиться уменьшения потребления. Малое время выхода из дежурного режима LPM3 позволяет MSP430 выполнять требуемые задачи и возвращаться в дежурный режим за очень короткий промежуток времени. В дежурном режиме микроконтроллер ожидает появления прерывания от таймера и по его возникновению начинает выполнять основной алгоритм. Дальнейшее описание работы системы дается в разрезе разделов, соответствующих модулям прикладной программы MSP430 на ассемблере. Обратите внимание, что дальнейшая оптимизация кода возможна при снижении количества вызываемых подпрограмм. Для упрощения понимания программа разбита на подпрограммы. К существующим подпрограммам, приведенным на рисунке 3, можно добавить еще пользовательские подпрограммы, например подпрограмму перевода градусов Цельсия в градусы Фаренгейта или подпрограмму обмена данными с периферийными устройствами.

Аппаратный интерфейс

Как показано на рисунке 1, системный интерфейс между MSP430 и TMP100 требует дополнительных дискретных компонентов. Питание системы осуществляется от 3 В Li+ батарейки, а в качестве фильтра питания рекомендуется использовать 0.1 мкФ конденсатор. Вход сброса RST рекомендуется подключить через 68 кОм резистор, а 32.768 кГц используется для формирования тактовых импульсов в дежурном режиме. Два дополнительных 10 кОм резистора используются в качестве подтягивающих резисторов линий I2C интерфейса.

Индикация измеренной температуры осуществляется при помощи 3.5 цифрового статического ЖКИ. Встроенный драйвер ЖКИ MSP430F413 позволяет обслуживать до 24 сегментов, а 4 выхода обслуживания общих линий расширяет максимально возможное количество обслуживаемых сегментов до 96. В данном примере применения использован 24 сегментный статический ЖКИ производства компании Varitonix. Хотя в данном примере применения использован микроконтроллер MSP430F413, но может быть использован и любой другой микроконтроллер семейства MSP430 серии 4хх.

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

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

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

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

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

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

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

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

Резюме

Как было сказано раньше, измерение температуры может осуществляться различными способами. Способ, применяемый в конкретной задаче, зависит от физических ограничений, наложенных на систему. Часто портативность и низкое потребление являются основными ограничительными факторами. Описанная система, состоящая из MSP430 и TMP100, является эффективным решением такой задачи.

При помощи описанных аппаратных и программных решений можно реализовать законченный низкопотребляющий измеритель температуры. Эта система не просто измеряет температуру, а делает это так, что может работать от 3 В Li+ батарейки более 10 лет.