Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП МПУ-13.doc
Скачиваний:
13
Добавлен:
01.04.2025
Размер:
6 Мб
Скачать
☆

3.3 Параллельный порт avr

Для наблюдения и управления каждым 8-разрядным портом (например, портом А) используются три 8-разрядных регистра в субпространстве РВВ – DDRA, PORTA и PINA. Это значит, что каждый из них подключен к внутренней системной магистрали по шине данных, имеет свой селектор адреса (коды адреса из файла описания МК: PORTA = 0x1b, DDRA = 0x1a, PINA = 0x19). Причем регистры DDRA, PORTA доступны по чтению и записи, то есть формально их можно использовать как ячейки оперативной памяти. Регистр PINA доступен только по чтению, так как служит лишь для наблюдения за состоянием 8 выводов PA0…PA7 независимо от настройки выводов на ввод или вывод.

3.4. Внешняя магистраль памяти данных avr мк

Для уменьшения числа выводов используется мультиплексирование шины данных (8 разрядов D0…D7) и адреса (16 разрядов A0…A15). Мультиплексирование заключается во временном разделении – сначала по 8 линиям AD0…AD7 передаются 8 младших бит адреса, затем – 8 бит данных, для синхронизации смены адреса на данные используется выход ALE (Address Latch Enable), для синхронизации вывода используется выход WR, для синхронизации ввода – выход RD. Всего 19 выводов МК AVR (рис. 13) позволяют иметь внешнее адресное пространство 64 килобайта, в нем могут располагаться как ячейки памяти данных, так и устройства ввода/вывода.

Для подключения внешних устройств (SRAM объемом 216 байт на рис. 3.1) необходима микросхема регистра-защелки для фиксации 8 младших разрядов адреса по сигналу ALE и разрешение работы с внешней памятью данных (бит SRE в регистре MCUCR). В этом случае линии порта А PA0…PA7 используются как AD0…AD7, линии порта С PC0…PC7 – как A8…A15, PD6 = WR, PD7 = RD, ALE – свободный вывод. Микросхема регистра-защелки по сигналу ALE записывает младшие разряды адреса (на входах D0…7) и фиксирует их на своих выходах (Q0…Q7) до следующей операции на внешней магистрали. Микросхема внешней памяти данных (SRAM) или внешнее устройство ввода/вывода с подобным интерфейсом, подключается двунаправленным портом D[7:0] к линиям порта А, входы адреса младшие разряды A[7:0] получают с регистра защелки, старшие A[15:8] – с выходов порта С, входы записи и чтения – к одноименным выходам МК.

Рис. 3.1

При соблюдении требований по времени выборки адреса обмен по внешней магистрали также может выполняться за одну команду (LDx/STx), для незначительного увеличения длительности цикла чтения или записи по внешней магистрали используются биты настройки SRW регистра MCUCR. На рис. 14, представлены временные диаграммы сигналов на линиях внешней магистрали. Обычный цикл обмена (рис. 3.2, а) занимает 3 машинных цикла, первый служит для фиксации младших разрядов адреса в регистре-защелке, во втором начинается, в третьем заканчивается процедура записи или чтения. Увеличенный цикл (рис. 3.2, б) занимает 4 машинных цикла, «пустой» цикл увеличивает интервал между началом и концом процедуры записи или чтения.

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

В среде моделирования Proteus VSM есть схемно-программный пример подключения внешней памяти данных объемом 64 КБ с временными диаграммами сигналов в процедурах записи и чтения. Меню «Справка  Примеры проектов» < \ Sample \ VSM for AVR \ AVR External Memory \ extram.dsn >.

а

б

Рис. 3.2

Для увеличения адресного пространства свыше 64 КБ можно использовать не задействованные линии параллельных портов – каждая линия увеличивает размер пространства вдвое. В этом случае для смены полного адреса необходимо менять сигналы на выходах портов. Пример подключения внешней памяти 512 КБ рассмотрен в [Баранов В.Н. Применение микроконтроллеров AVR: схемы, алгоритмы, программы. – М.: Издательский дом «Додэка-ХХI», 2004. – 288 с.].