Рефераты

AVR микроконтроллер AT90S2333 фирмы Atmel

| |MSB | | | | | | |LSB |

| |R\W |R\W |R\W |R\W |R\W |R\W |R\W |R\W |

|Начальное|0 |0 |0 |0 |0 |0 |0 |0 |

|значение | | | | | | | | |

Регистр данных SPI доступен для чтения и записи и используется для обмена

данными между набором регистров и регистром сдвига SPI. Запись в регистр

инициирует передачу данных. При чтении регистра читаются данные и буфера

регистра сдвига.

УНИВЕРСАЛЬНЫЙ АСИНХРОННЫЙ ПРИЕМО-ПЕРЕДАТЧИК

В состав AT90S2333/4433 входит универсальный асинхронный приемопередатчик

(UART), его основные особенности:

- генерация произвольных значений скорости

- высокая скорость при низких тактовых частотах

- 8 или 9 бит данных

- фильтрация шума

- Определение переполнения

- Детектирование ошибки кадра

- Определение неверного стартового бита

- Три раздельных прерывания - завершение передачи, очистка регистра

передачи и завершение приема.

- Режим мультипроцессорного обмена.

Передача данных

Передача данных инициируется записью передаваемых данных в регистр

ввода/вывода данных UART - UDR. Данные пересылаются из UDR в сдвиговый

регистр передатчика когда:

- новый символ записывается в UDR после того как был выдвинут стоповый бит

для предыдущего символа. При этом сдвиговый регистр загружается сразу.

- новый символ записывается в UDR до того как выдвинут стоповый бит для

предыдущего символа. При этом сдвиговый регистр записывается сразу после

того, как будет выдвинут стоповый бит предыдущего символа.

При этом в регистре состояния UART - USR устанавливается бит-признак

очистки регистра данных - UDRE/ Когда этот бит установлен, UART готов к

приему следующего символа. При перезаписи UDR в 10(11)- разрядный сдвиговый

регистр, бит 0 сдвигового регистра обнуляется (стартовый бит), а бит 9 или

10 устанавливается (стоповый бит). Если выбрано 9-битовое слово данных

(установлен бит CHR9 в регистре UCR), бит TXB8 из UCR переписывается в 9-й

бит сдвигового регистра передатчика.

После тактового импульса, следующего с частотой передачи, стартовый бит

выдвигается на вывод TXD. Затем выдвигаются данные, начиная с младшего

бита. После того как выдвинут стоповый бит, в сдвиговый регистр

загружаются новые данные, если они были записаны в UDR во время передачи.

При загрузке устанавливается бит UDRE. Если до выдвижения стопового бита

в регистр UDR не поступают новые данные, UDRE остается установленным до

последующей записи UDR. Если новые данные не поступили и на выводе TXD

появляется стоповый бит, в регистре USR устанавливается флаг окончания

передачи - TXC.

Установка бита TXEN в UCR разрешает работу передатчика. При очистке бита

TXEN, вывод PD1 можно использовать для ввода/вывода данных. Если бит TXEN

установлен, передатчик UART подключен к выводу PD1 независимо от установки

бита DDD1 в регистре DDRD.

Прием данных

Логическая схема приемника обрабатывает сигнал на выводе RXD с частотой в

16 больше скорости передачи (для обработки одного бита принимаемой

последовательности, производится 16 выборок входного сигнала). В состоянии

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

стартового бита, после чего запускается последовательность обнаружения

стартового бита. Если в первой выборке сигнала обнаружен нулевой отсчет,

приемник обрабатывает 8, 9 и 10 выборки сигнала на выводе RXD. Если хотя бы

две из трех выборок равны логической единице, стартовый бит считается шумом

и приемник ждет следующего перехода из 1 в 0. Если обнаружен стартовый бит,

начинается обработка бит данных. Решение об уровне данных также

производится по 8, 9 и 10 выборкам входного сигнала, уровень входного

сигнала определяется по равенству двух выборок. После того как уровень

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

определения стопового бита хотя бы две из трех выборок входного сигнала

должны быть равны 1. Если это условие не выполняется, в регистре USR

устанавливается флаг ошибки кадра FE. Перед чтением данных из регистра UDR

пользователь должен проверять бит FE для обнаружения ошибок кадра.

Независимо от принятия правильного стопового бита по окончанию приема

символа принятые данные переписываются в UDR и устанавливается флаг RXC в

регистре USR. Физически регистр UDR состоит из двух отдельных регистров,

один используется для передачи данных, другой - для приема. При чтении UDR

происходит доступ к регистру приемника, при записи - к регистру

передатчика. При обмене 9-битовыми данными 9-й бит принятых данных

записывается в бит RXB8 регистра UCR. Если при приеме символа из регистра

UDR не был прочитан предыдущий символ, в регистре UCR устанавливается флаг

переполнения - OR. Установка этого бита означает, что последний принятый

байт данных не переписывается из сдвигового регистра в регистр UDR и будет

потерян. Бит OR буферирован и обновляется при чтении правильных данных из

UDR. Таким образом, пользователь всегда может проверить состояние OR после

чтения UDR и обнаружить происшедшее переполнение. При сбросе бита RXEN в

регистре UCR прием данных запрещается. При этом вывод PD0 можно

использовать для ввода/вывода общего назначения. При установке RXEN,

приемник подключен к выводу PD0 независимо от состояния бита DDD0 в

регистре DDRD.

Режим мультипроцессорного обмена Режим многопроцессорного обмена позволяет

нескольким ведомым процессорам принимать данные от ведущего. Для этого

сначала декодируется адресный байт, который определяет к какому из

процессоров обращается ведущий.

Если ведомый процессор принял правильный адрес, последующие

байты он принимает как данные, в то время как остальные ведомые процессоры

игнорируют принимаемые байты до приема следующего адреса. Для работы в

режиме ведущего процессор должен установить 9-битовый режим передачи

(установлен бит CHR9 в UCSRB). Для передачи адресного байта девятый бит

должен устанавливаться в 1, и сбрасываться для передачи байтов данных. В

ведомых процессорах механизм приема слегка отличается для 8-ми и 9-ти

битового режима приема. При приеме восьми бит (сброшен бит CHR9 в UCSRB),

стоповый бит для адресного байта равен единице и равен нулю для байт

данных. В 9-ти битовом режиме для адресного байта устанавливается 9-й бит,

для байт данных он будет сброшен, стоповый бит всегда будет равен 1. Для

обмена данными в многопроцессорном режиме необходимо выполнить следующую

процедуру.

1. Все подчиненные процессоры устанавливают обмен в многопроцессорном

режиме (установлен бит MPCM в UCSRA)

2. Ведущий процессор посылает адресный байт, все подчиненные процессоры

читают и принимают этот байт. В ведомых процессорах устанавливается флаг

RXC в UCSRA.

3. Каждый из ведомых процессоров читает регистр UDR и определяет был ли он

выбран. Если процессор выбран, он сбрасывает флаг MPCM в UCSRA, иначе он

будет ожидать следующего адресного байта.

4. Для каждого принятого байта данных в ведомом процессоре устанавливается

флаг завершения приема (RXC в UCSRA). Кроме того в 8-битовом режиме будет

генерироваться ошибка кадра (FE в UCSRA), поскольку стоповый бит будет

равен 0. В других подчиненных процессорах

установлен бит MPCM, поэтому байты данных будут игнорироваться, регистр UDR

не записывается, флаги RXC и FE не устанавливаются.

5. После передачи последнего байта данных процесс повторяется с шага 2.

Управление UART

РЕГИСТР ВВОДА/ВЫВОДА UART

| |7 |6 |5 |4 |3 |2 |1 |0 |

|0Ch(2Ch) | | | | | | | | |

| |MSB | | | | | | |LSB |

| |R\W |R\W |R\W |R\W |R\W |R\W |R\W |R\W |

|Начальное|0 |0 |0 |0 |0 |1 |0 |0 |

|значение | | | | | | | | |

Физически регистр UDR является двумя отдельными регистрами, доступ к

которым происходит по одному адресу. При записи происходит запись в регистр

передатчика, при чтении - читается регистр приемника.

РЕГИСТР УПРАВЛЕНИЯ И СОСТОЯНИЯ UART (UСSRA)

| |7 |6 |5 |4 |3 |2 |1 |0 |

|0Bh(2Bh) | | | | | | | | |

| |RXC |TXC |UDRE |FE |OR |- |- |MPCM |

| |R |R\W |R |R\W |R\W |R\W |R\W |R\W |

|Начальное|0 |0 |1 |0 |0 |1 |0 |0 |

|значение | | | | | | | | |

Бит 7 - RXC - прием завершен. Этот бит устанавливается в 1 когда принятый

символ переписывается из сдвигового регистра приемника в регистр UDR. Бит

устанавливается независимо от обнаружения ошибки кадра. Если установлен бит

RXCIE в регистре UCR, при установке бита выполняется прерывание по

завершению приема символа. RXC сбрасывается при чтении UDR. При

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

читать регистр UDR для сброса RXC, иначе при выходе из прерывания оно

будет вызвано снова.

Бит 6 - TXC - передача завершена. Этот бит устанавливается в 1 если символ

из сдвигового регистра передатчика (включая стоповый бит) передан, а в

регистр UDR не были записаны новые данные. Этот флаг особенно полезен при

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

приема и освободить линию связи сразу по окончанию передачи. Если

установлен бит TXIE в регистре UCR, при установке TXC выполняется

прерывания по окончанию передачи. TXC сбрасывается аппаратно при выполнении

соответствующего вектора прерывания. Кроме того, бит можно сбросить записав

в него 1.

Бит 5 - UDRE - регистр данных UART пуст. Этот бит устанавливается в 1 когда

данные, записанные в UDR переписываются в регистр сдвига передатчика.

Установка этого бита означает, что передатчик готов принять следующий

символ для передачи. Если установлен бит UDRIE в регистре UCR, при

установке этого бита выполняется прерывание окончания передачи. Бит UDRE

сбрасывается при записи регистра UDR. При использовании передачи

управляемой прерыванием, подпрограмма обслуживания прерывания должна

записывать UDR, чтобы сбросить бит UDRE, иначе при выходе из прерывания

оно будет вызвано снова. При сбросе этот бит устанавливается в 1, чтобы

проиндицировать готовность передатчика.

Бит 4 - FE - ошибка кадра. Этот бит устанавливается при обнаружении условия

ошибки кадра, т.е. если стоповый бит принятого байта равен 0. Бит FE

сбрасывается при приеме единичного стопового бита.

Бит 3 - OR - переполнение. Этот бит устанавливается при обнаружении условия

переполнения, т.е. когда символ из регистра UDR не был прочитан до того,

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

остается установленным до тех пор, пока из регистра UDR не будут прочитаны

правильные данные. Бит OR сбрасывается когда принятые данные переписываются

в UDR.

Биты 2..1 - зарезервированы. В AT90S2333/4433 эти биты зарезервированы и

всегда читаются как 0.

Бит 0 - MPCM - режим мультипроцессорного обмена. Этот бит используется для

перехода в режим мультипроцессорного обмена. Этот бит устанавливается когда

ведомый процессор ожидает приема адресного байта. Когда ведомый процессор

распознает свой адрес он должен сбросить бит MPCM и начать прием данных.

РЕГИСТР УПРАВЛЕНИЯ И СОСТОЯНИЯ UART (UСSRB)

| |7 |6 |5 |4 |3 |2 |1 |0 |

|0Ah(2Ah) | | | | | | | | |

| |RXCIE |TXCIE |UDRIE |RXEN |TXEN |CHR9 |RXB8 |TXB8 |

| |R\W |R\W |R\W |R\W |R\W |R\W |R |W |

|Начальное|0 |0 |0 |0 |0 |1 |0 |0 |

|значение | | | | | | | | |

Бит 7 - RXCIE - Разрешение прерывания по окончанию приема. Если этот бит

установлен (1), установка бита RXC в регистре UCSRA приводит к выполнению

прерывания по окончанию приема (при условии что разрешены прерывания).

Бит 6 - TXCIE - Разрешение прерывания по окончанию передачи. Если этот бит

установлен, установка бита TXC в UCSRA приводит к выполнению прерывания по

окончанию передачи (при условии, что прерывания разрешены).

Бит 5 - UDRIE - Прерывание по очистке регистра данных последовательного

порта. Если этот бит установлен, установка бита UDRE в UCSRA приводит к

выполнению прерывания по очистке регистра данных UART (при условии, что

прерывания разрешены).

Бит 4 - RXEN - Разрешение приемника. При установке этого бита разрешается

работа приемника UART. Если приемник выключен, флаги TXC, OR и FE не

устанавливаются. Если эти флаги установлены, сброс RXEN не очищает их.

Бит 3 - TXEN - Разрешение передатчика. При установке этого бита разрешается

работа передатчика UART. При запрещении работы передатчика во время

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

регистр и не будет передан символ, помещенный в UDR.

Бит 2 - CHR9 - 9-битовые посылки. Если этот бит установлен, принимаемые и

передаваемые символы имеют длину 9 бит. Для передачи и приема 9-го символа

используются биты RXB8 и TXB8 соответственно. 9-й бит можно использовать

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

Бит 1 - RXB8 - Бит 8 принимаемых данных. Если установлен бит CHR9, сюда

записывается 9-й бит принятых данных.

Бит 0 - TXB8 - Бит 8 передаваемых данных. Если установлен бит CHR9, отсюда

берется 9-й бит передаваемых данных.

ГЕНЕРАТОР СКОРОСТИ ПЕРЕДАЧИ

Генератор скорости передачи это делитель частоты, который генерирует

скорости в соответствии с нижеприведенным выражением:

BAUD = Fck / (16*(UBRR+1))

здесь BAUD - скорость передачи (бод)

Fck - частота тактового генератора процессора

UBRR - содержимое регистров UBRRH и UBRR (0...4095)

В следующей таблице приведены значения регистра UBRR и процентное

отклонение от стандартной скорости передачи для стандартных частот

кварцевых генераторов.

Таблица.18

|Скор.|1.000|Ош. |Скор.|1.8432|Ош. |Скор.|2.000|Ош. |

|, |0 |% |, | |% |, |0 |% |

|бод |MHz | |бод |MHz | |бод |MHz | |

|2400 |25 |0.2 |2400 |47 |0 |2400 |51 |0.2 |

|4800 |12 |0.2 |4800 |23 |0 |4800 |25 |0.2 |

|9600 |6 |7.5 |9600 |11 |0 |9600 |12 |0.2 |

|14400|3 |7.8 |14400|7 |0 |14400|8 |3.7 |

| |2 |7.8 | |5 |0 | |6 |7.5 |

|19200|1 |7.8 |19200|3 |0 |19200|3 |7.8 |

| |1 |22.9| |2 |0 | |2 |7.8 |

|28800|0 | |28800|1 |0 |28800|1 |7.8 |

| |0 |7.8 | |1 |33.0| |1 |22.9 |

|38400|0 |22.9|38400|0 | |38400|0 |7.8 |

| | | | | |0 | | | |

|57600| |84.3|57600| | |57600| | |

| | | | | | | | | |

|76800| | |76800| | |76800| | |

| | | | | | | | | |

|11520| | |11520| | |11520| | |

|0 | | |0 | | |0 | | |

|Скор.|3.276|Ош. |Скор.|3.6864|Ош. |Скор.|4.000|Ош. |

|, |8 |% |, | |% |, |0 |% |

|бод |MHz | |бод |MHz | |бод |MHz | |

|2400 |84 |0.4 |2400 |95 |0.0 |2400 |103 |0.2 |

|4800 |42 |0.8 |4800 |47 |0.0 |4800 |51 |0.2 |

|9600 |20 |1.6 |9600 |23 |0.0 |9600 |25 |0.2 |

|14400|13 |1.6 |14400|15 |0.0 |14400|16 |2.1 |

| |10 |3.1 | |11 |0.0 | |12 |0.2 |

|19200|6 |1.6 |19200|7 |0.0 |19200|8 |3.7 |

| |4 |6.3 | |5 |0.0 | |6 |7.5 |

|28800|3 |12.5|28800|3 |0.0 |28800|3 |7.8 |

| |2 | | |2 |0.0 | |2 |7.8 |

|38400|1 |12.5|38400|1 |0.0 |38400|1 |7.8 |

| | | | | | | | | |

|57600| |12.5|57600| | |57600| | |

| | | | | | | | | |

|76800| | |76800| | |76800| | |

| | | | | | | | | |

|11520| | |11520| | |11520| | |

|0 | | |0 | | |0 | | |

|Скор.|7.372|Ош. |Скор.|8.0000|Ош. |Скор.|9.216|Ош. |

|, |8 |% |, | |% |, |0 |% |

|бод |MHz | |бод |MHz | |бод |MHz | |

|2400 |191 |0.0 |2400 |207 |0.2 |2400 |239 |0.0 |

|4800 |95 |0.0 |4800 |103 |0.2 |4800 |119 |0.0 |

|9600 |47 |0.0 |9600 |51 |0.2 |9600 |59 |0.0 |

|14400|31 |0.0 |14400|34 |0.8 |14400|39 |0.0 |

| |23 |0.0 | |25 |0.2 | |29 |0.0 |

|19200|15 |0.0 |19200|16 |2.1 |19200|19 |0.0 |

| |11 |0.0 | |12 |0.2 | |14 |0.0 |

|28800|7 |0.0 |28800|8 |3.7 |28800|9 |0.0 |

| |5 |0.0 | |6 |7.5 | |7 |6.7 |

|38400|3 |0.0 |38400|3 |7.8 |38400|4 |0.0 |

| | | | | | | | | |

|57600| | |57600| | |57600| | |

| | | | | | | | | |

|76800| | |76800| | |76800| | |

| | | | | | | | | |

|11520| | |11520| | |11520| | |

|0 | | |0 | | |0 | | |

РЕГИСТР СКОРОСТИ ПЕРЕДАЧИ (UBRR)

UBRRHI

| |7 |6 |5 |4 |3 |2 |1 |0 |

|03h(23h) | | | | | | | | |

| | | | | |MSB |- |- |- |

| |R |R |R |R |R\W |R\W |R\W |R\W |

|Начальное|0 |0 |0 |0 |0 |0 |0 |0 |

|значение | | | | | | | | |

UBRR

| |7 |6 |5 |4 |3 |2 |1 |0 |

|09h(29h) | | | | | | | | |

| | | | | | | | |LSB |

| |R\W |R\W |R\W |R\W |R\W |R\W |R\W |R\W |

|Начальное|0 |0 |0 |0 |0 |0 |0 |0 |

|значение | | | | | | | | |

Это 12-разрядный регистр, который задает скорость передачи

последовательного порта в соответствии с выражением приведенным выше. В

регистре UBRRHI хранятся 4 старших бита, в UBRR - 8 младших бит.

АНАЛОГОВЫЙ КОМПАРАТОР

Аналоговый компаратор сравнивает входные напряжение на положительном

входе PD6 (AIN0) и отрицательном входе PD7(AIN1). Когда напряжение на

положительном входе больше напряжения на отрицательном, устанавливается бит

ACO (Analog Comparator Output). Выход аналогового компаратора можно

установить на работу с функцией захвата Таймера/Счетчика1. Кроме того,

компаратор может вызывать свое прерывание. Пользова-

тель может установить установить срабатывание прерывания по нарастающему

или спадающему фронту, или по переключению.

РЕГИСТР УПРАВЛЕНИЯ И СОСТОЯНИЯ АНАЛОГОВОГО КОМПАРАТОРА (ACSR).

ACSR

| |7 |6 |5 |4 |3 |2 |1 |0 |

|08h(28h) | | | | | | | | |

| |ACD |AINBG |ACO |ACI |ACIE |ACIC |ACIS1 |ACIS0 |

| |R\W |R |R |R\W |R\W |R\W |R\W |R\W |

|Начальное|0 |0 |0 |0 |0 |1 |0 |0 |

|значение | | | | | | | | |

Бит 7 - ACD - Запрещение аналогового компаратора. Когда этот бит

установлен, питание от аналогового компаратора отключается. Для отключения

компаратора этот бит можно установить в любое время. Обычно это свойство

используется если критично потребление процессора в холостом режиме и

восстановление работы процессора от аналогового компаратора не требуется.

При изменении бита ACD прерывания от аналогового компаратора должны быть

запрещены сбросом ACIE в регистре ACSR. В противном случае прерывание может

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

Бит 6 - AINBG - Выбор напряжения сравнения аналогового компаратора. Когда

этот бит установлен, вывод AIN0 подключается к напряжению 1.22 + 0.05В.

Когда бит сброшен возобновляется нормальная работа вывода AIN0.

Бит 5 - ACO - Выход аналогового компаратора. Бит ACO непосредственно

подключен к выходу аналогового компаратора.

Бит 4 - ACI - Флаг прерывания от аналогового компаратора. Этот бит

устанавливается когда переключение выхода компаратора совпадает с режимом

прерывания установленным битами ACIS1 и ACIS0. Программа обработки

прерывания от аналогового компаратора выполняется если установлен бит ACIE

(1) и установлен бит I в регистре состояния. ACI сбрасывается аппаратно при

выполнении соответствующего вектора прерывания. Другой способ очистить ACI

- записать во флаг логическую единицу.

Бит 3 - ACIE - Разрешение прерывания от аналогового компаратора. Когда

установлен этот бит и бит I регистра состояния, прерывания от аналогового

компаратора отрабатываются. Если бит очищен (0), прерывания запрещены.

Бит 2 - ACIC - Захват по выходу аналогового компаратора. Если этот бит

установлен, функция захвата таймера/счетчика1 управляется выходом

аналогового компаратора. При этом выход компаратора подключается

непосредственно к схеме обработки захвата, предоставляя удобные средства

подавления шума и выбора фронта предусмотренные прерыванием захвата по

входу. Когда бит очищен, схема захвата и компаратор разъединены. Чтобы

компаратор мог управлять функцией захвата таймера/счетчика1, должен быть

установлен бит TICIE1 в регистре TIMSK.

Биты 1,0 - ACIS1, ACIS0 - Выбор режима прерывания аналогового компаратора.

Различные установки приведены ниже.

Таблица 19. Установки ACIS1/ACIS0

|ACIS|ACIS|Описание |

|1 |0 | |

|0 |0 |Прерывание от компаратора по переключению |

| | |выхода |

|0 |1 |Зарезервировано |

|1 |0 |Прерывание от компаратора по спадающему |

| | |фронту выхода |

|1 |1 |Прерывание от компаратора по нарастающему |

| | |фронту выхода |

Примечание: При изменении битов ACIS1/ACIS0 прерывания от аналогового

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

регистре ACSR. Иначе прерывание может произойти при изменении битов.

АНАЛОГО-ЦИФРОВОЙ ПРЕОБРАЗОВАТЕЛЬ

Основные характеристики:

- разрешение 10 бит

- точность +- 1/2 младшего разряда

- время преобразования 65-260 uS

- 6 мультиплексирумых входов

- работа с полным размахом напряжения

- непрерывный режим или одиночные преобразования

- прерывание по завершению преобразования

- подавление шума в режиме Sleep

AT90S2333/4433 имеют 10-разрядный АЦП последовательного приближения. АЦП

подключен к выходу шестивходового мультиплексора. Мультиплексор позволяет

подключать на вход АЦП любой из входов порта C. В состав АЦП входит

усилитель выборки-хранения, который позволяет сохранять на входе АЦП

уровень напряжения постоянный за время преобразования.

АЦП имеет два отдельных вывода питания AVCC и AGND. ФПТВ должен

подключаться к GND, напряжение на AVCC не должно отличаться от VCC более

чем на +-0.3В. Внешнее опорное напряжение должно подаваться на вывод AREF.

Это напряжение должно лежать в пределах AGND-AVCC.

РАБОТА АЦП

АЦП может работать в двух режимах - одиночного преобразования и

непрерывном. В режиме одиночного преобразование каждое преобразование

инициируется пользователем. В непрерывном режиме АЦП производит непрерывную

обработку входного сигнала и обновляет регистр данных АЦП. Переключение

режимов осуществляется битом ADFR в регистре ADCSR. Регистр ADMUX выбирает

один из шести входов подключаемый ко входу АЦП. Кроме того в качестве входа

можно использовать фиксированное опорное напряжение. Работа АЦП разрешается

записью логической "1" в бит разрешения АЦП (ADEN в ADCSR). Перед первым

преобразованием после разрешения АЦП выполняется одно "пустое"

преобразование инициализирующее АЦП. Для пользователя единственное отличие

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

25 тактовых импульсов вместо обычных 13.

Преобразование запускается записью логической 1 в бит запуска АЦП - ADCS.

Этот бит остается установленным пока идет преобразование и аппаратно

сбрасывается, когда преобразование завершается. Если во время

преобразования происходит переключение канала, пред переключением АЦП

завершает текущее преобразование.

Операция выборки-хранения занимает один цикл после запуска преобразования.

Это позволяет пользователю устанавливать номер входного канала одновременно

с запуском преобразования Поскольку результат преобразования занимает 10

разрядов, для хранения результата используется два регистра ADCH и ADCL,

которые должны быть прочитаны для получения результата. Для защиты данных,

чтобы обеспечить чтение результата одного преобразования из обоих регистров

используется специальная логика защиты данных.

Этот механизм работает так:

При чтении данных первым должен читаться регистр ADCL. Доступ АЦП к

регистру данных блокируется. Это приводит к тому, что если прочитан байт

ADCL и преобразование завершилось до того как прочитан регистр ADCH,

регистр данных не изменяется и результат преобразования будет потерян.

Доступ АЦП к регистру данных разрешается после чтения ADCH. АЦП имеет

собственное прерывание, которое выполняется по завершению преобразования.

Если доступ АЦП к регистру данных запрещен (между чтением ADCL и ADCH),

прерывание вызывается даже если данные потеряны. Предварительный делитель

АЦП работает с тактовыми частотами в диапазоне 50-200 kHz. Для полного

преобразования АЦП необходимо 13 тактов, т.е. преобразование занимает от 65

до 260 uS. Корректное значение выхода АЦП гарантируется только для тактовых

частот не выходящих из приведенного диапазона. Для генерации тактовой

частоты АЦП из тактовой частоты процессора выше 100 кГц используются биты

ADPS0-ADPS2. Предварительный делитель начинает счет в момент разрешения АЦП

установкой бита ADEN в ADCSR. Предварительный делитель продолжает работать

до тех пор, пока установлен бит ADEN и непрерывно сбрасывается если бит

ADEN сброшен. Функция подавления шумов АЦП Одна из особенностей АЦП -

функция подавления шумов, АЦП может осуществлять преобразования в режиме

холостого хода, это позволят уменьшить шумы, наводимые ядром процессора.

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

процедуру:

1. Удостоверьтесь, что АЦП разрешен и не занят преобразованием. Необходимо

выбрать режим одиночного преобразования и разрешить прерывания по окончанию

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

ADEN=1

ADSC=0

ADFR=0

ADIE=1

2. Перейти в режим холостого хода. АЦП начнет преобразование после того как

остановится процессор.

3. Если за время преобразования не произойдут другие прерывания, по

окончанию преобразования процессор выйдет из режима холостого хода и

выполнит прерывание по окончанию преобразования.

РЕГИСТР УПРАВЛЕНИЯ МУЛЬТИПЛЕКСОРОМ АЦП – AMUX

| |7 |6 |5 |4 |3 |2 |1 |0 |

|07h(27h) | | | | | | | | |

| |- |ADCBG |- |- |- |MUX2 |MUX1 |MUX0 |

| |R\W |R |R |R\W |R\W |R\W |R\W |R\W |

|Начальное|0 |0 |0 |0 |0 |1 |0 |0 |

|значение | | | | | | | | |

Бит 7 - зарезервирован; в AT90S2333/4433 этот бит зарезервирован и при

записи должен устанавливаться в 0.

Бит 6 - ADCBG - выбор опорного напряжения АЦП - при установке этого бита на

вход АЦП подается фиксированное напряжение 1.22+-0.05В, когда бит сброшен,

вход АЦП подключается к одному из внешних входов согласно установке битов

MUX2..MUX0.

Биты 5..3 - зарезервированы. В AT90S2333/4433 эти биты зарезервированы и

при записи должны устанавливаться в 0.

Биты 2..0 - MUX2..MUX0 - выбор аналогового входа. Содержимое этих бит

определяет какой из аналоговых входов подключен на вход АЦП.

РЕГИСТР УПРАВЛЕНИЯ И СОСТОЯНИЯ АЦП – ADCSR

ADCSR

| |7 |6 |5 |4 |3 |2 |1 |0 |

|06h(26h) | | | | | | | | |

| |ADEN |ADSC |ADFR |ADIF |ADIE |ADPS2 |ADPS1 |ADPS0 |

| |R\W |R\W |R\W |R\W |R\W |R\W |R\W |R\W |

|Начальное|0 |0 |0 |0 |0 |1 |0 |0 |

|значение | | | | | | | | |

Бит 7 - ADEN - Разрешение АЦП. - При записи логической "1" в этот бит

разрешается работа АЦП. При установке бита в "0" АЦП выключается. При

выключении АЦП до окончания преобразования, преобразование не завершается.

Бит 6 - ADSC - Запуск преобразования АЦП. - В режиме одиночного

преобразования для запуска преобразования в этот бит должна быть записана

"1". При запуске преобразования битом ADSC время преобразования

отчитывается ль начала следующего периода частоты на выходе делителя. При

установке ADSC после разрешения АЦП или при одновременном разрешении АЦП и

установке ADSC, первому преобразованию предшествует "пустой" цикл

преобразования. Во время этого цикла происходит инициализация АЦП. Во время

преобразования бит ADSC остается установленным и сбрасывается при

завершении преобразования, но до того, как результат переписывается в

регистр данных АЦП. Это позволяет запустить новое преобразование до того

как завершится текущее. Новое преобразование будет запущено сразу по

окончанию текущего. Если преобразованию предшествует "пустой" цикл, бит

ADSC остается установленным пока не будет завершено реальное

преобразование. Запись 0 в этот бит не дает результата.

Бит 5 - ADFR - Выбор непрерывного преобразования АЦП. - Когда этот бит

установлен, включается режим непрерывного преобразования АЦП. В этом режиме

АЦП непрерывно производит выборки сигнала и обновляет регистр данных. При

сбросе этого бита режим непрерывного преобразования отключается.

Бит 4 - ADIF - Флаг прерывания АЦП. - Этот флаг устанавливается когда

завершается цикл преобразования АЦП и обновляется регистр данных АЦП. Если

установлены флаг глобального разрешения прерываний (I в

SREG) и бит ADIE, по завершению преобразования выполняется прерывание.

Флаг ADIF сбрасывается аппаратно при выполнении соответствующего

прерывания. Другой способ сбросить флаг - записать в него "1". Необходимо

предостеречь, что при чтении-модификации-записи ADCSR может быть

запрещено отложенное прерывание. Это же касается и команд SBI и CBI.

Бит 3 - ADIE - Разрешение прерывания от АЦП. - При установке этого бита и

бита I в регистре SREG разрешены прерывания по окончанию преобразования

АЦП.

Биты 2..0 - ADPS2..ADPS0 - биты установки предварительного делителя. - Эти

биты задают коэффициент деления тактовой частоты процессора и задают

тактовую частоту работы АЦП.

Таблица 20. Выбор коэффициента деления АЦП

|ADPS|ADPS|ADPS|Коэф.деле|ADPS2|ADPS|ADPS0|Коэф.делени|

|2 |1 |0 |ния | |1 | |я |

|0 |0 |0 |2 |1 |0 |0 |16 |

|0 |0 |1 |2 |1 |0 |1 |32 |

|0 |1 |0 |4 |1 |1 |0 |64 |

|0 |1 |1 |8 |1 |1 |1 |128 |

РЕГИСТР ДАННЫХ АЦП - ADCL И ADCH

ADCH

| |7 |6 |5 |4 |3 |2 |1 |0 |

|05h(25h) | | | | | | | | |

| |- |- |- |- |- |MSB | | |

| |R |R |R |R |R |R |R |R |

|Начальное|0 |0 |0 |0 |0 |0 |0 |0 |

|значение | | | | | | | | |

ADCL

| |7 |6 |5 |4 |3 |2 |1 |0 |

|04h(24h) | | | | | | | | |

| | | | | | | | |LSB |

| |R |R |R |R |R |R |R |R |

|Начальное|0 |0 |0 |0 |0 |1 |0 |0 |

|значение | | | | | | | | |

Сканирование аналоговых каналов

Поскольку смена аналоговых каналов всегда происходит после завершения

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

режим непрерывного преобразования. Обычно для переключения каналов

используется прерывание по завершению преобразования. Однако пользователь

должен принимать во внимание следующие факторы:

- в режиме непрерывного преобразования, цикл выборки-хранения

следующего преобразования начинается через полтора тактовых цикла после

того как результат текущего преобразования записывается в регистр данных

АЦП и устанавливается флаг ADIF. Если канал АЦП переключится до того как

произойдет операция выборки-хранения, результат преобразования будет

отражать новое состояние мультиплексора, если ADMUX изменится после выборки-

хранения, следующий результат будет использовать прежнее значение входного

канала. Новый подключенный канал будет обслужен в следующем цикле

преобразования. При чтении регистра ADMUX всегда возвращается последнее

записанное в него число, независимо от того, какой канал используется для

текущего преобразования.

Техника подавления шума АЦП

Цифровые схемы внутри и снаружи AT90S2333/4433 генерируют

электромагнитные излучения, которые могут повлиять на точность аналоговых

Страницы: 1, 2, 3, 4


© 2010 Современные рефераты