Руководство пользователя MSP430 (1041606), страница 35
Текст из файла (страница 35)
Прекращение активности АЦП12 зависит от режима работы. Рекомендуются следующие способы останова активного преобразования или последовательности преобразований:
-
Сброс ENC в одноканальном режиме одиночного преобразования немедленно останавливает преобразование, при этом результат оказывается непредсказуемым. Для получения правильного результата необходимо опрашивать бит занятости до сброса перед очисткой ENC.
-
Сброс ENC во время повторяющегося одноканального преобразования останавливает преобразователь в конце текущего преобразования.
-
Сброс ENC во время последовательного или повторно-последовательного режимов останавливает преобразователь в конце последовательности.
-
Любой режим преобразования может быть немедленно остановлен установкой CONSEQx=0 и сбросом бита ENC. Данные преобразования будут ненадежны.
Примечание:Отсутствие установленного бита EOS для последовательности |
17.2.7 Использование АЦП12 с контроллером DMA
Устройства MSP430 с интегрированным контроллером DMA могут автоматически перемещать данные из любого регистра ADC12MEMx в другое место. DMA-переносы выполняются без вмешательства ЦПУ и независимо от любого выбранного режима пониженного энергопотребления. Контроллер DMA увеличивает пропускную способность модуля АЦП12 и расширяет круг приложений с пониженным энергопотреблением, позволяющих ЦПУ оставаться выключенным во время переноса данных.
DMA-переносы могут запускаться от любого флага ADC12IFGx. Когда CONSEQx={0,2}, флаг ADC12IFGx для ADC12MEMx, используемый для преобразования, может запустить DMA-перенос. Когда CONSEQx={1,3}, флаг ADC12IFGx для последнего ADC12MEMx в последовательности может запустить DMA-перенос. Любой флаг ADC12IFGx автоматически очищается, когда контроллер DMA обращается к соответствующему регистру ADC12MEMx. См. раздел DMA-контроллер.
17.2.8 Использование интегрированного температурного датчика
При использовании имеющегося на кристалле температурного датчика пользователь выбирает аналоговый входной канал INCHx=1010. Любая другая конфигурация рассматривается как выбор внешнего канала, включая выбор опорного источника, выбор памяти преобразований и т.д.
Типичная передаточная функция температурного датчика показана на рис.17-10. Если используется температурный датчик, период выборки должен быть больше 30 мкС. Ошибка смещения температурного датчика может быть большой и может потребоваться калибровка для большинства приложений. См. справочные данные конкретного устройства для выяснения подробностей.
При выборе температурного датчика автоматически запускается расположенный на кристалле опорный генератор в качестве источника напряжения для температурного датчика. Однако это не включает выход VREF+ и не влияет на выбор опорного источника для преобразования. Процедура выбора источника для преобразования информации с температурного датчика подобна процедуре выбора для любого другого канала.
Рис.17-10 Типичная передаточная функция температурного датчика
17.2.9 Заземление АЦП12 и рассмотрение влияния помех
Как в любом АЦП с высоким разрешением, для устранения нежелательных паразитных эффектов и шумов, а также предотвращения возникновения паразитных контуров с замыканием на землю, необходимы особая разводка печатной платы и особые методы заземления.
Паразитные общие петли формируются, когда ток возврата от АЦП проходит совместно с токами других аналоговых и цифровых схем. Если не принимать специальных мер, этот ток может генерировать нежелательные напряжения смещения, которые могут прибавляться или вычитаться из опорного или входного напряжений аналого-цифрового преобразователя. Способ подключения, показанный на рис.17-11 позволяет этого избежать.
В дополнение к заземлению, пульсации и шумовые выбросы на линиях источника питания, вызванные переключениями цифровых схем или переключениями в источнике питания могут повредить результат преобразования. Для получения высокой точности рекомендуется создавать разработки, свободные от шумов, что достигается разделением аналоговых и цифровых контуров земли с соединением их в одной точке.
17.2.10 Прерывания АЦП12
АЦП12 имеет 18 источников прерывания:
-
ADC12IFG0-ADC12IFG15
-
ADC12OV, переполнение AD12MEMx
-
ADC12TOV, переполнение времени преобразования АЦП12
Биты ADC12IFGx устанавливаются, когда в их соответствующие регистры памяти ADC12MEMx загружается результат преобразования. Если соответствующий бит ADC12IEx и бит GIE установлены, генерируется запрос прерывания. Состояние ADC12OV появляется, когда результат преобразования записывается в любой регистр ADC12MEMx до прочтения предыдущего результата. Состояние ADC12TOV генерируется, когда до завершения текущего преобразования затребована другая выборка-преобразование.
Рис.17-11 Заземление АЦП12 и устранение помех
ADC12IV, генератор вектора прерываний
Все источники прерываний АЦП12 разделены по приоритетам и являются источником одного вектора прерываний. Регистр вектора прерываний ADC12IV используется для определения, какой разрешенный источник прерываний АЦП12 запрашивает прерывание.
Разрешенное прерывание АЦП12 с наивысшим приоритетом генерирует число в регистре ADC12IV (см. описание регистра). Это число может быть оценено или добавлено к программному счетчику для автоматического входа в соответствующую программную процедуру. Запрещенные прерывания АЦП12 не влияют на значение ADC12IV.
При любом типе доступа (чтение или запись), регистр ADC12IV автоматически сбрасывает состояние ADC12OV или состояние ADC12TOV, если любое из них было наивысшим ожидающим прерыванием. Никакое состояние прерывания не имеет доступного флага прерывания. Флаги ADC12IFGx не сбрасываются при доступе к ADC12IV. Биты ADC12IFGx сбрасываются автоматически при доступе к их соответствующим регистрам ADC12MEMx или же могут быть сброшены программно.
Если после обработки текущего прерывания ожидается другое прерывание, генерируется другое прерывание. К примеру, если ожидается обработка прерываний ADC12OV и ADC12IFG3, когда процедура обработки прерывания обращается к регистру ADC12IV, состояние прерывания ADC12OV автоматически сбрасывается. После выполнения команды RETI процедуры обработки прерывания ADC12IFG3 генерирует другое прерывание.
Пример программы-обработчика прерываний АЦП12
Приведенный далее пример программного обеспечения показывает рекомендуемое использование ADC12IV и временные затраты на обработку. Значение ADC12IV добавляется к PC для автоматического перехода к соответствующей процедуре.
Числа в правом поле показывают необходимое для каждой команды количество циклов ЦПУ. Программные затраты для различных источников включают время задержки прерывания и циклы возврата из прерывания, но не обработку собственно задачи. Задержки таковы:
-
ADC12IFG0-ADC12IFG14, ADC12TOV и ADC12OV 16 циклов
-
ADC12IFG15 14 циклов
Обработчик прерывания для ADC12IFG15 показывает путь к немедленной проверке, если произошло прерывание с наивысшим приоритетом во время обработки ADC12IFG15. Это позволяет сэкономить девять циклов, если ожидается другое прерывание АЦП12.
; Обработчик прерывания для АЦП12.
INT_ADC12 ; Вход процедуры обработки прерывания 6
ADD&ADC12IV,PC ; Добавление смещения к PC 3
RETI ; Вектор 0: Нет прерывания 5
JMPADOV ; Вектор 2: Переполнение АЦП 2
JMPADTOV ; Вектор 4: Переполнение тактирования АЦП 2
JMPADM0 ; Вектор 6: ADC12IFG0 2
.... ; Векторы 8-32 2
JMPADM14 ; Вектор 34: ADC12IFG14 2
;
; Обработчик ADC12IFG15 стартует здесь. JMP не требуется.
;
ADM15 MOV &ADC12MEM15,xxx ; Перемещение результата, флаг сброшен
... ; Другая команда необходима?
JMP INT_ADC12 ; Проверка другого ожидаемого прерывания
;
; Обработчик ADC12IFG14-ADC12IFG1 запускается здесь
;
ADM0 MOV &ADC12MEM0,xxx ; Перемещение результата, флаг сброшен
... ; Другая команда необходима?
RETI ; Возврат 5
;
ADTOV ... ; Обработка переполнения времени преобразования
RETI ; Возврат 5
;
ADOV ... ; Обработка переполнения ADCMEMx
RETI ; Возврат 5
Раздел 18 АЦП10
Модуль АЦП10 представляет собой высокоэффективный 10-разрядный аналого-цифровой преобразователь. В этом разделе описывается АЦП10. АЦП10 реализован в устройствах MSP430x11x2 и MSP430x12x2.
18.1 Введение в АЦП10
Модуль АЦП10 обеспечивает быстрые 10-разрядные аналого-цифровые преобразования. Модуль имеет 10-разрядное ядро с регистром последовательного приближения SAR, схему выборки, опорный генератор и контроллер переноса данных (DTC).
DTC позволяет выборкам АЦП10 преобразовываться и сохраняться в любом месте памяти без вмешательства ЦПУ. Модуль может конфигурироваться программным обеспечением пользователя для поддержки разнообразных приложений.
АЦП10 обладает следующими возможностями:
-
Максимальная скорость преобразования свыше 200 ksps (200000 преобразований в сек.)
-
Монотонный 10-разрядный преобразователь без ошибочных кодов
-
Выборка и хранение с программируемыми периодами выборки
-
Преобразование инициируется программным обеспечением или таймером А
-
Программно выбираемый интегрированный генератор опорного напряжения (1,5 В или 2,5 В)
-
Программно выбираемый внутренний или внешний опорный источник
-
Восемь индивидуально конфигурируемых внешних входных каналов
-
Каналы преобразования для внутреннего температурного датчика, AVCC и внешних опорных источников
-
Выбираемый источник тактирования преобразований
-
Одноканальный, повторный одноканальный, последовательный и повторно-последовательный режимы преобразования
-
Ядро АЦП и опорное напряжение могут выключаться раздельно
-
Контроллер переноса данных для автоматического сохранения результатов преобразований
Блок-схема АЦП10 показана на рис.18-1.
Рис.18-1 Блок-схема АЦП10
18.2 Функционирование АЦП10
Модуль АЦП10 конфигурируется программным обеспечением пользователя. Настройка и работа АЦП10 рассматриваются в следующих далее разделах.
18.2.1 10-разрядное ядро АЦП
Ядро АЦП преобразует аналоговый входной сигнал в 10-разрядное цифровое представление и сохраняет результат в регистре ADC10MEM. Ядро использует два программно выбираемых уровня напряжений (VR+ и VR-) для задания верхнего и нижнего пределов преобразования. Цифровой выход (NADC) составляет полную шкалу (03FFh), когда входной сигнал равен или выше VR+, и равен нулю, когда входной сигнал равен или ниже VR-. Входной канал и опорные уровни напряжений (VR+ и VR-) задаются в памяти управления преобразованиями. Результаты преобразования могут быть представлены в натуральном двоичном формате или формате с дополнением до двух. Формула преобразования для результата АЦП NADC с использованием натурального двоичного формата выглядит следующим образом:
Ядро АЦП12 конфигурируется двумя управляющими регистрами: ADC10CTL0 и ADC10CTL1. Ядро включается битом ADC10ON. За некоторыми исключениями биты управления АЦП10 могут быть модифицированы только когда ENC=0. ENC должен быть установлен в 1 перед выполнением любого преобразования.
Выбор тактирования преобразования
ADC10CLK используется как для тактирования преобразования, так и для генерации периода выборки. Для выбора источника тактирования АЦП10 используются биты ADC10SSELx, а частота этого источника может быть поделена на 1-8 с помощью битов ADC10DIVx. Возможны следующие источники ADC10CLK: SMCLK, MCLK, ACLK и внутренний осциллятор ADC10OSC.
Внутренне генерируемая частота ADC10OSC лежит в диапазоне 5 МГц, на варьируется в зависимости от конкретного устройства, напряжения питания и температуры. См. справочное руководство конкретного устройства для уточнения значения ADC10OSC.
Пользователь должен гарантировать, что выбранный источник тактирования для ADC10CLK останется активным до конца преобразования. Если тактовые сигналы будут сняты во время преобразования, операция не будет завершена и любой результат будет неверным.