Руководство пользователя MSP430 (1041606), страница 37
Текст из файла (страница 37)
Режим двухблочного переноса
Двухблочный режим выбирается, если бит ADC10TB установлен. Значение n в ADC10DTC1 определяет количество переносов для одного блока. Адресный диапазон первого блока задается в любом месте диапазона адресов MSP430 с помощью 16-разрядного регистра ADC10SA. Первый блок заканчивается на адресе ADC10SA+2n-2. Адресный диапазон для второго блока задается с SA+2n по SA+4n-2. Режим двухблочного переноса показан на рис.18-11.
Внутренний указатель адреса первоначально равен ADC10SA, а внутренний счетчик переносов первоначально равен «n». Внутренний указатель и счетчик являются невидимыми для программного обеспечения. DTC переносит значение слова ADC10MEM по адресу, находящемуся в адресном указателе ADC10SA. После каждого DTC-переноса внутренний адресный указатель инкрементируется на два, а внутренний счетчик переносов декрементируется на один.
DTC переносы продолжаются с каждой загрузкой ADC10MEM, пока внутренний счетчик переносов не станет равным нулю. К этому моменту блок один полон и оба бита ADC10IFG и ADC10B1 установлены. Пользователь может проверить бит ADC10B1 для определения, что блок один полон.
DTC продолжает с блока два. Во внутренний счетчик переносов автоматически перезагружается значение «n». При следующей загрузке ADC10MEM контроллер DTC начинает перенос результатов преобразований в блок два. После завершения n переносов блок два полон. Флаг ADC10IFG устанавливается, а бит ADC10B1 очищается. Программное обеспечение пользователя может проверить очистку бита ADC10B1 для определения, что блок два полон. На рис. 18-12 показана диаграмма состояний двухблочного режима.
Рис.18-12 Диаграмма состояний для управления переносом данных в двухблочном режиме переноса
Непрерывный перенос
Режим непрерывного переноса выбирается, если установлен бит ADC10CT. DTС не будет останавливаться после завершения переноса блока один (в одноблочном режиме) или блока два (в двухблочном режиме). Внутренний адресный указатель и счетчик переносов устанавливаются на значения ADC10SA и n соответственно. Переносы продолжаются, начиная с блока один. Если бит ADC10CT сброшен, DTC прекращает переносы после завершения текущих переносов в блоке один (в одноблочном режиме) или блоке два (в двухблочном режиме).
Длительность цикла DTC переноса
Для каждого переноса ADC10MEM контроллеру DTC требуется один или два тактовых цикла MCLK для синхронизации, один для выполнения собственно переноса (пока ЦПУ приостановлено) и один цикл времени ожидания. Поскольку DTC использует MCLK, длительность цикла DTC определяется рабочим режимом MSP430 и настройками системы тактирования.
Если источник MCLK активен, но ЦПУ выключено, DTC использует источник MCLK для каждого переноса без включения ЦПУ. Если источник MCLK выключен, DTC временно рестартует MCLK, с использованием в качестве источника тактирования для MCLK частоту DCOCLK, но только во время переноса. ЦПУ остается выключенным и после DTC переноса, MCLK снова выключается. Максимальная длительность цикла DTC для всех рабочих режимах показана в таблице 18-2.
Таблица 18-2. Максимальная длительность цикла DTC
Режим работы ЦПУ | Источник тактирования | Максимальная длительность цикла DTC |
Активный режим | MCLK=DCOCLK | 3 цикла MCLK |
Активный режим | MCLK=LFXT1CLK | 3 цикла MCLK |
Режим пониженного энергопотребления LPM0/1 | MCLK=DCOCLK | 4 цикла MCLK |
Режим пониженного энергопотребления LPM3/4 | MCLK=DCOCLK | 4 цикла MCLK + 6 мкС* |
Режим пониженного энергопотребления LPM0/1 | MCLK=LFXT1CLK | 4 цикла MCLK |
Режим пониженного энергопотребления LPM3 | MCLK=LFXT1CLK | 4 цикла MCLK |
Режим пониженного энергопотребления LPM4 | MCLK=LFXT1CLK | 4 цикла MCLK + 6 мкС* |
* Дополнительные 6 мкС необходимы для запуска DCOCLK. Этот параметр в справочном руководстве называется t(LPMx).
18.2.7 Использование интегрированного температурного датчика
При использовании имеющегося на кристалле температурного датчика пользователь выбирает входной аналоговый канал INCHx=1010. Любая другая конфигурация рассматривается как выбор внешнего канала, включая выбор опорного источника, выбор памяти преобразований и т.д.
Типичная передаточная функция температурного датчика показана на рис.18-13. При использовании температурного датчика, период выборки должен быть больше 30 мкС. Ошибка смещения температурного датчика может быть большой и для большинства приложений может потребоваться калибровка. См. справочные данные конкретного устройства для выяснения подробностей.
При выборе температурного датчика автоматически запускается расположенный на кристалле опорный генератор в качестве источника напряжения для температурного датчика. Однако это не включает выход VREF+ и не влияет на выбор опорного источника для преобразования. Процедура выбора источника для преобразования информации с температурного датчика подобна процедуре выбора любого другого канала.
Рис.18-13 Типичная передаточная функция температурного датчика
18.2.8 Заземление АЦП и рассмотрение влияния помех
Как в любом АЦП с высоким разрешением, для устранения нежелательных паразитных эффектов и шумов, а также предотвращения возникновения паразитных контуров с замыканием на землю, необходима особая разводка печатной платы и методы заземления.
Паразитные общие петли формируются, когда ток возврата от АЦП проходит совместно с токами других аналоговых и цифровых схем. Если не принимать специальных мер, этот ток может генерировать небольшие нежелательные напряжения смещения, которые могут прибавляться или вычитаться из опорного или входного напряжений аналого-цифрового преобразователя. Способ подключения, показанный на рис.18-14 позволяет этого избежать.
В дополнение к заземлению, пульсации и шумовые выбросы на линиях источника питания, вызванные переключениями цифровых схем или переключениями в источнике питания могут повредить результат преобразования. Для получения высокой точности рекомендуется создавать разработки, свободные от шумов.
Рис.18-14. Заземление АЦП10 и устранение помех
18.2.9 Прерывания АЦП10
Одно прерывание и один вектор прерываний связаны с АЦП10, как показано на рис.18-15. Когда DTC не используется (ADC10DTC1=0), флаг ADC10IFG устанавливается, когда результаты преобразования загружаются в ADC10MEM. Когда DTC используется (ADC10DTC1>0), флаг ADC10IFG устанавливается, когда завершается перенос блока и внутренний счетчик переносов «n»=0. Если оба бита ADC10IE и GIE установлены, флаг ADC10IFG генерирует запрос прерывания. Флаг ADC10IFG автоматически сбрасывается, когда запрос прерывания обработан, кроме того, он может быть сброшен программно.
Рис.18-15. Система прерываний АЦП10
18.3 Регистры АЦП10
Регистры АЦП10 приведены в таблице 18-3.
Таблица 18-3. Регистры АЦП10
Регистр | Краткое | Тип | Адрес | Исходное |
Регистр включения входа АЦП10 | ADC10AE | Чтение/запись | 04Ah | Сброс с POR |
Управляющий регистр 0 АЦП10 | ADC10CTL0 | Чтение/запись | 01B0h | Сброс с POR |
Управляющий регистр 1 АЦП10 | ADC10CTL1 | Чтение/запись | 01B2h | Сброс с POR |
Память АЦП10 | ADC110MEM | Чтение | 01B4h | Не изменяется |
Регистр 0 управления переносом данных АЦП10 | ADC10DTC0 | Чтение/запись | 048h | Сброс с POR |
Регистр 1 управления переносом данных АЦП10 | ADC10DTC1 | Чтение/запись | 049h | Сброс с POR |
Стартовый адрес переноса данных АЦП10 | ADC10SA | Чтение/запись | 01BCh | 0200h c POR |
ADC10CTL0, управляющий регистр 0 АЦП10
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
SREFx | ADC10SHTx | ADC10SR | REFOUR | REFBURST |
rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
MSC | REF2_5V | REFON | ADC10ON | ADC10IE | ADC10IFG | ENC | ADC10SC |
rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) |
Модифицируется, только когда ENC=0
SREFx | Биты | Выбор опорного источника 000 VR+ = AVCC и VR- = AVSS |
ADC10SHTx | Биты | Время выборки-хранения АЦП10 00 4 х ADC10CLKs |
ADC10SR | Бит 10 | Скорость выборки АЦП10. Этот бит определяет приблизительную максимальную скорость выборки АЦП10. 0 ~200 ksps (200000 выборок /сек) |
REFOUT | Бит 9 | Выход опорного источника 0 Выход опорного источника выключен |
REFBURST | Бит 8 | Кратковременное включение опорного источника. REFOUT также должен быть установлен. 0 Опорное напряжение подается постоянно |
MSC | Бит 7 | Множественная выборка и преобразование. Справедливо только для последовательного и повторяющегося режимов. 0 Процедуре выборки необходим фронт сигнала SHI для запуска каждой выборки-преобразования |
REF2_5V | Бит 6 | Генератор опорного напряжения. REFON также должен быть установлен. 0 1.5 В |
REFON | Бит 5 | Включение опорного генератора 0 Опорный генератор выключен |
ADC10ON | Бит 4 | Включение АЦП10 0 АЦП10 выключен |
ADC10IE | Бит 3 | Разрешение прерывания от АЦП10 0 Прерывание запрещено |
ADC10IFG | Бит 2 | Флаг прерывания АЦП10. Этот бит устанавливается, если в ADC10MEM загружается результат преобразования. Он автоматически сбрасывается после приема запроса прерывания или может быть сброшен программно. Когда используется DTC, этот флаг устанавливается, когда завершен перенос блока. 0 Прерывание не ожидается |
ENC | Бит 1 | Включение преобразования 0 АЦП10 отключен |
ADC10SC | Бит 0 | Старт преобразования. Программно-управляемый старт выборки-преобразования. ADC10SC и ENC могут быть установлены вместе в одной команде. ADC10SC сбрасывается автоматически. 0 Нет старта выборки-преобразования |
ADC10CTL1, управляющий регистр 1 АЦП10
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
INCHx | SHSx | ADC10DF | ISSH |
rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
ADC10DIVx | ADC10SSELx | CONSEQx | ADC10 |
rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | r-(0) |
Модифицируется, только когда ENC=0
INCHx | Биты | Выбор входного канала 0000 A0 |
SHSx | Биты | Выбор источника выборки-хранения 00 Бит ADC10SC |
ADC10DF | Бит 9 | Формат данных АЦП10 0 Натуральный двоичный |
ISSHx | Бит 8 | Инвертирование сигнала выборки-хранения 0 Сигнал выборки-хранения не инвертирован 1 Сигнал выборки-хранения инвертирован |
ADC10DIVx | Биты | Тактовый делитель АЦП10 000 /1 |
ADC10SSELx | Биты | Выбор источника тактирования АЦП10 00 ADC10OSC |
CONSEQx | Биты | Выбор режима преобразования 00 Одноканальный, с одним преобразованием |
ADC10BUSY | Бит 0 | Занятость АЦП12. Этот бит показывает активность операций выборки и преобразования. 0 Действия не выполняются |
ADC10AE, управляющий регистр включения аналогового входа
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
ADC10AE7 | ADC10AE6 | ADC10AE5 | ADC10AE4 | ADC10AE3 | ADC10AE2 | ADC10AE1 | ADC10AE0 |
rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) |
ADC10AEx | Биты | Включение аналогового входа 0 Аналоговый вход выключен |
ADC10MEM, регистр памяти преобразования, двоичный формат
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
0 | 0 | 0 | 0 | 0 | 0 | Результаты |
r0 | r0 | r0 | r0 | r0 | r0 | r | r |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Результаты преобразования |
r | r | r | r | r | r | r | r |
Результаты | Биты | 10-разрядные результаты преобразования выравниваются по правому краю в натуральном двоичном формате. Бит 9 является старшим битом (MSB). Биты 15-10 всегда равны 0. |
ADC10MEM, регистр памяти преобразования, формат с дополнением до двух
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
Результаты |
r | r | r | r | r | r | r | r |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Результаты | 0 | 0 | 0 | 0 | 0 | 0 |
r | r | r0 | r0 | r0 | r0 | r0 | r0 |
Результаты преобразования | Биты | 10-разрядные результаты преобразования выравниваются по левому краю в формате дополнения до двух. Бит 15 является старшим значащим разрядом (MSB). Биты 5-0 всегда равны 0. |
ADC10DTC0, регистр 0 управления переносом данных
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Зарезервировано | ADC10TB | ADC10CT | ADC10B1 | ADC10 |
r0 | r0 | r0 | r0 | rw-(0) | rw-(0) | rw-(0) | rw-(0) |
Зарезервировано | Биты 7-4 | Зарезервированы. Всегда читаются как 0. |
ADC10TB | Бит 3 | Двухблочный режим АЦП10. 0 Одноблочный режим переноса 1 Двухблочный режим переноса |
ADC10CT | Бит 2 | Непрерывный перенос АЦП10. 0 Перенос данных останавливается, когда перенос одного блока (одноблочный режим) или двух блоков (двухблочный режим) завершен. |
ADC10B1 | Бит 1 | Блок один АЦП10. Этот бит указывает в двухблочном режиме, какой блок заполнен результатами преобразований АЦП10. Значение ADC10B1 справедливо только после установки ADC10IFG в первый раз во время функционирования DTC. ADC10TB также должен быть установлен. 0 Заполнен блок 1 1 Заполнен блок 2 |
ADC10FETCH | Бит 0 | Этот бит обычно должен быть сброшен. |
ADC10DTC1, регистр 1 управления переносом данных
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Переносы DTC |
rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) | rw-(0) |
Переносы DTC | Биты | Переносы DTC. Эти биты задают количество переносов в каждом блоке. 0 DTC отключен |