Бит 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.
РЕГИСТР УПРАВЛЕНИЯ SPI – SPCR
0Dh(2Dh)
7
6
5
4
3
2
1
0
SPIE
SPE
DORD
MSTR
CPOL
CPHA
SPR1
SPRO0
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 - SPIE - Разрешение прерываний от SPI - если этот бит установлен, при установке бита SPIF в регистре SPSR выполняется прерывание от SPI, если разрешены общие прерывания.
Бит 6 - SPE - Разрешение SPI - Этот бит должен быть установлен для осуществления любых операций по шине SPI.
Бит 5 - DORD - Порядок бит данных - Если этот бит установлен, при обмене первым передается младший бит данных. Если бит сброшен – первым передается старший бит.
Бит 4 - MSTR - Выбор ведущего/ведомого - При установке этого бита шина SPI работает в режиме ведущего, при сбросе - в режиме ведомого. Если вывод SS сконфигурирован как вход и устанавливается в низкий уровень когда установлен бит MSTR, бит MSTR сбрасывается и устанавливается бит SPIF в регистре SPSR. Для возобновления работы в режиме ведущего пользователь должен установить этот бит.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34