Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методическиое пособие_10.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.01 Mб
Скачать

2.8. Аналого-цифровой преобразователь (ацп) sar adc

В данном процессоре встроен аналого-цифровой преобразователь (analog-digital converter) последовательного приближения (Successive Approximation Register (SAR)). Структурная схема (Figure 11-1 [2]) Его функция, это преобразование аналоговой величины в цифровой код, для последующей обработки процессором.

К основным характеристикам АЦП относятся:

-высокое быстродействие до 64000 отсчётов в секунду

-разрядность 10 бит

-единичное преобразование или последовательность преобразований

-наличие вектора прерывания

-возможность окончания преобразования как источника события для DMA

-наличие внутреннего опорного напряжения (0,8В или 1,0В)

-программный контроль за потреблением

-шесть каналов, из которых четыре подключены к GPIO0-GPIO3

При программировании необходимо учитывать, что переключение каналов и само преобразование требует определённого времени. Индикатором того, что АЦП находится в режиме преобразования, является бит ADCBUSY=1. После окончания преобразования бит ADCBUSY изменятся с 1 на 0. После этого результат преобразования можно прочитать из регистра SADATA.

Максимальная тактовая частота, которая определяет длительность преобразования для этого АЦП, составляет 2мГц (период 500нс). Она получается делением тактовой частоты процессора. Одно преобразование длится 32 такта, что соответствует 64кГц. Время преобразования можно подсчитать по формулам:

FADC = FSYSTEM CLOCK FREQUENCY/(SystemClkDivisor+1) < 2мГц

TПРЕОБРАЗОВАНИЯ = 32*(1/FADC)

Выбор времени преобразования очень важный момент. С одной стороны, чем чаще происходит преобразование, тем более быстрые процессы можно анализировать. С другой стороны это приводит к появлению дополнительных искажений и снижению точности преобразования.

АЦП может использоваться для измерения напряжения источника питания, для измерения внутреннего напряжения и для работы с сенсорным экраном (touch screen).

По входу GPAIN[0] можно измерять напряжение от 0В до 3.6В в то время как по входам GPAIN[1:3] от 0В до VDDA_ANA (внутреннего аналогового напряжения к которому подключены выводы GPIO).

Для измерения напряжения питания (батареи) оно должно быть подключено к GPAIN[0] ( [2]). Запрещается напрямую открывать 2-й канал АЦП. Бит GNDON устанавливается в 1, таким образом, к делителю напряжения подключается “земля”. После этого через 0-й канал АЦП можно провести калибровку, измерением напряжения на “земле”, а через 1-й канал АЦП измерить напряжение через делитель, состоящий из сопротивлений R1=280кОм и R2=40кОм. Коэффициент деления этого делителя равен восьми ((R1+R2)/R2). Наличие делителя защищает входы АЦП по напряжению. После измерений рекомендуется установить бит GNDON=0, тогда отключается делитель и снижается энергопотребление.

Через GPAIN1 можно измерять напряжение VDDA_ANA.

Каналы АЦП могут подключаться к резистивному сенсорному экрану (touch screen) для определения координат точки нажатия. При этом предлагается использовать вход GPAIN3 для координаты Y+, GPAIN2 для координаты Y-, GPAIN1 для X+, GPAIN0 для X-. По этим входам измеряется напряжение с резистивных слоёв сенсорного экрана. В зависимости от соотношения напряжений на входах GPAIN[3,2] определяется координата по оси Y, а в зависимости от соотношения напряжений на GPAIN[1,0] координата по оси X.

Для АЦП в таблице векторов выделен отдельный вектор по адресу 0x68. Он может быть настроен прерывание по окончанию каждого преобразования, а может быть настроен при работе с сенсорным экраном.

Для фиксации момента нажатия на экран может быть использовано прерывание в этом случае устанавливается бит PENIRQ в регистре SARGPOCTRL. При этом все входы АЦП должны быть “подтянуты” (pullup) через внутренние сопротивления к напряжению питания. В момент нажатия на экран срабатывает прерывание после чего можно инициировать измерение координат.

В регистре SARGPOCTRL возможно конфигурирование входов АЦП GPAIN[0-3] как обычных цифровых выводов процессора.