MSP430_Final
.pdf20.2. Функционирование модуля ADC10 461
20.2.5. Синхронизация выборки и преобразования
Запуск аналого цифрового преобразования производится по нарастающему фронту сигнала выборки SHI. Источником сигнала SHI, который задаётся бита ми SHSx, может быть:
бит ADC10SC;
модуль вывода 1 Таймера A;
модуль вывода 0 Таймера A;
модуль вывода 2 Таймера A.
Полярность источника сигнала SHI может быть инвертирована посредством
бита ISSH. Биты SHTx определяют период выборки tsample, который может быть равен 4, 8, 16 или 64 тактам ADC10CLK. Таймер выборки переводит сигнал
SAMPCON в состояние ВЫСОКОГО уровня на время, равное заданному време ни выборки, после синхронизации с сигналом ADC10CLK. Полное время выбор ки составляет tsample + tsync. Запуск аналого цифрового преобразования, для вы полнения которого требуется 13 тактов ADC10CLK, производится по спадающе му фронту сигнала SAMPCON (Рис. 20.3).
|
Начало |
Окончание |
Запуск |
Завершение |
|
|
|
выборки |
выборки |
преобразования |
преобразования |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SHI |
|
|
|
|
|
|
|
|
|
|
|
|
|
SAMPCON |
|
|
13 тактов ADC10CLK |
|
||
|
|
|
||||
|
|
|
|
|
||
|
|
|
|
|
|
|
tsample tconvert
tsync
ADC10CLK
Рис. 20.3. Временные диаграммы процесса выборки.
Определение времени выборки
При SAMPCON = 0 все аналоговые входы Ax находятся в высокоимпеданс
ном состоянии. При SAMPCON = 1 выбранный вход Ax на время выборки tsample можно представить в виде RC фильтра нижних частот, как показано на Рис. 20.4.
Источник сигнала оказывается нагруженным на входное сопротивление мульти плексора RI (не более 2 кОм), включённое последовательно с конденсатором CI (не более 27 пФ). Для выполнения преобразования с 10 битной точностью на пряжение VC на конденсаторе CI должно отличаться от напряжения источника VS не более чем на 1/2 LSB.
Время выборки tsample зависит от сопротивления источника RS и сопротивле ния RI. Минимальное время выборки для выполнения 10 битного преобразова ния можно определить по формуле:
tsample > (RS + RI)·ln(211)·CI.
462 Глава 20. Модуль 10#битного АЦП ADC10
|
|
MSP430 |
|
|
V I |
— Входное напряжение на выводе Ax |
|
R S |
V I |
R I |
|
V C |
V S — Напряжение внешнего источника |
||
V S |
|
|
|
R S — Сопротивление внешнего источника |
|||
|
|
|
|
|
R I |
— Входное сопротивление внутреннего |
|
|
|
|
|
|
C I |
||
|
|
|
|
|
C I |
мультиплексора во включённом состоянии |
|
|
|
|
|
|
|||
|
|
|
|
|
|
— Входная ёмкость |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
V C — Напряжение заряда конденсатора |
Рис. 20.4. Эквивалентная схема аналогового входа.
Подставляя в это выражение значения RI и CI, приведённые выше, получаем: tsample > (RS + 2 кОм)·7.625·27 пФ.
Например, при RS = 10 кОм время выборки должно быть более 2.47 мкс.
При использовании буфера опорного напряжения в пакетном режиме, время выборки должно быть больше как вычисленного значения, так и времени уста новления буфера tREFBURST:
tsample > (R S + R I )× ln(211)×CItREFBURST
Например, если VRef = 1.5 В и RS = 10 кОм, то время tsample должно быть боль ше 2.47 мкс при ADC10SR = 0 или же больше 2.5 мкс при ADC10SR = 1. Точные
значения приводятся в справочной документации на конкретные модели.
При использовании внешнего опорного напряжения время установления бу фера определяется по формуле:
tREFBURST = SR·Vref – 0.5 мкс,
где SR — скорость нарастания сигнала буфера (~1 мкс/В при ADC10SR = 0 и ~2 мкс/В при ADC10SR = 1);
VRef — значение внешнего опорного напряжения.
20.2.6. Режимы преобразования
Модуль ADC10 поддерживает четыре режима работы, задаваемые битами CONSEQx. Эти режимы перечислены в Табл. 20.1.
Таблица 20.1. Режимы преобразования модуля ADC10
CONSEQx |
Режим |
Операция |
|
|
|
|
|
00 |
Однократный |
Однократно выполняется преобразование одного канала |
|
одноканальный |
|
||
|
|
||
|
|
|
|
|
Однократный |
Однократно выполняется серия преобразований нескольких после |
|
01 |
довательно расположенных каналов (по одному преобразованию на |
||
последовательный |
|||
|
канал) |
||
|
|
|
|
10 |
Циклический |
Периодически выполняется преобразование одного канала |
|
одноканальный |
|
||
|
|
||
|
|
|
|
|
Циклический |
Периодически выполняется серия преобразований нескольких пос |
|
11 |
ледовательно расположенных каналов (по одному преобразованию |
||
последовательный |
|||
|
|
на канал) |
20.2. Функционирование модуля ADC10 463
Однократный одноканальный режим преобразования
В этом режиме выполняется однократное преобразование канала, заданного битами INCHx. Результат преобразования заносится в регистр ADC10MEM. Диа грамма состояний модуля ADC10 для однократного одноканального режима пре образования приведена на Рис. 20.5. Если запуск преобразования производится установкой бита ADC10SC, то для запуска последующих преобразований доста точно установить этот бит повторно. Если же запуск преобразования осуществля ется по сигналу от другого источника, то между последовательными преобразова ниями необходимо сбрасывать и повторно устанавливать бит ENC.
CONSEQx = 00 |
ADC10 |
|
|
выключен |
|
ADC10ON = 1 |
|
ENC ≠ |
|
|
|
|
x = INCHx |
|
|
Ожидание |
|
|
включения |
ENC = |
SHS = 0 |
|
ENC = |
и |
|
|
ENC = 1 или
иОжидание
ADC10SC = |
запуска |
|
ENC = 0 |
SAMPCON = |
|
(4/8/16/64) x ADC10CLK |
||
|
Выборка, входной канал Ax
ENC = 0 †
12 x ADC10CLK
Преобразование
ENC = 0 †
1 x ADC10CLK
Преобразование завершено, результат
в ADC10MEM,
ADC10IFG установлен
x — входной канал Ax.
† Результат преобразования неопределён.
Рис. 20.5. Однократный одноканальный режим преобразования.
464 Глава 20. Модуль 10#битного АЦП ADC10
Однократный последовательный режим преобразования
В этом режиме выполняется цикл преобразований нескольких последова тельно расположенных каналов, по одному преобразованию на канал. Первый канал последовательности задаётся битами INCHx, а последним является канал A0. Результат каждого преобразования заносится в регистр ADC10MEM. Диа грамма состояний модуля ADC10 для однократного последовательного режима преобразования приведена на Рис. 20.6. Если запуск цикла преобразований про изводится установкой бита ADC10SC, то для запуска последующих циклов доста точно установить этот бит повторно. Если же запуск цикла преобразований осу ществляется по сигналу от другого источника, то между последовательными цик лами необходимо сбрасывать и повторно устанавливать бит ENC.
CONSEQx = 01 |
|
ADC10 |
|
|
|
|
выключен |
|
|
ADC10ON = 1 |
|
|||
|
|
ENC ≠ |
|
|
|
|
x = INCHx |
|
|
|
|
Ожидание |
|
|
|
|
включения |
ENC = |
|
SHS = 0 |
|
ENC = |
|
|
|
|
|
||
и |
|
|
|
|
ENC = 1 или |
Ожидание |
|
||
и |
|
|
||
|
запуска |
|
||
ADC10SC = |
|
|||
|
|
|||
|
|
SAMPCON = |
x = 0 |
|
|
|
|
||
|
|
(4/8/16/64) x ADC10CLK |
||
|
|
Выборка, |
|
|
|
входной канал Ax |
Если x > 0, то x = x –1 |
||
Если x > 0, то x = x –1 |
|
|
||
|
|
|
||
MSC = 1 |
|
12 x ADC10CLK |
||
|
|
|
||
и |
Преобразование |
MSC = 0 |
||
x ≠ 0 |
||||
|
|
и |
||
|
|
|
||
|
|
|
x ≠ 0 |
1 x ADC10CLK
Преобразование завершено, результат
в ADC10MEM,
ADC10IFG установлен
x — входной канал Ax.
Рис. 20.6. Однократный последовательный режим преобразования.
20.2. Функционирование модуля ADC10 467
Использование бита MSC
Чтобы АЦП могло автоматически выполнять последовательные преобразова ния с максимально возможной скоростью, в модуле предусмотрена функция многократной выборки/преобразования. При MSC = 1 и CONSEQx > 0 первый нарастающий фронт сигнала SHI запускает первое преобразование. Последую щие преобразования запускаются автоматически сразу же после завершения пре дыдущего. Прочие нарастающие фронты сигнала SHI будут игнорироваться до тех пор, пока не будет завершена серия преобразований (однократный последо вательный режим) или пока не будет сброшен и повторно установлен бит ENC (циклический одноканальный или циклический последовательный режимы). Функция бита ENC при использовании бита MSC не меняется.
Останов преобразований
Останов модуля ADC10 производится по разному, в зависимости от его режи ма работы. Для прекращения активного преобразования (серии преобразований) рекомендуется следующее:
Сброс бита EMC в однократном одноканальном режиме немедленно оста навливает процесс преобразования, при этом результат преобразования бу дет неопределённым. Для получения корректного результата перед сбросом бита EMC необходимо дождаться сброса бита ADC10BUSY.
Сброс бита EMC в циклическом одноканальном режиме останавливает АЦП после завершения текущего преобразования.
Сброс бита ENC в однократном или циклическом последовательном режи мах останавливает процесс преобразования после завершения последова тельности преобразований.
В любом режиме процесс преобразования может быть моментально оста новлен загрузкой нулевого значения в биты CONSEQx и сбросом бита ENC. Результат преобразования в этом случае будет некорректным.
20.2.7. Контроллер передачи данных модуля ADC10
В составе модуля ADC10 имеется контроллер передачи данных (DTC), пред назначенный для автоматической пересылки результатов преобразования из ре гистра ADC10MEM в другие ячейки внутренней памяти. Контроллер DTC вклю чается при записи в регистр ADC10DTC1 ненулевого значения.
При включённом контроллере пересылка данных производится каждый раз, когда модуль завершает преобразование и загружает результат в регистр ADC10MEM. Со стороны программы не требуется никаких действий по управле нию модулем до тех пор, пока не будет передано заданное число отсчётов. Каждая пересылка выполняется за один такт MCLK. Чтобы при пересылке данных не возник конфликт на шине, ЦПУ останавливается, если оно было активно, на один такт сигнала MCLK, требуемый для пересылки значения.
Пересылка не должна инициироваться в то время, когда АЦП занято. То есть конфигурирование контроллера необходимо производить в те моменты, когда преобразование или серия преобразований не выполняется:
470 Глава 20. Модуль 10#битного АЦП ADC10
Режим пересылки двух блоков
Режим пересылки двух блоков включается при бите ADC10TB = 1. Значение n, загружаемое в регистр ADC10TC1, определяет число пересылок для одного блока. Начальный адрес первого блока, который заносится в 16 битный регистр ADC10SA, может находиться в любом месте адресного пространства MSP430. Ко нец первого блока располагается по адресу ADC10SA+2n–2. Второй блок распо лагается по адресам с ADC10SA+2n по ADC10SA+4n–1. Режим пересылки двух блоков показан на Рис. 20.11.
|
TB = 1 |
|
|
пересылка 2 x n |
ADC10SA+4n–2 |
|
|
ADC10SA+4n–4 |
DTC |
n я пересылка |
ADC10SA+2n–2 |
|
|
|
|
|
ADC10SA+2n–4 |
|
2 я пересылка |
ADC10SA+2 |
|
1 я пересылка |
ADC10SA |
Рис. 20.11. Пересылка двух блоков.
Первоначально внутренний указатель адреса равен ADC10SA, а внутренний счётчик пересылок равен n. Внутренние указатель и счётчик программно недо ступны. Контроллер DTC пересылает 16 битное содержимое регистра ADC10MEM по адресу, находящемуся в ADC10SA. После каждой пересылки внутренний указатель адреса увеличивается на два, а счётчик пересылок — декре ментируется.
Контроллер продолжает пересылать данные при каждой загрузке в ADC10MEM до тех пор, пока внутренний счётчик не станет равным нулю. При этом устанавливаются флаг ADC10IFG и бит ADC10B1, свидетельствуя о запол нении 1 го блока. Пользователь может определить завершение пересылки перво го блока, проверив состояние бита ADC10B1.
Контроллер DTC продолжает работать со вторым блоком. В счётчик пересы лок автоматически перезагружается число n. При загрузке следующего результата в регистр ADC10MEM контроллер начинает пересылку результатов преобразова ния во второй блок. Этот блок заполняется после выполнения n пересылок, при этом устанавливается флаг ADC10IFG, а бит ADC10B1 сбрасывается. Пользова тель может определить завершение пересылки блока, проверив состояние бита ADC10B1. Диаграмма состояний для этого режима приведена на Рис. 20.12.