Семейство микроконтроллеров MSP430X1XX, руководство пользователя (2004)
.pdf
Раздел XVIII. |
|
|
|
|
АЦП10 |
|
CONSEQx = 10 |
|
ADC10 |
|
|
|
|
выключен |
|
|
|
|
|
|
|
|
|
|
ADC10ON = 1 |
ENC = |
|
||
|
|
|
|
|
|
|
|
|
x = INCHx |
|
|
|
|
|
ожидание |
|
|
|
|
|
включения |
ENC = |
|
|
SHS = 0 |
|
|
ENC = |
|
|
и |
|
|
|
|
|
ENC = 1 или |
|
|
|
|
|
и |
|
Ожидание |
|
|
|
ADC10SC = |
|
|||
|
запуска |
|
|||
|
|
|
|
||
|
|
|
SAMPCON = |
ENC = 0 |
|
|
|
|
|
|
|
|
|
|
|
(4/8/16/64) ADC10CLK |
|
|
|
|
Выборка, |
|
|
|
|
входной канал Ax |
|
||
|
|
|
|
12 x ADC10CLK |
|
MSC = 1 |
|
Преобразование |
MSC = 0 |
||
и |
|
|
and |
||
|
|
|
|
||
ENC = 1 |
|
|
|
ENC = 1 |
|
1 x ADC10CLK
Преобразование завершено, результат в ADC10MEM, ADC10IFG установлен
x = входной канал Ax
Рис. 18-7. Повторяющийся одноканальный режим
ти или пока бит ENC не будет переключен в повторяющийся одноканальный режим или повторяющийся режим последовательностей. Функция бита ENC не изменяется, пока используется бит MSC.
Останов преобразований
Прекращение активности АЦП10 зависит от режима работы. Рекомендуются следующие способы останова активного преобразования или последовательности преобразований:
Библиотека Компэла |
|
341 |
|
MSP430x1xxFamily
CONSEQx = 11 |
ADC10 |
|
выключен |
|
|
|
|
|
ADC10ON = 1 |
ENC = |
|
|
x = INCHx |
|
|
ожидание |
|
|
включения |
ENC = |
SHS = 0
иENC =
ENC = 1 или
и
ADC10SC = |
|
Ожидание запуска |
|
|
|
|
|||||
|
|
|
SAMPCON = |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
(4/8/16/64) x ADC10CLK |
|
|||||
|
|
|
Выборка |
|
|
|
|
||||
|
|
|
входной канал Ax |
если x = 0 то x = INCH |
|
||||||
|
|
|
|
|
|
|
|
|
Иначе x = x • 1 |
|
|
если x = 0 то x = INCH |
|
|
|
|
|
|
|
|
|
ENC = 0 |
|
иначе x = x • 1 |
|
|
|
12 x ADC10CLK |
|
|
|
||||
|
|
|
|
|
|
и |
|||||
|
|
|
|
|
|
|
|
|
|
MSC = 0 |
|
|
|
|
Преобразование |
|
|
x = 0 |
|||||
|
|
|
|
|
и |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
MSC = 1 |
|
|
|
|
|
|
|
|
(ENC = 1 |
|
|
|
|
|
|
|
|
|
|
или |
|
||
и |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
x 0) |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
(ENC = 1 |
|
|
|
1 x ADC10CLK |
|
|
|
||||
|
|
|
|
|
|
|
|||||
или |
|
Преобразование |
|
|
|
|
|||||
x 0) |
|
|
|
|
|
||||||
|
|
завершено, результат |
|
|
|
|
|||||
|
|
|
в ADC10MEM, |
|
|
|
|
||||
|
|
ADC10IFG установлен |
|
|
|
|
|||||
x = входной канал Ax
Рис. 18-8. Режим повторяющейся последовательности каналов
•Сброс ENC в одноканальном режиме одиночного преобразования немедленно останавливает преобразование, при этом результат оказывается непредсказуемым. Для получения правильного результата необходимо опрашивать бит занятости ADC10BUSY до сброса перед очисткой ENC.
•Сброс ENC во время повторяющегося одноканального преобразования останавливает преобразователь в конце текущего преобразования.
•Сброс ENC во время последовательного или повторно-последователь- ного режимов останавливает преобразователь в конце последовательности.
342 |
|
Библиотека Компэла |
|
Раздел XVIII. |
АЦП10 |
•Любой режим преобразования может быть немедленно остановлен установкой CONSEQx=0 и сбросом бита ENC. Данные преобразования будут ненадежны.
18.2.6. Контроллер переноса данных АЦП10
АЦП10 имеет контроллер переноса данных (DTC) для автоматического переноса результатов преобразования из ADC10MEM в другое место памяти на кристалле. DTC включается установкой регистра ADC10DTC1 в ненулевое значение.
Когда DTC включен, каждый раз по завершении преобразования АЦП10 и загрузки результата в ADC10MEM, запускается перенос данных. Вмешательства программного обеспечения для управления АЦП10 не требуется до тех пор, пока заданное количество данных преобразования не будет перемещено. Для каждого DTC-переноса требуется один такт MCLK ЦПУ. Во избежание любой конфликтной ситуации на шине во время DTC-переноса ЦПУ приостанавливается, если было активно, на один MCLK, необходимый для переноса.
DTC-перенос не должен инициироваться, пока АЦП10 занят. Программное обеспечение должно гарантировать, что никакое активное преобразование или последовательность не выполняется, когда DTC конфигурируется:
;Проверка активности АЦП10 |
|
BIC.W #ENC,&ADC10CTL0 |
; |
busy_test BIT.W #BUSY,&ADC10CTL1 |
; |
JNZ busy_test |
; |
MOV.W #xxx,&ADC10SA |
;Безопасность |
MOV.B #xx,&ADC10DTC1 |
; |
;продолжение настройки |
|
Режим одноблочного переноса
Одноблочный режим выбирается, если ADC10TB сброшен. Значение n в ADC10DTC1 определяет общее количество переносов для блока. Стартовый адрес блока задается где-либо в адресном диапазоне MSP430 с помощью 16разрядного регистра ADC10SA. Блок заканчивается на адресе ADC10SA+2n-2. Режим одноблочного переноса показан на рис. 18-9.
Внутренний указатель адреса первоначально равен ADC10SA, а внутренний счетчик перенос первоначально равен «n». Внутренний указатель и счетчик не видимы для программного обеспечения. DTC переносит значение слова ADC10MEM по адресу, находящемуся в адресном указателе ADC10SA. После каждого DTC-переноса внутренний адресный указатель инкрементируется на два, а внутренний счетчик переносов декрементируется на один.
Библиотека Компэла |
|
343 |
|
|
MSP430x1xxFamily |
TB=0 |
|
'n'•ый перенос |
ADC10SA+2n•2 |
|
ADC10SA+2n•4 |
DTC |
|
2•ой перенос |
ADC10SA+2 |
1•ый перенос |
ADC10SA |
Рис. 18-9. Одноблочный перенос
DTC переносы продолжаются с каждой загрузкой ADC10MEM, пока внутренний счетчик переносов не станет равным нулю. Дополнительные DTC переносы происходить не будут до записи в ADC10SA. Когда DTC используется в одноблочном режиме, флаг ADC10IFG устанавливается только после завершения переноса полного блока. На рис. 18-10 показана диаграмма состояний одноблочного режима.
Режим двухблочного переноса
Двухблочный режим выбирается, если бит 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 устанавливается, а бит
344 |
|
Библиотека Компэла |
|
MSP430x1xxFamily
|
TB=1 |
|
|
2 x 'n'•ый перенос |
ADC10SA+4n•2 |
|
|
ADC10SA+4n•4 |
DTC |
'n'•ый перенос |
ADC10SA+2n•2 |
|
|
ADC10SA+2n•4 |
|
2•ой перенос |
ADC10SA+2 |
|
1•ый перенос |
ADC10SA |
Рис. 18-11. Двухблочный перенос
ADC10B1 очищается. Программное обеспечение пользователя может проверить очистку бита ADC10B1 для определения, что блок два полон. На рис. 1812 показана диаграмма состояний двухблочного режима.
Непрерывный перенос
Режим непрерывного переноса выбирается, если установлен бит ADC10CT. DTС не будет останавливаться после завершения переноса блока один (в одноблочном режиме) или блока два (в двухблочном режиме). Внутренний адресный указатель и счетчик переносов устанавливаются на значения ADC10SA и n соответственно. Переносы продолжаются, начиная с блока один. Если бит ADC10CT сброшен, DTC прекращает переносы после завершения текущих переносов в блоке один (в одноблочном режиме) или блоке два (в двухблочном режиме).
Длительность цикла DTC переноса
Для каждого переноса ADC10MEM контроллеру DTC требуется один или два тактовых цикла MCLK для синхронизации, один для выполнения собственно переноса (пока ЦПУ приостановлено) и один цикл времени ожидания. Поскольку DTC использует MCLK, длительность цикла DTC определяется рабочим режимом MSP430 и настройками системы тактирования.
Если источник MCLK активен, но ЦПУ выключено, DTC использует источник MCLK для каждого переноса без включения ЦПУ. Если источник MCLK выключен, DTC временно рестартует MCLK, с использованием в качестве источника тактирования для MCLK частоту DCOCLK, но только во время переноса.
346 |
|
Библиотека Компэла |
|
MSP430x1xxFamily
ЦПУ остается выключенным и после 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. Любая другая
|
Вольты |
|
|
|
|
|
|
|
|
||
1.300 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
1.200 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
1.100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
1.000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
0.900 |
|
|
VTEMP = 0.00355(TEMPC)+0.986 |
||||||||
|
|
||||||||||
0.800 |
|
|
|||||||||
|
|
|
|
|
|
°Цельсия |
|||||
|
|
|
|
|
|
||||||
0.700 |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
•50 |
0 |
50 |
100 |
|
|
||||
|
Рис. 18-13. Типичная передаточная функция температурного датчика |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
Библиотека Компэла |
348 |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|||
Раздел XVIII. |
АЦП10 |
конфигурация рассматривается как выбор внешнего канала, включая выбор опорного источника, выбор памяти преобразований и т.д.
Типичная передаточная функция температурного датчика показана на рис. 18-13. При использовании температурного датчика, период выборки должен быть больше 30 мкС. Ошибка смещения температурного датчика может быть большой и для большинства приложений может потребоваться калибровка. См. справочные данные конкретного устройства для выяснения подробностей.
При выборе температурного датчика автоматически запускается расположенный на кристалле опорный генератор в качестве источника напряжения для температурного датчика. Однако это не включает выход VREF+ и не влияет на выбор опорного источника для преобразования. Процедура выбора источника для преобразования информации с температурного датчика подобна процедуре выбора любого другого канала.
18.2.8. Заземление АЦП и рассмотрение влияния помех
Как в любом АЦП с высоким разрешением, для устранения нежелательных паразитных эффектов и шумов, а также предотвращения возникновения паразитных контуров с замыканием на землю, необходима особая разводка печатной платы и методы заземления.
Паразитные общие петли формируются, когда ток возврата от АЦП проходит совместно с токами других аналоговых и цифровых схем. Если не принимать специальных мер, этот ток может генерировать небольшие нежелательные напряжения смещения, которые могут прибавляться или вычитаться из опорного или входного напряжений аналого-цифрового преобразователя. Способ подключения, показанный на рис. 18-14 позволяет этого избежать.
Развязка |
|
V CC |
+ |
|
|
источника |
|
|
|
|
|
питания |
|
V SS |
|
10 мкФ 100 нФ |
|
|
MSP430F12x2 |
|
|
|
MSP430F11x2 |
Внешнее |
|
Ve REF+ |
|
|
|
опорное |
|
|
напряжение |
|
V REF• |
|
|
|
Рис. 18-14. Заземление АЦП10 и устранение помех |
||
Библиотека Компэла |
|
349 |
MSP430x1xxFamily
В дополнение к заземлению, пульсации и шумовые выбросы на линиях источника питания, вызванные переключениями цифровых схем или переключениями в источнике питания могут повредить результат преобразования. Для получения высокой точности рекомендуется создавать разработки, свободные от шумов.
18.2.9. Прерывания АЦП10
Одно прерывание и один вектор прерываний связаны с АЦП10, как показано на рис. 18-15. Когда DTC не используется (ADC10DTC1=0), флаг ADC10IFG устанавливается, когда результаты преобразования загружаются в ADC10MEM. Когда DTC используется (ADC10DTC1>0), флаг ADC10IFG устанавливается, ког-
|
|
|
ADC10IE |
|
Установка ADC10IFG |
D |
Q |
|
IRQ, запрос обработки |
|
прерывания |
|||
'n' = 0 |
|
|||
ADC10CLK |
|
|
|
|
|
Reset |
|
|
|
|
|
|
|
|
|
|
|
|
IRACC, запрос прерывания |
|
|
|
POR |
принят |
|
|
|
|
Рис. 18-15. Система прерываний АЦП10
да завершается перенос блока и внутренний счетчик переносов «n»=0. Если оба бита ADC10IE и GIE установлены, флаг ADC10IFG генерирует запрос прерывания. Флаг ADC10IFG автоматически сбрасывается, когда запрос прерывания обработан, кроме того, он может быть сброшен программно.
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 управления переносом |
ADC10DTC0 |
Чтение/запись |
048h |
Сброс с POR |
|||
данных АЦП10 |
|||||||
|
|
|
|
|
|||
Регистр 1 управления переносом |
ADC10DTC1 |
Чтение/запись |
049h |
Сброс с POR |
|||
данных АЦП10 |
|||||||
|
|
|
|
|
|||
Стартовый адрес переноса данных |
ADC10SA |
Чтение/запись |
01BCh |
0200h c POR |
|||
АЦП10 |
|||||||
|
|
|
|
|
|||
|
|
|
|
|
Библиотека Компэла |
||
350 |
|
|
|
|
|||
|
|
|
|
||||
