Реферат: AVR микроконтроллер AT90S2333 фирмы Atmel
Бит 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
1Eh(3Eh)
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
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
1Dh(3Dh)
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
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
1Ch(3Ch)
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
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-интерфейс предлагает следующие возможности:
- Полностью
дуплексная 3-проводная синхронная передача данных;
- Работа
в режиме ведущего или ведомого;
- Передача
начиная со старшего или младшего бита;
- Четыре
программируемые скорости передачи;
- Флаг
прерывания по окончанию передачи;
- Флаг
защиты от коллизий при записи
- Выход
из режима 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), пользователь может задавать направление ввода для ножки SS. Если
SS сконфигурирован на вывод, ножка работает как бит ввода/вывода общего
назначения не влияющий на работу SPI. Если ножка сконфигурирована на ввод, на
нее необходимо подать высокий уровень, чтобы SPI работал в режиме ведущего.
Если в режиме ведущего ножка SS установлена на ввод и внешним устройством
устанавливается в низкий уровень, системой SPI это воспринимается как выбор
шины другим ведущим устройством и попытка передать данные ведомому. Для
избежания конфликтов на шине система SPI делает следующее:
1. Сбрасывается бит MSTR в SPCR, система SPI
становится ведомой. При этом ножки MOSI и SCK становятся входами.
2. Устанавливается флаг SPIF в SPSR, если разрешены
прерывания, будет исполнена программа обслуживания прерывания.
Таким образом если передача по SPI производится в
режиме ведущего и существует возможность установки вывода SS в низкий уровень,
прерывание должно отслеживать установлен ли бит MSTR. Если бит MSTR будет
сброшен при переходе в режим ведомого контроллера, обратно он должен быть
установлен пользователем.
Если система SPI сконфигурирована как ведомая, вывод
SS всегда является входом. Когда SS переводится в низкий уровень, система SPI
активируется и ножка MISO, если это задано пользователем, становится выходом.
Другие выводы являются входами. Если внешним устройством на вывод SS подан
высокий уровень, все выводы становятся входами, а система SPI становится
пассивной, т.е. не будет принимать данные.
Режимы обмена
данными
Биты CPHA и CPOL определяют четыре комбинации фазы и
полярности SCK относительно битов данных. Битом CPOL задается полярность
импульсов на выводе SCK, при CPOL=0 полярность импульсов положительная, при отсутствии
импульсов на выводе удерживается низкий уровень. При CPOL=1 полярность
импульсов отрицательная, при отсутствии импульсов на выходе высокий уровень.
Битом CPHA задается фронт по которому обрабатываются биты данных. При CPHA=0
обработка происходит по переднему фронту импульсов SCK (для CPOL=0 переход из
низкого уровня в высокий, для CPOL=1 - из высокого в низкий). При CPHA=1
обработка происходит по заднему фронту импульсов SCK.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
|