Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

КР2 / КР2 (Влада)

.pdf
Скачиваний:
23
Добавлен:
08.04.2022
Размер:
2.12 Mб
Скачать

Оверсэплинг – значительное повышение частоты дискретизации.

КПД – коэффициент передискретизация

5. Структурная схема встроенного аналого-цифрового

преобразователя, его основные параметры. Настройка АЦП,

управляющие

регистры. Прерывания по

завершению

цикла

преобразования.

 

 

 

Параметры АЦП (айтини13):

Только один встроенный 4-канальный АЦП с мультиплексором,

который может переключать текущий канал. Один АЦП, но входов несколько, если хотим одновременно оцифровывать несколько входных сигналов, то просто переключаем каналы. При этом получается псевдосинхронное преобразование. Входы мультиплексора могут работать как по отдельности (в несимметричном режиме, измеряя напряжение относительно земли), так и объединяться в пары (только для некоторых моделей микроконтроллеров), измеряя дифференциальное напряжение.

Также опционально возможно усиление входного сигнала с фиксированным коэффициентом 10 или 100.

Аналоговое напряжение могут считывать только те выводы, которые имеют метку «ADC» (у нас это с ADC0 до ADC3), а так их обычно от 4 до 16.

Встроенный источник опорного напряжения (в 13 он один, но может быть и несколько). В роли источника опорного напряжения может еще выступать напряжение питания мк.

31

Максимальное разрешение 10 бит (анисимов сказал, что он дохленький)

Максимальная частота дискретизации (количество тактов, которое ставится на одно АЦП преобразование) – до 1 МГц. Рекомендуемые цифры меньше сотни кГц на один канал.

Также возможно два режима преобразования: непрерывный (freerunning mode), когда по завершении одного цикла преобразования сразу же следует другой, и одиночный (single), когда последовательность циклов регулируется вручную. Первый способ не отличается высокой точностью измерений и целесообразен только при необходимости максимальной скорости преобразований.

Рисунок 1 – Блок-схема встроенного АЦП.

32

Есть 10-битный ЦАП, компаратор (Sample&Hold comparator),

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

потому что состоит из двух частей ADCH и ADCL. Есть предделитель,

который задает частоту преобразования, и управляющий регистр (ADC CTRL & STATUS…). Мультиплексор управляет источником опорного напряжения,

который идет на ЦАП (или внутренний источник на 1.1 В или напряжение питания).

Предделитель

Входной сигнал идет не на прямую с основного тактового генератора,

на котором работает мк. А как в таймерах через предделитель. На прямую не можем подавать, минимальный коэффициент деления 2, максимальный –

128. За это отвечают 3 бита в управляющем регистре, это будет дальше.

Для выполнения первого преобразования (при первоначальной настройке АЦП) требуется 25 тактов, последующие половину – 13 тактов

(первое занимает больше времени из-за необходимости настройки каналов).

Тактовая частота преобразования формируется с помощью делителя от опорной частоты микроконтроллера при помощи соответствующего

33

управляющего регистра, рекомендованная частота преобразования – от 50 до

200кГц, в этом диапазоне наиболее вероятно получение наиболее достоверного результата измерения.

Время преобразования

Результат преобразования сохраняется в регистр ADC (ADCL, ADCH) ADC = (VIN*1024)/VREF

(если 10 бит, Vref – источник опорного напряжения)

Управляющие регистры

1. ADMUX – управляет мультиплексором.

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

описанные далее.

6 бит REFS1:0 (Reference Selection Bits) – определяют источник опорного напряжения, относительно которого будет происходить преобразование. Опорное напряжение должно быть как можно более стабильным, без помех и колебаний по напряжению – от этого во многом зависит точность работы АЦП. Все возможные варианты приведены в табл.7.1.

Таблица 7.1. Выбор источника опорного напряжения АЦП

REFS[1:0]

Источник

опорного

 

 

 

34

 

 

 

напряжения

 

 

 

 

 

 

 

00

 

Напряжение питания

 

 

 

 

 

 

 

01

 

Внутренний ИОН на 1.1В

 

 

 

 

 

 

 

10

 

Внутренний ИОН на 2.2В

 

 

 

 

 

 

 

11

 

Внутренний ИОН на 4.3В

 

 

 

 

 

 

Внутренний

источник опорного напряжения не очень точный и

подходит только для нетребовательных приложений.

MUX4:0 1:0 (Analog Channel and Gain Selection Bits) – данные биты определяют текущий вход (канал), с которого мы будем считывать аналоговый сигнал. Также с помощью этих битов выставляется коэффициент усиления при измерении в дифференциальном режиме. Возможные конфигурации для выбора текущего источника входного сигнала

представлены в табл. 7.2.

Таблица 7.2. Выбор текущего канала АЦП

 

MUX4..0 1..0

 

Номер канала

 

 

 

 

 

 

 

00000

 

ADC0 (PB5)

 

 

 

 

 

 

 

00001

 

ADC1 (PB2)

 

 

 

 

 

 

 

00010

 

ADC2 (PB4)

 

 

 

 

 

 

 

00011

 

ADC3 (PB3)

 

 

 

 

 

 

 

00100

 

ADC4

 

 

 

 

 

 

 

00101

 

ADC5

 

 

 

 

 

 

 

00110

 

ADC6

 

 

 

 

 

 

 

00111

 

ADC7

 

 

 

 

 

 

2. ADCSRA (ADC Control

and Status Register A) – управляющий

регистр, отвечающий за работу АЦП:

35

ADEN (ADC Enable) – записывая единицу в этот бит, разрешаем использование АЦП.

ADSC – отвечает за начало АЦП преобразования. ADSC (ADC Start Conversion) – записывая единицу в этот бит, мы начинаем очередной цикл преобразования в одиночном режиме работы (или первый цикл при непрерывном), который занимает 13 тактов (первый цикл – 25 тактов, здесь осуществляется первоначальная инициализация АЦП), при условии, что с помощью бита ADEN разрешено использование АЦП. Каждый раз надо ручками ставить 1, так как она сбрасывается после завершения АЦП преобразования.

ADATE (ADC Auto Trigger Enable) – возможность запуска преобразований от внешних источников, таймера и тп.

ADIF (ADC Interrupt Flag) – флаг прерывания по завершению преобразования, когда регистры данных обновились. Автоматически. (вроде как устанавливается в 1 по завершению цикла преобразования)

ADIE (ADC Interrupt Enable) – разрешение прерывания по завершению цикла преобразования.

ADPS2:0 (ADC Prescaler Select Bits) – позволяет выбрать коэффициент делителя тактовых импульсов для установки частоты преобразований (в

непрерывном режиме). Значение коэффициента делителя определяется в соответствии с табл. 7.3.

Таблица 7.3. Выбор коэффициента деления

ADPS2

ADPS1

ADPS0

Коэффициент

 

 

 

деления

 

 

 

 

0

0

0

2

 

 

 

 

0

0

1

2

 

 

 

 

0

1

0

4

 

 

 

 

0

1

1

8

 

 

 

 

1

0

0

16

 

 

 

 

 

 

36

 

1

0

1

32

 

 

 

 

1

1

0

64

 

 

 

 

1

1

1

128

 

 

 

 

ADFR (ADC Free Running Select) – записывая единицу в этот бит, выбираем непрерывный режим преобразования.

3. Пара ADCH:ADCL

В зависимости от бита в ADLAR (в ADMUX).

Данные с АЦП записываются в регистровую пару ADCH:ADCL,

откуда их можно считать для дальнейшей обработки. Причем здесь есть один важный момент. Регистровая пара 16 разрядная, а АЦП имеет разрядность 10

бит. В итоге лишь один регистр занят полностью, а второй занимают лишь оставшиеся два бита. Исходя из этого факта, выравнивание может производиться как по правому краю – старшие два бита в ADCH, а младшие в ADCL, так и по по левому – старшие биты в ADCH, а два младших бита в

ADCL:

[9][8][7][6][5][4][3][2]:[1][0][x][x][x][x][x][x]

[x][x][x][x][x][x][9][8]:[7][6][5][4][3][2][1][0]

37

Для чего же хранение данных АЦП-преобразования организовано именно таким образом? Так как в двух младших битах чаще всего достаточно сложно получить значимые данные (скорее всего, мы получим там всякий мусор и помехи), мы можем использовать выравнивание по правому краю и считывать данные преобразования только из одного регистра ADCH,

экономя время и программный код. За выравнивание отвечает бит ADLAR.

Записывая в него логический ноль, получаем выравнивание по правой границе, записываем единицу – по левой.

4. ADCSRB – источник запуска АЦП преобразования. В табличке ниже расписано.

6. Передача данных с использованием асинхронного

последовательного интерфейса UART. Общая структура асинхронного приёмопередатчика. Протокол передачи данных RS-232. Настройка и программирование интерфейса UART. Скорость передачи данных.

Есть АЦП нет UART и наоборот.

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

38

данные передаются большими блоками. Последовательные интерфейсы передают свои данные по одному биту за такт, что в идеале требует всего одного провода.

Рис. 1. Последовательные и параллельные интерфейсы Параллельные интерфейсы имеют свои преимущества. Они крайне

просты в реализации с точки зрения аппаратного и программного обеспечения. Но они требуют слишком много проводов и из-за этого работают слишком медленно.

Все сигналы от передатчика к приёмнику должны поступать одновременно. Но гарантировать время прохождения сигнала для всех линий параллельного интерфейса на больших частотах очень тяжело, при этом неизбежно искажается форма передаваемого сигнала. Таким образом, даже если вы передаете меньше данных за один такт при помощи последовательного интерфейса, становится возможным использовать гораздо более высокие частоты, что и приводит к более высокой скорости передачи данных. Параллельные линии передачи данных, которые рядом,

представляют собой распределенную емкость и в зависимости от длины еще и распределенную индуктивность, из-за это возникают искажения (например,

как на рисунке).

39

Также возможна следующая картина

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

Сейчас последовательные интерфейсы полностью вытеснили параллельные (для бытового применения). Для персональных компьютеров общим стандартом для обмена данными с периферией стал USB интерфейс,

практически полностью заменив собой RS-232. Связь через последовательный порт с использованием интерфейса RS-232 когда-то была популярным методом передачи данных. На задней панели некоторых компьютеров, особенно старых, среди разъёмов можно заметить D-образный

40

Соседние файлы в папке КР2