Датчик наклона с низким энергопотреблением на основе MSP430F2012
Помимо измерения угла наклона, акселерометры используются во многих приложениях. К ним относятся измерители вибраций, ударов, движения, поверхностных уровней и т.д. В любом случае, акселерометр измеряет ускорение относительно ускорения свободного падения. Самостоятельно акселерометр не может определить разницу между статическим и динамическим ускорением, поэтому на выходе мы имеем их векторную сумму.
На рисунке 1 показано направление осей акселерометра, использующееся в рассматриваемом приложении.
Рис. 1. Направление осей акселерометра
Рисунок 2 отображает идеальное выходное напряжение при расположении акселерометра на опорном уровне.
Рис. 2. Идеальное выходное напряжение при расположении акселерометра на опорном уровне
Акселерометр ADXL322 от компании Analog Devices имеет смещение 1,5 В, соответствующее нулевому ускорению, при напряжении питания Vcc=3 В.
На рисунке 3 показано расположение устройства на уровне, отличающемся от опорного. Согласно документации, чувствительность ADXL322 составляет 420 мВ/g при напряжении питания Vs=3 В.
Аппаратное обеспечение
Для получения датчика наклона с напряжением питания 3 В, акселерометр подключается к микроконтроллеру MSP430F2012. На рисунке 4 изображена блок-схема системы. Акселерометр потребляет 0,45 мА при напряжении питания 3 В, что позволяет подключить его к одному из портов микроконтроллера. В результате акселерометр будет отключаться вместе с микроконтроллером, что приведет к снижению потребляемой мощности. Аналогово-цифровой преобразователь с разрешением 10 бит (ADC10) конвертирует аналоговый выходной сигнал акселерометра (Xout и Yout) в бинарные значения. Эти значения обрабатываются программно, чтобы определить, какой светодиод (LED) включить.
Рис. 4. Блок-схема датчика наклона
Выходной сигнал акселерометра конвертируется два раза в секунду. Двенадцать светодиодов размещены по кругу. Расстояние между двумя соседними светодиодами соответствует 30° (рис. 5).
Рис. 5. Монтажная схема датчика наклона
Мультиплексирование позволяет управлять шестью светодиодами с помощью трех портов ввода/вывода микроконтроллера (рисунок 6, таблица 1). Таким образом, двенадцать светодиодов управляются шестью портами.
Рис. 6. Сеть светодиодов
Таблица 1. Мультиплексирование светодиодовСтатус светодиода | P1.7 | P1.6 | P1.5 | P1.4 | P1.3 | P1.2 |
---|---|---|---|---|---|---|
#1 включен | 0 | 0 | 0 | Z | 1 | 0 |
#3 включен | 0 | 0 | 0 | Z | 0 | 1 |
#5 включен | 0 | 0 | 0 | 0 | Z | 1 |
#7 включен | Z | 1 | 0 | 0 | 0 | 0 |
#9 включен | Z | 0 | 1 | 0 | 0 | 0 |
#11 включен | 0 | Z | 1 | 0 | 0 | 0 |
0 - низкий уровень, 1 - высокий уровень, Z - высокоимпедансное состояние (вывод конфигурируется как вход) |
Тактирование ядра MSP430 осуществляется с помощью интегрированного управляемого цифровым способом осциллятора (DCO) на частоте 1 МГц. Встроенный низкочастотный осциллятор с низким энергопотреблением (VLO) работает на частоте 12 кГц и используется для тактирования таймера Timer_A.
Использование DCO в качестве базового таймера позволяет точно вычислить частоту VLO для записи в Timer_A. Мы остановимся на этом подробнее в дальнейшем.
Микроконтроллеры MSP430F2xxx содержат на каждом выводе встроенные программируемые подтягивающие резисторы, которые используются для подключения портов ввода/вывода к Vcc.
Программное обеспечение
Благодаря достоинствам аппаратного обеспечения, микроконтроллеры MSP430 могут быть оптимизированы для достижения низкого энергопотребления. Периферийные устройства могут отключаться в любой момент времени. Аналогичным образом, в любой момент времени можно переводить микроконтроллер в режим низкого энергопотребления, выключая DCO и ЦПУ. В рассматриваемом примере VLO используется для тактирования периферийных устройств, что исключает потребность в кварце 32,768 кГц. На рисунке 7 изображена структура программного обеспечения.
Рис. 7. Структурная схема программного обеспечения приложения
При включении питания система инициализируется. Акселерометр калибруется при нулевом угле наклона при запуске датчика. Таймер Timer_A тактируется от ACLK=VLO для определения констант времени для задержек. С помощью DCO измеряется частота VLO, за счет подсчета числа тактов DCO за период VLO. Затем вычисляются требуемые временные задержки.
После завершения измерения VLO программа входит в бесконечный цикл. При этом постоянно осуществляется аналогово-цифровое преобразование, обработка преобразованных значений и включение светодиодов два раза в секунду. При включении акселерометра дается 25 мс для его стабилизации. Минимально требуемое время составляет 21 мс, однако задается 25 мс для простоты вычисления временных задержек. В течение этого времени MSP430 входит в режим сниженного энергопотребления LPM3, ожидает прерывания от таймера. При возникновении прерывания включается АЦП (ADC10) для осуществления преобразования координат X и Y. После включения ADC10 MSP430 входит в режим LPM3 до завершения аналогово-цифрового преобразования и размещения полученных значений в ОЗУ. После этого ADC10 устанавливает бит ADC10IFG, вызывающий прерывание, в результате чего MSP430 осуществляет обработку прерывания ADC10ISR в активном режиме. Полученные значения анализируются и включаются соответствующие светодиоды на 25 мс. После этих 25 мс MSP430 входит в режим LPM3 на 450 мс, все светодиоды при этом выключаются. Весь процесс длится при этом 500 мс.
Счетчик определяет, двигалась ли плата за 15 последних включений одного и того же светодиода. Если этого не происходило, датчик и светодиоды выключаются, MSP430 переходит в режим LPM4 с ожиданием прерывания от порта P2.7. Для возникновения этого прерывания и перехода в нормальный режим необходимо нажать внешнюю кнопку.
Энергопотребление системы
Система питается от стандартной 3 В литиевой батарейки. При использовании алгоритма, в соответствии с рисунком 4, среднее значение потребляемого тока системы (Icc) составляет приблизительно 138 мкА на протяжении периода в одну секунду. Полагая, что ресурс батарейки (обычная батарейка 220 мА/час) расходуется на 80%, оценочное время жизни батарейки составляет 1275 часов. Дальнейший анализ показывает, что датчик и светодиоды потребляют 99,5% мощности, в то время как MSP430 только 0,5%. В таблице 2 представлены значения потребляемого тока для основных функций системы.
Таблица 2. Потребляемый ток для основных функций системыФункция | Длительность, мс | Активный ток, мкА | Средний ток, мкА |
---|---|---|---|
MSP430 в режиме LPM3 | 499,8 | 0,6 | 0,3 |
Датчик включен | 25,05 | 450 | 11,27 |
Средний ток системы за 500 мс: 68,9 мкА | |||
Средний ток системы за 1 с: 137,8 мкА |
Если на протяжении 15 выборок обнаруживается, что MSP430 не двигался, система выключается, и MSP430 переходит в режим LPM4. Среднее потребление мощности системы в этом случае составляет 0,5 мкА.
Полное описание и исходные тексты программ рассматриваемого приложения и многих других примеров применения MSP430 можно найти на сайте: www.compel.ru в разделе, посвященном микроконтроллерам, а также на сайте производителя.
Литература
1. Low-Power Tilt Sensor Using the MSP430F2012 (SLAA309).
2. MSP430F2xxx Family User's Guide (SLAU144).
3. MSP430F20xx Mixed Signal Microcontroller data sheet (SLAS491).
4. Analog Devises ADXL322 data sheet.
Ваш комментарий к статье | ||||