реферат, рефераты скачать Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
реферат, рефераты скачать
реферат, рефераты скачать
МЕНЮ|
реферат, рефераты скачать
поиск
AVR микроконтроллер AT90S2333 фирмы Atmel

| | | | | | | | |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 |

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

Регистр захвата 16-разрядный регистр доступный только для чтения. По

нарастающему или спадающему фронту (в соответствии с выбором фронта

импульса захвата ICES1) сигнала на выводе ICP текущее значение

таймера/счетчика 1 переписывается в регистр захвата ICR1. В это же время

устанавливается флаг захвата ICF1. Поскольку регистр захвата является 16-

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

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

ICR1L, он посылается в ЦПУ, а старший байт регистра ICR1H переписывается во

временный регистр (TEMP). При чтении старшего байта, он принимается из

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

должен читаться младший байт. Регистр TEMP используется при доступе к TCNT1

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

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

запрещаться.

ТАЙМЕР/СЧЕТЧИК 1 В РЕЖИМЕ ШИМ

При выборе режима широтно-импульсной модуляции (ШИМ), таймер/счетчик 1 и

регистр совпадения OCR1A формируют 8, 9 или 10-разрядный непрерывный

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

PB3(OC1). Таймер/счетчик 1 работает как реверсивный счетчик считающий от 0

до конечного значения (см. табл.10). При достижении конечного значения

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

цикл повторяется. Когда значение счетчика совпадает с 8, 9 или 10-ю

младшими битами регистра OCR1A, вывод PD1(OC1) устанавливается или

сбрасывается в соответствии с установками бит COM1A1 и COM1A0 в регистре

TCCR1 (см. табл.11).

Таблица 12. Конечное значение таймера и частота ШИМ.

|Разрешение |Конечное значение |Частота ШИМ |

|ШИМ |таймера | |

|8 бит |00FFh (255) |Ftc1/510 |

|9 бит |01FFh (511) |Ftc1/1022 |

|10 бит |03FFh (1023) |Ftc1/2046 |

Таблица 13. Установка режима совпадения при работе ШИМ

|COM1A1|COM1A0|Влияние на вывод OC1 |

|0 |0 |не подключен |

|0 |1 |не подключен |

|1 |0 |очищается при совпадении, для возрастания счетчика и |

| | |сбрасывается для уменьшения (неинвертирующий ШИМ) |

|1 |1 |очищается при совпадении, для уменьшения счетчика и |

| | |сбрасывается для возрастания (инвертирующий ШИМ) |

В режиме ШИМ, при записи в регистр OCR1A, 10 младших бит передаются во

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

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

(дрожания), которые неизбежны при асинхронной записи OCR1A. Во промежуток

времени между записью во временный регистр и переписыванием его в OCR1, при

обращении к OCR1 читается содержимое временного регистра. Если OCR1A

содержит значение 0000h или конечное значение (TOP), вывод OC1 остается в

том состоянии, которое определяется установками COM1A1 и COM1A0. Это

показано в табл. 14.

Таблица 14. Выход ШИМ для OCR=0000h или TOP

|COM1A1|COM1A0|OCR1A |вывод OC1|

|1 |0 |0000h |низкий |

|1 |0 |TOP |высокий |

|1 |1 |0000h |высокий |

|1 |1 |TOP |низкий |

В режиме ШИМ флаг переполнения таймера 1 (TOV1) устанавливается когда

счетчик изменяет направление счета в точке 0000h. Прерывание по

переполнению таймера 1 работает как при нормальном режиме работы

таймера/счетчика, т.е. оно выполняется, если установлен флаг TOV1 и

разрешены соответствующие прерывания. То же самое касается флага совпадения

и прерывания по совпадению.

СТОРОЖЕВОЙ ТАЙМЕР

Сторожевой таймер работает от отдельного встроенного генератора

работающего на частоте 1 MHz (это типовое значение частоты для питания 5В).

Управляя предварительным делителем сторожевого таймера можно задавать

интервал сброса таймера от 16 до 2048 mS. Команда WDR сбрасывает сторожевой

таймер. Для работы сторожевого таймера можно выбрать одно из 8-ми значений

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

команды WDR и сбросом процессора. При отработке периода работы сторожевого

таймера, если не поступила команда WDR, AT90S2313 сбрасывается, выполнение

программы продолжается с вектора сброса.

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

его запрещения должна выполняться определенная последовательность, которая

описана при рассмотрении регистра WDTCR.

РЕГИСТР УПРАВЛЕНИЯ СТОРОЖЕВЫМ ТАЙМЕРОМ – WDTCR

WDTCR

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

|21h(41h) | | | | | | | | |

| | | | |WDTOE |WDE |WDP2 |WDP1 |WDP0 |

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

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

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

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

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

Бит 4 - WDTOE - разрешение выключения сторожевого таймера. При очистке бита

WDE этот бит должен быть установлен (1). Иначе, работа сторожевого таймера

не прекращается. Через четыре такта после установки этого бита, он

аппаратно сбрасывается.

Бит 3 - WDE- разрешение сторожевого таймера. Если бит установлен (1),

работа сторожевого таймера разрешена, если бит сброшен - запрещена. Сброс

бита производится только в том случае, если бит WDTOE установлен в 1. Для

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

процедура:

1. Одной командой записать 1 в WDTOE и WDE. Единица в WDE должна

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

процедуры остановки таймера

2. В течение следующих четырех тактов процессора необходимо записать в WDE

логический 0, при этом работа сторожевого таймера запрещается.

Биты 2..0 - WDP2..0 - Биты предварительного делителя сторожевого таймера.

Если работа сторожевого таймера разрешена, эти биты определяют

предварительный коэффициент деления для сторожевого таймера. В таблице 15

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

соответствующие им временные интервалы для напряжения питания Vcc=5V.

Таблица 15. Установки предварительного делителя сторожевого таймера

|WDP2 |WDP1 |WDP0 |период |

| | | |времени |

|0 |0 |0 |16K циклов |

|0 |0 |1 |32K циклов |

|0 |1 |0 |64K циклов |

|0 |1 |1 |128K циклов |

|1 |0 |0 |256 циклов |

|1 |0 |1 |512 циклов |

|1 |1 |0 |1024 циклов |

|1 |1 |1 |2048 циклов |

ЧТЕНИЕ И ЗАПИСЬ В ЭНЕРГОНЕЗАВИСИМУЮ ПАМЯТЬ

Регистры доступа к энергонезависимой памяти (EEPROM) расположены в

пространстве ввода/вывода. Время записи лежитв диапазоне 2.5-4 mS и зависит

от напряжения питания. Это самотактируемая функция которая, однако,

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

определения возможности записи в EEPROM можно использовать специальное

прерывание по готовности EEPROM. Инициированная запись в EEPROM

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

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

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

энергонезависимой памяти. При записи или чтении EEPROM процессор

приостанавливается на 2 машинных цикла до начала выполнения следующей

команды. При чтении из EEPROM процессор приостанавливается на четыре

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

РЕГИСТР АДРЕСА EEPROM – EEAR

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

|1Eh(3Eh) | | | | | | | | |

| |EEAR7 |EEAR6 |EEAR5 |EEAR4 |EEAR3 |EEAR2 |EEAR1 |EEAR0 |

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

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

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

Регистр EEAR задает адрес одного из 128/256 байт адресного пространства

EEPROM. Байты данных адресуется линейно в диапазоне от 0 до 127/255.

Начальное значение регистра EEAR неопределено, поэтому перед доступом к

EEPROM в этот регистр должно быть записано требуемое число.

РЕГИСТР ДАННЫХ EEPROM – EEDR

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

|1Dh(3Dh) | | | | | | | | |

| |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 |

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

Биты 7..0 - EEDR7..0 - Данные EEPROM. При записи регистр EEDR содержит

данные, которые записываются в EEPROM по адресу в регистре EEAR. Для

операции чтения в этот регистр читаются данные прочитанные из EEPROM по

адресу заданному в регистре EEAR.

РЕГИСТР УПРАВЛЕНИЯ EEPROM - EECR

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

|1Ch(3Ch) | | | | | | | | |

| | | | | |EERIE |EEMWE |EEWE |EERE |

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

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

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

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

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

Бит 3 - EERIE - Разрешение прерывания по готовности EEPROM. Если

установлены биты I в регистре SREG и EERIE, разрешается прерывание по

готовности EEPROM. Это прерывание возникает непрерывно, если сброшен бит

EEWE.

Бит 2 - EEMWE - Управление разрешением записи. Этот бит определяет, будут

ли записаны данные при установке EEWE. Если бит EEMWE установлен, при

установке EEWE данные записываются по выбранному адресу EEPROM. Если этот

бит сброшен, установка EEWE не имеет эффекта. После программной установки

этот бит сбрасывается аппаратно через четыре такта процессора.

Бит 1 - EEWE - Разрешение записи в EEPROM. Сигнал EEWE является стробом

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

EEPROM необходимо установить бит EEWE. При записи "1"

в бит EEWE должен быть установлен бит EEMWE, тогда происходит запись в

EEPROM. Для записи в EEPROM должна соблюдаться следующая последовательность

(порядок шагов 2 и 3 необязателен):

|1|Ждем обнуления EEWE |

|2|Записываем адрес в EEAR (не обязательно) |

|3|Записываем данные в EEDR (не обязательно) |

|4|Устанавливаем в 1 бит EEMWE |

|5|Не позже чем через 4 такта после установки EEMWE |

| |устанавливаем EEWE |

После того как время записи истечет (типично 2.5 mS для Vcc=5V и 4mS для

Vcc=2.7), бит EEWE очищается аппаратно. Пользователь может отслеживать этот

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

байт. При установке EEWE, ЦПУ останавливается на два цикла перед

исполнением следующей команды.

Бит 0 - EERE - разрешение чтения из EEPROM. Сигнал EERE является стробом

чтения из EEPROM. После установки нужного адреса в регистре EEAR,

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

очищен, в регистре EEDR. Чтение EEPROM занимает одну команду и не требует

отслеживания бита EERE. При установке бита EERE, ЦПУ останавливается на два

цикла перед тем как будет выполнена следующая команда. Перед чтением

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

адреса изменяются во время операции записи, запись в ячейку прерывается и

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

ПОСЛЕДОВАТЕЛЬНЫЙ ИНТЕРФЕЙС SPI

Интерфейс SPI позволяет производить высокоскоростной синхронный обмен

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

процессорами. SPI-интерфейс предлагает следующие возможности:

1. Полностью дуплексная 3-проводная синхронная передача данных;

2. Работа в режиме ведущего или ведомого;

3. Передача начиная со старшего или младшего бита;

4. Четыре программируемые скорости передачи;

5. Флаг прерывания по окончанию передачи;

6. Флаг защиты от коллизий при записи

7. Выход из режима Idle.

Соединение между ведущим и ведомым контроллерами показана ниже. Вывод

PB5(SCK) является выходом тактовых импульсов для ведущего контроллера и

входом для ведомого. Запись в регистр данных SPI ведущего контроллера

запускает тактовый генератор. Записанные данные сдвигаются через вывод

PB3(MOSI) на вывод PB3(MOSI) ведомого контроллера. После того как байт

будет выведен тактовый генератор останавливается и выставляет флаг

окончания передачи (SPIF). Если разрешены прерывания (установлен бит SPIE в

регистре SPCR), вызывается соответствующее прерывание. Вывод PB2(SS)

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

в ведущем и ведомом контроллерах можно рассматривать как один

распределенный 16-разрядный регистр сдвига. Когда данные сдвигаются из

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

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

байтами данных.

Система имеет одиночный буфер в направлении передачи и двойной в

направлении приема. Передаваемый символ не записывается в регистр данных

SPI до тех пор, пока передача не завершится. При приеме до завершения

операции сдвига данные должны быть прочитаны из регистра данных. Иначе

предыдущий символ теряется. При разрешении SPI выводы MOSI, MISO, SCK и SS

устанавливаются на ввод/вывод в соответствии с таблицей.

Таблица 16. Установка выводов SPI

|Выво|Направление в режиме |Направление в режиме |

|д |ведущего |ведомого |

|MOSI|Определяется |Вход |

| |пользователем | |

|MISO|Вход |Определяется |

| | |пользователем |

|SCK |Определяется |Вход |

| |пользователем | |

|SS |Определяется |Вход |

| |пользователем | |

РАБОТА ВЫВОДА SS

Если SPI сконфигурирован как ведущий (установлен бит MSTR в SPCR),

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10



© 2003-2013
Рефераты бесплатно, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.