Поиск по сайту: |
|
По базе: |
|
Главная страница > Компоненты > Микроконтроллеры > MSP430 > Архитектура MSP430x4xx |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Раздел 20Модуль АЦП SD16Модуль АЦП SD16 представляет собой многоканальный 16-битный сигма-дельта аналогово-цифровой преобразователь. В это главе описана работа модуля АЦП SD16. Модуль SD16 присутствует в микроконтроллерах MSP430FE42x и MSP430F42x. Содержание: 20.1 Модуль АЦП SD16 - введениеМодуль АЦП SD16 содержит до трёх независимых сигма-дельта аналогово-цифровых преобразователей и встроенный источник опорного напряжения. Каждый из АЦП имеет до восьми полностью дифференциальных переключаемых каналов, в том числе встроенный датчик температуры. АЦП созданы на базе дельта-сигма модуляторов второго порядка с передискретизацией и цифровых децимирующих фильтров. Для прореживания (децимации) используются фильтры comb-типа с программируемым коэффициентом прореживания до 256. Дополнительная фильтрация может быть осуществлена программно. Модуль АЦП SD16 обладает следующими свойствами:
Блок схема модуля АЦП SD16 показана на рис. 20–1.
20.2 Работа модуля АЦП SD16Модуль АЦП SD16 конфигурируется при помощи пользовательского программного обеспечения. Настройка и функционирование модуля будут подробно рассмотрены ниже. 20.2.1 Ядро аналогово-цифрового преобразователя Аналогово-цифровое преобразование осуществляется однобитным сигма-дельта модулятором второго порядка. Однобитный компаратор в составе модулятора осуществляет квантование сигнала с частотой модулятора fM. Получающийся в результате однобитовый поток усредняется цифровым фильтром, формируя результат преобразования. 20.2.2 Цифровой фильтр Цифровой фильтр обрабатывает 1-битный поток данных, поступающий с модулятора при помощи SINC3 фильтра comb-типа. Передаточная характеристика такого фильтра может быть представлена в Z-плоскости как: а в частотной области как: где степень передискретизации, OSR, это отношение частоты модулятора fM к частоте выборки fS. На рис. 20-2 показана частотная характеристика фильтра при OSR равном 32. Первый срез фильтра приходится на частоту fS = fM/OSR. Частота среза может быть подстроена изменением частоты модулятора, fM, при помощи бит SD16SSELx и SD16DIVx или степени передискретизации при помощи бит SD16OSRx. Цифровой фильтр для каждого из разрешённых каналов завершает прореживание (децимацию) цифрового потока данных и выдаёт результат преобразования в соответствующий регистр SD16MEMx с частотой выборки fS.
На рис. 20-3 показаны пошаговый отклик фильтра и точки преобразования. Для корректного пошагового преобразования после старта преобразования, следует выждать определенное время, называемое временем установления (settling time) до того момента, пока результат преобразования не станет корректным. Битами SD16INTDLYx можно задать время установления достаточное, для единовременного изменения сигнала на входе АЦП в пределах полной шкалы измерения. Если шаг преобразований синхронизирован с децимацией цифрового фильтра, корректный результат на выходе появится после третьего преобразования. Асинхронность этих сигналов потребует дополнительного цикла преобразования.
20.2.3 Диапазон аналогового сигнала и усилитель с программируемым коэффициентом усиления (PGA) Полный диапазон входного аналогового сигнала для каждой пары входов зависит от установленного коэффициента усилителя по каждому каналу. Максимально допустимый диапазон — ±VFSR, где VFSR определяется как При использовании опорного напряжения величиной 1.2В, максимальный диапазон входного сигнала при усилении 1 равен: Конкретные значения допустимых значений входных сигналов см. в документации на конкретный тип МК. 20.2.4 Источник опорного напряжения Модуль АЦП SD16 содержит встроенный источник опорного напряжения величиной 1.2В, который может быть использован для всех каналов модуля SD16 и включается битом SD16REFON. Для снижения помех при использовании встроенного источника опорного напряжения рекомендуется использование внешнего конденсатора ёмкостью в 100 нФ, подключенного между выводов VREF и AVSS. Опорное напряжение также может использоваться вне микроконтроллера, если это разрешено битом SD16VMIDON. Выход ИОН буферизован, нагрузочный ток буфера до 1мА. При использовании опорного напряжения вне микроконтроллера, требуется внешний конденсатор ёмкостью в 470 нФ, подключенный между выводов VREF и AVSS. Уточнённые параметры см. в документации на конкретный тип МК. В том случае, если биты SD16REFON и SD16VMIDON обнулены, АЦП может использовать внешний ИОН, подключенный к выводу VREF. 20.2.5 Регистры памяти преобразований: SD16MEMx Каждому каналу модуля SD16 сопоставлен регистр памяти SD16MEMx. На каждом шаге децимации цифрового фильтра результат преобразования записываются в соответствующий регистр SD16MEMx. При перезаписи нового значения в регистр SD16MEMx устанавливается бит SD16IFG. Бит SD16IFG обнуляется автоматически при чтении из регистра SD16MEMx либо может быть обнулён программно. Формат выходных данных Выходные данные могут иметь вид двоичного кода со смещением либо кода с дополнением до 2-х, как показано в Таблице 20-1.Формат данных определяется битом SD16DF.
* не зависит от настроек SD16OSRx; SD16LSBACC = 0. На Рис. 20-4 показана связь между входным напряжением во всём диапазоне от минимума до максимума (-VFSR … +VFSR) и результатом преобразования. Проиллюстрирован результат для обоих типов формата данных.
Выход цифрового фильтра Число бит на выходе каждого из цифровых фильтров зависит от степени передискретизации и изменяется от 16 до 24. На Рис. 20-5 показан выход цифрового фильтра и его связь с содержимым регистров SD16MEMx для всех настроек бит SD16OSRx. Биты SD16LSBACC и SD16LSBTOG позволяют иметь доступ к младшим значащим разрядам (МЗР) выхода цифрового фильтра. Когда SD16LSBACC = 1, 16 младших значащих разрядов выхода цифрового фильтра могут быть прочитаны через регистры SD16MEMx с помощью 16-битных инструкций. Доступ к регистрам SD16MEMx также может быть осуществлён при помощи байтовых инструкций (.B), возвращающих 8 МЗР выхода цифрового фильтра. Когда SD16LSBTOG = 1, бит SD16LSBACC автоматически инвертируется каждый раз при чтении соответствующего каналу регистра SD16MEMx. Это позволяет прочитать результат преобразования на выходе цифрового фильтра полностью с помощью двух операций чтения регистра SD16MEMx. Установка или очистка бита SD16LSBTOG не влияет на состояние SD16LSBACC вплоть до следующего доступа к регистру SD16MEMx. Диапазон положительных и отрицательных значений на выходе цифрового фильтра зависит от выбранного коэффициента передискретизации.
20.2.6 Выбор канала Каждый канал модуля АЦП SD16 может осуществлять преобразование по восьми дифференциальным входам, мультиплексируемым на вход усилителя с программируемым коэффициентом усиления (PGA). До шести пар входов (A0-A5) имеют внешние выводы. По вопросу подключения аналоговых входов см. документацию на конкретный МК. Встроенный датчик температуры доступен в каждом канале АЦП по входу A6 мультиплексора. Вход A7 представляет собой перемычку между положительным и отрицательным входом пары и может быть использован для калибровки смещения в каждом входном каскаде модуля АЦП SD16. Конфигурация аналогового входа Конфигурация аналогового входа для всех каналов АЦП осуществляется при помощи регистров SD16INCTLx. Настройки, хранимые в этих регистрах независимы для каждого из каналов. Битами SD16INCHx выбирается одна из восьми входных пар сигналов при помощи аналогового мультиплексора. Усиление для каждого PGA устанавливается битами SD16GAINx. Всего доступно 8 вариантов установки усиления. Любые изменения бит SD16INCHx и SD16GAINx во время преобразования вступают в силу только на следующем шаге децимации цифрового фильтра. После изменения этих бит, последующие три результата преобразования могут быть некорректными из-за конечного времени установления цифрового фильтра. Эта проблема может быть разрешена аппаратно с помощью бит SD16INTDLYx. Если SD16INTDLY = 00h, запрос прерывания по завершению преобразования возникнет только после четвёртого по счёту преобразования после запуска. 20.2.7 Режимы преобразования Модуль АЦП SD16 может работать в четырёх различных режимах .перечисленных в Таблице 20-2. Выбор режима преобразования для каждого канала устанавливается битами SD16SNGL и SD16GRP. Таблица 20-2. Режимы преобразования
* Бит означает, что канал входит в группу и что канал является ведущим в группе в случае, если SD16GRP = 0 и если установлен бит SD16GRP предыдущего канала. Одиночное преобразование по одному каналу Установка в «1» бита SD16SC запускает одиночное преобразование для соответствующего канала в случае, если SD16SNGL = 1 и канал не сгруппирован с другими. Бит SD16SC очищается автоматически по завершению преобразования. Установка в «0» бита SD16SC в процессе преобразования немедленно прекращает процесс, питание канала и соответствующий цифровой фильтр отключаются. При этом значение в регистре SD16MEMx после очистки бита SD16SC может измениться. Ввиду этого, рекомендуется считывать результат преобразования из регистра SD16MEMx до очистки бита SD16SC в целях предотвращения считывания ложного результата. Повторяющиеся преобразования по одному каналу Выбор данного режима осуществляется установкой SD16SNGL = 0. Преобразование по выбранному каналу запускается установкой в «1» бита SD16SC продолжается до тех пор, пока SD16SC не будет программно очищен в том случае, канал не сгруппирован с другими. Установка в «0» бита SD16SC в процессе преобразования немедленно прекращает процесс, питание канала и соответствующий цифровой фильтр отключаются. При этом значение в регистре SD16MEMx после очистки бита SD16SC может измениться. Ввиду этого, рекомендуется считывать результат преобразования из регистра SD16MEMx до очистки бита SD16SC в целях предотвращения считывания ложного результата. На Рис. 20-6 показан процесс преобразования по одиночному каналу в режимах одиночного и повторяющихся преобразований.
Однократное групповое преобразование Последовательные каналы модуля АЦП SD16 могут быть сгруппированы с помощью бита SD16GRP для синхронизации преобразований. Установка бита SD16GRP для определённого канала группирует данный канал с последующим в модуле. Например, установка бита SD16GRP для 0-го канала группирует его с 1-ым каналом. В этом случае 1-ый канал является ведущим, его битом SD16SC разрешаются и запрещаются преобразования для всех остальных каналов группы. Бит SD16GRP ведущего канала всегда равен нулю. Бит SD16GRP последнего канала модуля АЦП SD16 является незначащим и также всегда равен нулю. Если для канала в составе группы установлено SD16SNGL = 1, для этого канала будет выбран режим однократного преобразования. Одиночное преобразование по этому каналу будет осуществляться синхронно с установкой в «1» бита SD16SC ведущего канала. Бит SD16SC для всех каналов в группе автоматически управляется битом SD16SC ведущего канала. Программная очистка бита SD16SC может осуществляться для каждого канала независимо. Установка в «0» бита SD16SC ведущего канала в процессе преобразования немедленно прекращает процесс преобразования по всем каналам в группе, питание каналов и соответствующие цифровые фильтры отключаются. При этом значения в регистрах SD16MEMx после очистки бита SD16SC может измениться. Ввиду этого, рекомендуется считывать результат преобразования из регистров SD16MEMx до очистки бита SD16SC в целях предотвращения считывания ложного результата. Повторяющиеся групповые преобразования Когда SD16SNGL = 0 для канала в составе группы, для данного канала выбран режим повторяющихся преобразований. Повторяющееся преобразование по этому каналу будет осуществляться синхронно с установкой в «1» бита SD16SC ведущего канала. Бит SD16SC для всех каналов в группе автоматически управляется битом SD16SC ведущего канала. Программная очистка бита SD16SC может осуществляться для каждого канала независимо. Когда бит SD16SC для канала в составе группы программно установлен в «1» независимо от ведущего канала, преобразование по данному каналу будет автоматически синхронизировано с преобразованием по ведущему каналу. Таким образом, обеспечивается гарантированная синхронность преобразования сгруппированных каналов с преобразованием по ведущему каналу. Установка в «0» бита SD16SC ведущего канала в процессе преобразования немедленно прекращает процесс преобразования по всем каналам в группе, питание каналов и соответствующие цифровые фильтры отключаются. При этом значения в регистрах SD16MEMx после очистки бита SD16SC может измениться. Ввиду этого, рекомендуется считывать результат преобразования из регистров SD16MEMx до очистки бита SD16SC в целях предотвращения считывания ложного результата. На Рис. 20-7 показан процесс преобразования для трёх сгруппированных каналов модуля АЦП SD16. Два канала настроены на режим однократного преобразования, SD16SNGL = 1, а ведущий канал функционирует в повторяющемся режиме, SD16SNGL = 0. Обратите внимание, что преобразования по всем каналам осуществляются синхронно с ведущим каналом вне зависимости от программной установки индивидуальных бит SD16SC для ведомых каналов.
20.2.8 Режим преобразования с предварительной загрузкой Когда несколько каналов сгруппированы, регистры SD16PREx могут быть использованы за задания задержки преобразования для каждого канала. При использовании SD16PREx, время децимации цифрового фильтра возрастает на определённое число тактов частоты fM , находящееся в диапазоне от 0 до 255. На рис. 20-8 показан пример использования регистров SD16PREx.
Задержка преобразования, записанная в SD16PREx, вступает в силу с начала следующего цикла преобразования после того, в котором она была записана. Задержка имеет действие только во время первого преобразования после установки бита SD16SC, следующего за записью в регистр SD16PREx. Последующие преобразования осуществляются в обычном режиме. После изменения содержимого регистров SD16PREx, следующая запись в эти регистры должна производиться не ранее, чем по завершению следующего цикла преобразования, в противном случае результаты преобразования могут быть некорректными. Точность результата задержанного преобразования зависит от длины задержки, записанной в SD16PREx и от частоты оцифровываемого аналогового сигнала. Например, при измерении постоянного сигнала, задержка SD16PREx не влияет на результат преобразования вне зависимости от её длительности. Целесообразность использования режима задержанного преобразования определяется пользователем. На рис. 20-9 показана работа сгруппированных каналов 0 и 1. Регистр предварительной загрузки канала 1 обнулён, что соответствует немедленному запуску преобразования, преобразование по каналу 0 задержано установкой SD16PRE0 = 8. Первое преобразование по каналу 0 с задержкой SD16PREx = 8 приводит к сдвигу всех последующих преобразований на время, равное 8 тактов частоты fM.
Следует соблюдать осторожность в том случае, если один канал или группа каналов функционируют в режиме однократного преобразования или программно запрещены в то время, как ведущий канал остаётся активным. Каждый раз после того, как канал в группе будет разрешён по новой и засинхронизирован с ведущим, значение задержки для этого канала будет использовано снова. На рис. 20-10 показан процесс синхронизации и применения задержек к каналам в группе. Рекомендуется задавать для ведущего канала SD16PREx = 0 для сохранения значений задержек между ведущим и ведомыми каналами при запрещении и последующем разрешении последних.
20.2.9 Использование встроенного датчика температуры Для использования встроенного датчика температуры пользователь должен выбрать входной аналоговый канал SD16INCHx = 110. Все остальные настройки, включая настройки регистров SD16INTDLYx и SD16GAINx, конфигурируются аналогично, как и для случая использования внешних входов. Типовая характеристика температурной зависимости датчика приведена на рис. 20-11. После переключения входа АЦП SD16 на температурный датчик следует выждать определённое время, используя для этого регистр SD16INTDLYx, для установления цифрового фильтра. В противном случае результаты могут быть некорректными. Характеристика температурного датчика может иметь значительное смещение, поэтому для многих применений может потребоваться калибровка. Уточнённые параметры датчика температуры см. в документации на конкретный тип МК.
20.2.10 Обработка прерываний Модуль АЦП имеет 2 источника прерываний для каждого из каналов:
Биты SD16IFG устанавливаются, когда в соответствующий регистр памяти SD16MEMx записывается результат преобразования. В случае, если установлен соответствующий бит SD16IE и бит GIE в такой ситуации генерируется запрос прерывания. Флаг переполнения SD16OVIFG устанавливается, если результат преобразования записывается в регистр памяти SD16MEMx ранее, чем был прочитан результат предыдущего преобразования. Генерация векторов прерывания модуля АЦП SD16IV Все источники прерываний модуля АЦП SD16 имеют собственный приоритет, но скомбинированы в один вектор прерываний. Регистр SD16IV используется для определения конкретного источника, вызвавшего прерывание модуля SD16. Разрешённый источник прерывания с максимальным приоритетом формирует число в регистре SD16IV (см. описание регистра). Это число может программно обработано либо просто добавлено к программному счётчику для автоматического перехода на соответствующую подпрограмму обработки. Запрет прерываний от модуля SD16 не влияет на значение в регистре SD16IV. Любой доступ к регистру SD16IV, будь то чтение либо запись, не влияет на флаги SD16OVIFG и SD16IFG. Флаги SD16IFG сбрасываются при чтении соответствующего регистра памяти SD16MEMx либо могут быть очищены программно. Флаги SD16OVIFG могут быть очищены только программно. Если во время обработки прерывания возникает следующее прерывание, для него также будет сгенерирован запрос прерывания. Например, если возникает прерывание по флагу SD16OVIFG и одному (либо более) флагу SD16IFG в то время как обработчик прерывания обращается к регистру SD16IV, прерывание по флагу SD16OVIFG будет обработано первым, а соответствующий флаг (либо флаги) должен быть программно очищен. После выполнения инструкции RETI обработчика, флаг SD16IFG с наибольшим прерыванием вызовет следующий запрос прерывания. Задержка прерываний Биты SD16INTDLYx управляют временными задержками генерации запроса прерываний для соответствующего канала. Эта опция позволяет задержать запрос прерывания после завершения преобразования на время до четырёх циклов преобразования для формирования времени установления цифрового фильтра. Эта задержка применяется каждый раз после установки бита SD16SC либо после изменения бит SD16GAINx или SD16INCHx для соответствующего канала. Кроме этого, SD16INTDLYx задерживает генерацию прерывания по переполнению для данного канала на выбранное значение циклов задержки. Запросы прерывания в течение этих циклов для задержанных преобразований не генерируются. Пример программы обработчика прерываний модуля АЦП SD16 Приведенный ниже пример программы рекомендуется для обслуживания регистра SD16IV ввиду наименьших программных затрат на обработку. Содержимое регистра SD16IV добавляется к программному счётчику PC, автоматически генерируя переход на соответствующий обработчик. Число в правом поле показывает количество тактов ЦПУ для каждой инструкции. Показанные программные затраты включают вызов прерывания и возврат из него и не включают собственно обслуживание задачи. Общие программные затраты в тактах:
Обработка прерывания канала 2 SD16IFG даёт пример непосредственной проверки источника с наибольшим приоритетом в обработчике прерывания. Такой подход позволяет сэкономить 9 тактов в том случае, если потребуется обработка ещё одного прерывания модуля SD16. ; Обработчик прерываний модуля АЦП SD16. INT_SD16 ; Вход в обработчик 6 ADD &SD16IV,PC ; Прибавить смещение к PC 3 RETI ; Вектор 0: нет источника 5 JMP ADOV ; Вектор 2: переполнение АЦП 2 JMP ADM0 ; Вектор 4: CH_0 SD16IFG 2 JMP ADM1 ; Вектор 6: CH_1 SD16IFG 2 ; ; Обработка CH_2 SD16IFG. Оператор JMP не нужен. ; ADM2 MOV &SD16MEM2,xxx ; Чтение результата, очистка флага ... ; Остальные инструкции, если требуется JMP INT_SD16 ; Проверка следующего запроса прерывания ; ; Обработка остальных источников ; ADM1 MOV &SD16MEM1,xxx ; Чтение результата, очистка флага ... ; Остальные инструкции, если требуется RETI ; Возврат из прерывания 5 ; ADM0 MOV &SD16MEM0,xxx ; Чтение результата, очистка флага RETI ; Возврат из прерывания 5 ; ADOV ... ; Обработка переполнения SD16MEMx RETI ; Возврат из прерывания 5 Регистры модуля контроллера ЖКИ перечислены в таблице 20–3. Таблица 20–3
SD16CTL, Регистр управления модулем АЦП SD16
SD16СCTLx, Регистр управления канала x модуля АЦП SD16
SD16INCTLx, Регистр управления входами канала x модуля АЦП SD16
SD16MEMx, Регистр памяти преобразования канала x модуля АЦП SD16
SD16PREx, Регистр предварительной загрузки канала x модуля АЦП SD16
SD16IV, Регистр векторов прерываний модуля АЦП SD16
* При возникновении переполнения SD16, пользователь должен проверить все флаги SD16CCTLx и SD16OVIFG для определения источника переполнения.
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|