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

 
Пересюхтюмя


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





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





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


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





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


Милливольтметр сигма-дельта типа на MSP430F11x1

Резюме

В данном примере применения описывается метод реализации дешевого 12 битного сигма-дельта АЦП на основе микроконтроллера MSP430F11x1 семейства 16-разрядных смешанно-сигнальных RISC процессоров. Описываемое устройство использует периферийный модуль comparator_A. Для демонстрации возможностей на микроконтроллере реализован вольтметр, передающий результат измерения в милливольтах по UART протоколу со скоростью 9600 бод. Описываемое устройство реализовано на микроконтроллере MSP430F11x1, но может быть легко адаптировано под любой микроконтроллер семейства MSP430, имеющий модуль comparator_A.

1 Введение

Используя микроконтроллер MSP430F11x1 семейства 16-разрядных смешанно-сигнальных процессоров, можно легко реализовать дешевый аналого-цифровой преобразователь с высоким разрешением на основе внутреннего компаратора comparator_A микроконтроллера. Описанный аналого-цифровой преобразователь использует технологию сигма-дельта АЦП. Демонстрационная схема, приведенная на рисунке 1 имеет разрешение 1 мВ при 3.3 В однополярном питании. АЦП такого типа, имеющие высокое разрешение, идеально подходят для измерения медленно меняющихся физических величин типа температуры, давления, интенсивности освещения и напряжения. Высокая точность получаемого АЦП и сверх малое потребление MSP430 позволяют изготавливать измерительные устройства с автономным питанием.

Ключевые характеристики встроенного АЦП микроконтроллера MSP430F11x1:

  • 1 мВ / 12 битное разрешение
  • Интегрированное решение, обеспечивающее превосходное подавление шумов
  • Не требуется калибровка компаратора
  • Для реализации АЦП требуется только два внешних компонента.
Примечание:

Для более полного ознакомления с техническими параметрами и описанием модулей микроконтроллера MSP430x11x1 пожалуйста ознакомьтесь с техническим описанием микроконтроллеров семейства MSP430x11x1 и инструкцией по использованию микроконтроллеров семейства MSP430.


Рисунок 1. Милливольтметр на базе MSP430F11x1

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

Концепция интегрированного АЦП состоит в сравнении неизвестного входного напряжения Vin с известным выходным напряжением Vout. Используя один единственный цифровой выход, MSP430F11x1 осуществляет 1 битное цифро-аналоговое преобразование. На выходе ЦАП подсчитывается сколько импульсов было сформировано для того, чтобы выходное напряжение Vout сравнялось с входным напряжением Vin. Программное обеспечение формирует и считает выходные импульсы ЦАП при помощи кольцевого регистра. На выходе ФНЧ ЦАП формируется постоянное напряжение Vout (см. рисунок 2). Программная следящая связь сравнивает сформированное выходное напряжение Vout с измеряемым входным напряжением Vin при помощи встроенного модуля компаратора comparator_A. Изменяя длину регистра следящей связи можно изменить разрешающую способность. Например, кольцевой регистр, имеющий длину 256, обеспечит 8 битное разрешение, а имеющий длину 4096 - 12 битное разрешение. В описываемой схеме выбрана длина счетчика, равная 3300, что позволяет измерять напряжение в диапазоне от 0 до 3,3 В с разрешением 1 мВ. В любом случае результат преобразования пропорционален напряжению питания. Не следует забывать, что диапазон входного сигнала ограничивается диапазоном допустимого синфазного сигнала на входе встроенного компаратора модуля comparator_A.

Положим, что напряжение Vout установлено в предыдущем цикле преобразования равным напряжению Vin, а выходное сопротивление открытых транзисторов порта ввода-вывода MSP430 очень низкое (RDSon <300 мОм), что обеспечивает уровень логической единицы близким к напряжению питания, а уровень логического нуля - близким к нулю:


Рисунок 2. График выходного напряжения встроенного ЦАП

2.1 Расчет номиналов элементов ФНЧ 1 битного ЦАП

Выбор резистора и конденсатора ФНЧ ЦАП очень важен. Этот фильтр должен обеспечивать пульсацию выходного напряжения Vout не более 1 LSB. Такой маленький уровень пульсации выходного напряжения и гарантирует точность преобразования ±1 LSB. Период следования импульсов, формируемых программной обратной связью, в приведенной программе равняется 14 тактовым циклам микроконтроллера. В данном примере применения MSP430F11x1 работает от внешнего кварцевого резонатора с частотой 3.578545 МГц. Тогда период следования импульсов будет равен 14/3578545 сек = 4.9 мкс. Размах напряжения пульсаций должен быть менее 1 LSB (1/3300). При таких условиях можно рассчитать номиналы элементов ФНЧ ЦАП:

2.2 Используемые ресурсы MSP430F11x1

Для реализации встроенного АЦП требуется очень мало ресурсов MSP430F11x1:

  • Модуль comparator_A и связанные с ним входы P2.3 и P2.4 компаратора.
  • Один цифровой выход для реализации 1 - битного ЦАП, например выход P2.0 в примере.

Для реализации однобитного ЦАП может использоваться любой доступный цифровой выход MSP430F1101. В описываемом устройстве используется линия P2.0 порта ввода-вывода. Линия P2.0 настроена на работу в режиме цифрового выхода, использующего выходной регистр второго порта (P2OUT). Линии P2.3 и P2.4 могут использоваться в качестве линий порта ввода-вывода общего назначения или, как в нашем случае, в качестве входов аналогового компаратора модуля comparator_A. Выбор режима работы линий осуществляется путем установления нужного значения регистра второго порта (P2SEL). При помощи регистра управления направленностью линий второго порта (P2DIR) линии P2.3 и P2.4 должны быть настроены на работу в качестве входов. Компаратор модуля comparator_A, настраиваемый при помощи управляющих регистров CACTL1 и CACTL2, используется для сравнения аналоговых напряжений Vout и Vin. Результат измерения передается при помощи UART, использующего модуль таймера Timer_A, на скорости 9600 бод по линии P1.1.

2.3 Требующиеся внешние компоненты

Для реализации АЦП требуется только два внешних компонента:

  • Один резистор
  • Один полиэстровый пленочный конденсатор с низким током утечки

Макетная схема устройства, приведенная на рисунке 1, имеет связь с персональным компьютером и питается непосредственно от RS232 интерфейса. Для согласования уровней логических сигналов микроконтроллера и RS232 интерфейса используется микросхема интерфейса типа MAX232. Также можно использовать одно-вентильный интерфейс типа SN74AH1GC04. Кроме этого в схеме применены низкопотребляющий стабилизатор напряжения с низким падением напряжения TPS77033 и кварцевый резонатор с частотой 3.578545 МГц.

2.4 Снижение системной ошибки

Общая точность аналого-цифрового преобразователя определяется точностью однобитного ЦАП. ЦАП формирует выходное напряжение в диапазоне от напряжения питания (VCC) до нуля (GND). Обеспечивается это тем, что выходные полевые транзисторы цифрового порта, использующегося под ЦАП, имеют очень низкое сопротивление открытого канала. Также точность ЦАП зависит от точности стабилизации напряжения питания MSP430. В демонстрационной схеме напряжение питания VCC было установлено точно равным 3300 милливольтам. Это значение 3300 запоминается в регистре VCC_Cal и вызывается в подпрограмме следящей связи Meas_ADC. Аналого-цифровой преобразователь является масштабируемым по отношению к напряжению питания. Если необходимо производить измерение напряжения, то точность АЦП будет определяться точностью стабилизации напряжения питания.

Компаратор имеет напряжение смещения, которое вызовет ошибку. Уникальная особенность модуля comparator_A - наличие входного мультиплексора, позволяющего менять местами входы. Этот простой, но мощный мультиплексор устраняет необходимость компенсации напряжения смещения компаратора. Коррекция смещения производится путем вычисления среднего значения двух результатов, полученных в результате переключения входов. Или, как в этом примере применения, 50 % преобразующей последовательности формируется при одном состоянии мультиплексора, а 50 % - при другом. Переключение входов модуля comparator_A осуществляется путем изменения бита CAEX в управляющем регистре CACTL1. Для более полного описания см. техническое описание на микроконтроллер. Если устройство должно иметь внешнюю калибровку, то точное значение может быть сохранено во Flash памяти MSP430F11x1 или непосредственно в ОЗУ (если устройство будет иметь непрерывное питания.

Примечание:

Демонстрационная схема питается непосредственно от последовательного порта персонального компьютера. Импульсные блоки питания некоторых компьютеров являются источниками сильных помех, которые могут попасть через последовательный порт непосредственно на MSP430. Кроме того, не следует упускать из внимания и вопросы правильной трассировки платы.

Программная следящая связь должна быть эквивалентна тракту и не блокироваться при выполнении аналого-цифрового преобразования. Программа написана таким образом, что период следования импульсов ЦАП равняется 14 тактам, что позволяет обеспечить симметрию длительности всех импульсов ЦАП. Если при выполнении подпрограммы измерения происходит прерывание, то до и после выполнения подпрограммы обслуживания прерывания должны анализироваться значения DINT и EINT. Это позволит избежать обслуживания ложных прерываний.

3 Описание программы fet_intADC.s43

Демонстрационная программа fet_intADC.s43 состоит из нескольких процедур. После сброса выполняется подпрограмма Init_Sys, инициализирующая порты ввода-вывода и модули микроконтроллера MSP430.

В основной программе ЦАП вызывается подпрограммой Meas_ADC. Подпрограмма Meas_ADC осуществляет выборку и преобразование аналогового сигнала, а результат преобразования помещает в регистр ADCData. Встроенная следящая связь с коэффициентом пересчета 3300, непосредственно в теле подпрограммы Meas_ADC высчитывает необходимое количество импульсов в десятичном виде для выполнения цифро-аналогового преобразования. Это позволяет MSP430, работающему от 3.3 В питания выдавать результат преобразования непосредственно в милливольтах.

;---------------------------------------------------------------------------
Meas_ADC; Подпрограмма: измерения при помощи АЦП, результат преобразования АЦП 
; в двоично-дополнительном коде --> ADCData
; R15 используется в качестве рабочего регистра и не сохраняет свое состояние
;---------------------------------------------------------------------------
    mov.b   #CAON,&CACTL1   ; Включение компаратора
    clr     ADCData         ; Очистка регистра ADCData 
    call    #Sample_ADC     ; результат выборки --> ADCData
    call    #Sample_ADC     ; результат выборки --> ADCData + предыдущие данные
Meas_Over
    clr.b   &CACTL1         ; Выключение компаратора
    ret                     ; Выход из подпрограммы
;
Sample_ADC
    mov     &VCC_Cal,R15    ; ~3300
    rra     R15             ; VCC/2
; предварительный заряд конденсатора;
Pre_ADC
    bis.b   #DAC_Out,&P2OUT ; заряд конденсатора
C1  bit.b   #CAOUT,&CACTL2  ; На выходе компаратора сигнал высокий или низкий?
    jz      C1 			;
; Настройка и накопление импульсов ЦАП;
Test_DAC
    bit.b   #CAOUT,&CACTL2  ; На выходе компаратора сигнал высокий или низкий?
    jnc     Low1 	; 
High
    bic.b   #DAC_Out,&P2OUT ; Разряд конденсатора
    jmp     Meas_ ;
Low1
    bis.b   #DAC_Out,&P2OUT ; Заряд конденсатора
    setc 		;
    dadc    ADCData         ; увеличение ADCData в двоично-десятичном коде
Meas_
    dec     R15             ; Уменьшение счетчика цикла слежения
    jnz     Test_DAC        ; цикл слежения закончен?
    bic.b   #DAC_Out,&P2OUT ; разряд конденсатора
    xor.b   #CAEX,&CACTL1   ; инвертирование выводов компаратора
    ret ; Выход из подпрограммы

Затем вызывается подпрограмма TX_2_PC, осуществляющая передачу данных в персональный компьютер со скоростью 9600 бод. После этого опять начинает выполняться основная программа.

3.1 Программное обеспечение для основного 12 битного АЦП

Ниже приведена программа, которая может использоваться для реализации основного пропорционального напряжению питания 12 битного АЦП. Программа почти идентична демонстрационной программе, за исключением выполнения двух двоичных выборок (при переключенных входах компаратора) и усреднения. Результат, преобразования сохраняется в регистре ADCData и лежит в пределах от 0000 до 0FFFh.

;---------------------------------------------------------------------------
Meas_ADC; Подпрограмма: измерения при помощи АЦП, результат преобразования АЦП 
; в двоичном коде --> ADCData
; R15 используется в качестве рабочего регистра и не сохраняет свое состояние
;---------------------------------------------------------------------------
    mov.b   #CAON,&CACTL1   ; Включение компаратора
    clr     ADCData         ; Очистка регистра ADCData 
    call    #Sample_ADC     ; выборка --> ADCData
    call    #Sample_ADC     ; выборка --> ADCData + предыдущее значение
    rra     ADCData         ; ADCData/2
Meas_Over
    clr.b   &CACTL1         ; Отключение компаратора
    ret                     ; Выход из подпрограммы
;
Sample_ADC
    mov     #04096,R15      ; 12- бит
; предварительный заряд конденсатора;
Pre_ADC
    bis.b   #DAC_Out,&P2OUT ; Заряд конденсатора
C1  bit.b   #CAOUT,&CACTL2  ; На выходе компаратора высокий или низкий сигнал?
    jz      C1              ;
; Настройка и накопление импульсов ЦАП ;
Test_DAC
    bit.b   #CAOUT,&CACTL2  ; На выходе компаратора высокий или низкий сигнал?
    jnc     Low1 ; 
High
    bic.b   #DAC_Out,&P2OUT ; Разряд конденсатора
    jmp     Meas_           ;
Low1
    bis.b   #DAC_Out,&P2OUT ; Заряд конденсатора
    nop                     ;
    inc     ADCData         ; Увеличение ADCData
Meas_
    dec     R15             ; Уменьшение счетчика цикла слежения
    jnz     Test_DAC        ; Цикл слежения закончен?
    bic.b   #DAC_Out,&P2OUT ; Разряд конденсатора
    xor.b   #CAEX,&CACTL1   ; Инвертирование выводов компаратора
    ret                     ; Выход из подпрограммы

3.2 Использование стандартных процедур компании TI

Код для этого примера применения был разработан при помощи MSP-FET430X11X и встроенных инструментальных средств интегрированной среды программирования. Код программы написан на ассемблере (.s43). Все примеры программ этого примера применения используют стандартные процедуры компании TI. Приведенная ниже команда копирует зарегистрированные стандартные процедуры в исходный код:

    *include "msp430x11x1.h"

Компания TI поощряет использование программистами стандартных процедур, что позволяет объединить разработчиков в единое сообщество и упростить процедуру разработки и отладку прикладных программ.

4 Заключение

Современная 16-разрядная RISC архитектура MSP430 очень хорошо подходит для устройств, манипулирующих с данными, имеющими большую разрядность. 16-разрядная архитектура MSP430 позволяет при помощи одной команды манипулировать АЦП с высоким разрешением, используемым в данном примере применения.

Технология аналого-цифрового преобразования, описанная в данном примере применения очень проста, недорога и не требует больших ресурсов MSP430. Это позволяет изготавливать дешевые АЦП с высоким разрешением. Эта технология интегрирующего АЦП не обеспечивает высокого быстродействия. После того, как входное и выходное напряжения сравняются преобразование выполняется при работе на частоте 3.578545 МГц за 13 мс. Для снижения длительности цикла преобразования можно, если преобразование прошло успешно, оставлять накопительный конденсатор заряженным или использовать более высокую рабочую частоту микроконтроллера MSP430. Максимальная рабочая частота MSP430F11x1 намного выше чем 3.578545 МГц, использованная в данном примере применения. Быстродействия интегрирующих АЦП достаточно для измерения сигналов от телеметрических датчиков, систем сбора данных и других датчиков медленно меняющихся физических величин (температура, давление и т.д.).

Имеются и дополнительные преимущества использования интегрирующих ЦАП с коротким периодом симметричного импульса. Аналого-цифровое преобразование, выполняющееся на основе обычной ШИМ, ШИМ с одиночным большим периодом или переменного цикла, требует RC цепочки с относительно большим временем преобразования. Отклик на короткие импульсы, применяющиеся в данном примере применения, устанавливается быстрее, что позволяет использовать RC цепочку с меньшей постоянной времени. Поэтому интегрирующий АЦП фактически накапливает несколько однобитных приращений, что позволяет снизить ошибки, вызванные шумами.

Пример программы:

  79Kb Исходный фаил реализации электронного счетчика электроэнергии
  RUS Приложение А: FET_intADC MSP430F11x1 Demo
  4Kb Фаилы программ

известный сонник, гороскоп на сегодня