Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по типам > Микроконтроллеры > AVR > Архитектура ATMega128 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Интерфейс внешней памятиХарактеристики интерфейса внешней памяти позволяет его использовать не только для подключения к внешнему статическому ОЗУ или флэш-памяти, но и в качестве интерфейса с внешними периферийными устройствами, например, ЖК-дисплеи, АЦП и ЦАП. Его основными отличительными особенностями являются:
Краткий обзор После разрешения внешней памяти (XMEM) становится доступным адресное пространство за пределами внутреннего статического ОЗУ через предопределенные для этой функции выводы (см. рис. 1, табл. 27, табл. 33 и табл. 45). Конфигурация памяти показана на рис. 11.
Прим. : Когда ATmega128 находится не в режиме совместимости с ATmega103, то доступна конфигурация памяти А ( конфигурация B не доступна), а когда ATmega128 в режиме совместимости с ATmega103, то доступна только конфигурация В. Совместимость с ATmega103 Оба регистра управления внешней памятью (XMCRA и XMCRB) размещены в расширенном пространстве ввода-вывода. В режиме совместимости с ATmega103 эти регистры и функции, управляемые через них, не доступны. Но микроконтроллер сохранит совместимость, т.к. эти функции не поддерживаются у ATmega103. Ограничения на режим совместимости с ATmega103 следующие:
Использование интерфейса внешней памяти Интерфейс состоит из:
Биты управления интерфейсом внешней памяти расположены в трех регистрах: регистр управления микроконтроллером – MCUCR, регистр А управления внешней памятью – XMCRA и регистр В управления внешней памятью – XMCRB. После разрешения работы интерфейс XMEM изменит настройки регистров направления данных портов, линии которых предопределены для выполнения функций интерфейса XMEM. Более подробная информация об изменении настроек порта приведена в разделе "Порты ввода-вывода" при рассмотрении альтернативных функций. Интерфейс XMEM автоматически определяет к какой памяти внешней или внутренней осуществляется доступ. Во время доступа к внешней памяти интерфейс XMEM будет формировать сигналы шин адреса, данных и управления на линиях порта в соответствии с рисунком 13 (на рисунке представлены формы сигналов без состояний ожидания). При переходе ALE из 1 в 0 на линиях AD7:0 будут присутствовать действительные адресные сигналы. ALE находится на низком уровне во время передачи данных. После разрешения работы интерфейса XMEM доступ к внутренней памяти будет вызывать изменения на шинах данных и адреса, а также строба ALE, при этом, стробы RD и WR останутся неизменными. После запрета работы интерфейса внешней памяти используются обычные установки выводов и направления данных. Обратите внимание, что после отключения интерфейса XMEM адресное пространство свыше внутреннего ОЗУ не связано с последним. Рисунок 12 иллюстрирует как подключить внешнее статическое ОЗУ к AVR-микроконтроллеру с помощью 8-разр. регистра (например, “74x573” или аналогичный), который передает данные напрямую при высоком уровне на входе G. Требования по фиксации адреса Интерфейс XRAM характеризуется высоким быстродействием из-за чего фиксация адреса должна выполняться с осторожностью при частотах свыше 8МГц при 4В и 4МГц при 2.7В. При использовании более высоких частот применение регистров устаревшей серии 74HC будет неадекватным. Интерфейс внешней памяти разработан для совместимости с регистрами серии 74AHC. Однако, большинство регистров может быть использовано, если они отвечают требованиям временной диаграммы. К основным параметрам, характеризующих фиксацию адреса, относятся:
Интерфейс внешней памяти разработан с учетом того, что после приложения низкого уровня на вход регистра G время удержания адреса tH составит до 5 нс. См. временные характеристики tLAXX_LD/tLLAXX_ST в таблицах 137…144. Задержка распространения с входа D на выход Q (tPD) должна быть учтена при вычислении требования по времени доступа к внешней памяти. Время установки данных перед тем как G станет равным 0 (tSU) должно не превышать разности времен действительного адреса до низкого уровня ALE (tAVLLC) и задержек в печатных проводниках (определяют емкостную нагрузку).
Подтягивающие резисторы и устройство запоминания состояния шины Подтягивающие к плюсу резисторы на линиях AD7:0 могут быть активизированы, если записать единицы в регистр соответствующего порта. Для снижения потребляемой мощности в режиме сна рекомендуется отключать подтягивающие резисторы путем записи нуля в регистр порта непосредственно перед переводом в режим сна. Интерфейс XMEM также содержит устройство запоминания состояния шины на линиях AD7:0 Устройство запоминания состояния шины может быть программно подключено и отключено как описано в подразделе “Управляющий регистр В внешней памяти – XMCRB”. После активизации устройство запоминания состояния шины будет сохранять предыдущее состояние шины AD7:0 при переводе этих линий интерфейсом XMEM в третье состояние. Временная диаграмма Микросхемы внешней памяти характеризуются различными параметрами временных диаграмм. Для удовлетворения этих требований интерфейс XMEM у ATmega128 обеспечивает различные состояния ожидания (см. табл. 4). Перед выбором состояний ожидания очень важно уточнить требования к временной диаграмме микросхемы внешней памяти. Самыми главными параметрами являются время доступа к внешней памяти по сравнению с требованием по установке у ATmega128. Время доступа к внешней памяти определяется как промежуток времени с момента выбора микросхемы памяти и установки адреса до появления действительных данных соответствующих указанному адресу на шине. Время доступа не может превышать времени с момента установки импульса ALE к низкому уровню до стабильного установления данных во время чтении (см. tLLRL+ tRLRH - tDVRH в таблицах 137…144). Различные состояния ожидания устанавливаются программно. Реализована дополнительная функция, которая позволяет разделить внешнюю память на два сектора и для каждого из них индивидуально выполнить настройку состояний ожидания. Это делает возможным подключить две различных микросхемы памяти с различными требованиями к временной диаграмме доступа через один и тот же интерфейс XMEM. Характеристики временной диаграммы интерфейса XMEM приведены в таблицах 137… 144 и на рисунках 156…159 в разделе “Временная диаграмма внешней памяти данных”. Обратите внимание, что интерфейс XMEM –асинхронный и что форма сигналов на следующих рисунках связана с внутренней синхронизацией. Расхождение между внутренней и внешней синхронизацией (XTAL1) не гарантируется (зависит от температуры и напряжения питания микросхем). Следовательно, интерфейс XMEM не подходит для синхронной работы.
Прим: 1. SRWn1 = SRW11 (верхний сектор) или SRW01 (нижний сектор), SRWn0 = SRW10 (верхний сектор) или SRW00 (нижний сектор). Импульс ALE присутствует на такте T5, только если следующая инструкция осуществляет доступ к ОЗУ (внутреннему или внешнему).
Прим: 1. SRWn1 = SRW11 (верхний сектор) или SRW01 (нижний сектор), SRWn0 = SRW10 (верхний сектор) или SRW00 (нижний сектор). Импульс ALE присутствует на такте T5 только если следующая инструкция осуществляет доступ к ОЗУ (внутреннему или внешнему).
Прим.: 1. SRWn1 = SRW11 (верхний сектор) или SRW01 (нижний сектор), SRWn0 = SRW10 (верхний сектор) или SRW00 (нижний сектор). Импульс ALE на такте T6 присутствует только если следующая инструкция осуществляет доступ к ОЗУ (внутреннему или внешнему).
Прим: 1. SRWn1 = SRW11 (верхний сектор) или SRW01 (нижний сектор), SRWn0 = SRW10 (верхний сектор) или SRW00 (нижний сектор). Импульс ALE на такте T7 присутствует только, если следующая инструкция осуществляет доступ к ОЗУ (внешнему или внутреннему). Описание регистра XMEM Регистр управления микроконтроллером– MCUCR Разряд 7 – SRE: Разрешение внешнего статического ОЗУ/XMEM Запись в SRE лог. 1 разрешает работу интерфейса внешней памяти, после чего выводы AD7:0, A15:8, ALE, WR и RD выполняют свои альтернативные функции. После установки бита SRE игнорируются любые установки в соответствующих регистрах направления данных. Запись в SRE нуля отключает интерфейс внешней памяти, после чего вступают в силу обычные функции выводов и установки направления. Разряд 6 – SRW10: Бит выбора состояния ожидания При работе микроконтроллера не в режиме совместимости с ATmega103 описание действия данного бита подробно описывается ниже при рассмотрении бит SRWn регистра XMCRA. В режиме совместимости с ATmega103 запись в SRW10 лог. 1 разрешает состояние ожидание и один дополнительный период добавляется к стробу чтения/записи как показано на рис. 14. Регистр А управления внешней памятью – XMCRA Разряд 7 – Зарезервированный бит Данный разряд является зарезервированным и всегда читается как 0. Во время записи в данной позиции необходимо указывать 0 для совместимости с последующими микроконтроллерами. Разряд 6..4 – SRL2, SRL1, SRL0: Задание границ секторов с состоянием ожидания Имеется возможность установить различные состояния ожидания для различных адресов внешней памяти. Адресное пространство внешней памяти может быть разделено на два сектора, каждый их которых имеет собственные биты выбора состояний ожидания. Биты SRL2, SRL1 и SRL0 определяют разбиение секторов (см. табл. 3 и рис. 11). По умолчанию значение бит SRL2, SRL1 и SRL0 равно нулю и все адресное пространство внешней памяти обслуживается как один сектор. Если все адресное пространство статического ОЗУ конфигурируется как один сектор, то состояния ожидания определяются битами SRW11 и SRW10. Таблица 3 – Границы секторов памяти при различных настройках SRL2..0
Разряд 1 и разряд 6 регистра MCUCR – SRW11, SRW10: Биты выбора состояний ожидания для верхнего сектора Биты SRW11 и SRW10 задают число состояний ожидания для верхнего сектора внешней памяти в соответствии с рисунком 4. Разряды 3..2 – SRW01, SRW00: Биты выбора состояний ожидания для нижнего сектора Биты SRW01 и SRW00 задают число состояний ожидания для нижнего сектора внешней памяти (см. табл. 4). Таблица 4 – Состояния ожидания (1)
Прим.: 1. n = 0 или 1 для нижнего или верхнего сектора, соответственно. На рисунках 13…16 представлены временные диаграммы, которые соответствуют различным установкам бит SRW. Разряд 0 – Зарезервированный бит Данный бит является зарезервированным, поэтому, всегда считывается как ноль. Если осуществляется запись в данную ячейку, то для совместимости с последующими микроконтроллерами рекомендуется в позиции данного бита указывать 0. Регистр В управления внешней памятью – XMCRB Разряд 7– XMBK: Разрешение работы устройства запоминания состояния шины внешней памяти Запись в XMBK лог. 1 разрешает работу устройства запоминания состояния шины на линиях AD7:0. После его активизации AD7:0 будут запоминать последнее установленное состояние, даже если интерфейс XMEM перевел линии в третье состояние. Запись в XMBK лог. 0 означает запрет работы устройства запоминания состояния шины. XMBK не подчинен SRE, так что даже если интерфейс XMEM отключен, то устройство запоминания состояния шины будет активным до тех пор пока XMBK=1. Разряды 6..4 – Зарезервированные разряды Данные разряды являются зарезервированными для будущих микроконтроллеров, поэтому, для совместимости с ними рекомендуется записывать в данные позиции лог. 0 во время записи в данный регистр. Разряды 2..0 – XMM2, XMM1, XMM0: Маска старших адресных разрядов внешней памяти После разрешения внешней памяти все выводы порта С по умолчанию используются в качестве старшего адресного байта. Если нет необходимости адресоваться ко всему 60 кбайтному пространству внешней памяти, то свободные адресные линии возможно использовать в качестве универсального ввода-вывода (см. табл. 5). Использование бит XMMn позволяет адресоваться ко всем 64 кбайт ячейкам внешней памяти (см. “Использование всех 64 кбайт ячеек внешней памяти". Таблица 5 – Использование старших адресных сигналов в качестве линий универсального ввода-вывода после разрешения внешней памяти
Использование всех ячеек внешней памяти размером менее 64 кбайт Поскольку в соответствии с рисунком 11 адресное пространство внешней памяти следует за адресным пространством внутренней, то к младшим 4352 ячейкам внешней памяти не возможно адресоваться (адреса 0x0000…0x10FF). Однако, при подключении внешней памяти размером менее 64 кбайт, например, 32 кбайт к этим ячейкам можно легко адресоваться по адресам 0x8000…0x90FF. Поскольку адресный бит внешней памяти А15 не подключен к внешней памяти, то адреса 0x8000…0x90FF будут выступать в качестве адресов 0x0000…0x10FF для внешней памяти. Адресация по адресам свыше 0x90FF не рекомендуется, т.к. может затронуть ячейку внешней памяти, доступ к которой уже осуществлялся по другому (меньшему) адресу. Для прикладной программы 32 кбайта внешней памяти будут представлять линейное адресное пространство с адресами 0x1100…0x90FF (см. рис. 17). Конфигурация памяти В относится к режиму совместимости с ATmega103, а конфигурация памяти А к нормальному режиму работы. Когда микроконтроллер находится в режиме совместимости с ATmega103 внутренняя память занимает 4096 байт. Это означает, что 4096 байт внешней памяти могут быть доступны по адресам 0x8000…0x8FFF. Для прикладной программы внешняя память размером 32 кбайт в этом случае будет линейным адресным пространством в диапазоне адресов 0x1000…0x8FFF.
Использование всех 64 кбайт ячеек внешней памяти Поскольку, внешняя память располагается после внутренней памяти, как показано на рис. 11, то только 60 кбайт внешней памяти доступно по умолчанию (адресное пространство от 0x0000 до 0x10FF зарезервировано для внутренней памяти). Однако, имеется возможность использовать весь объем внешней памяти путем маскирования старших адресных разрядов к нулю. Это может быть выполнено с помощью бит XMMn и программного управления старшими адресными разрядами. Интерфейс памяти будет иметь диапазон адресов 0x0000 - 0x1FFF, если установить на выходе порта С значение 0x00 и выбрать работу старших адресных разрядов как обычных линий ввода-вывода. См. нижеприведенные примеры. Пример кода на Ассемблере (1) ; Определено СМЕЩЕНИЕ OFFSET=0x2000 для гарантирования доступа к внешней памяти ; Конфигурируем порт С (старший байт адреса ) на вывод 0x00, после чего настраиваем выводы ; на выполнение функций обычного порта ldi r16, 0xFF out DDRC, r16 ldi r16, 0x00 out PORTC, r16 ; освобождаем PC7:5 от адресных функций ldi r16, (1<<XMM1)|(1<<XMM0) sts XMCRB, r16 ; запись 0xAA по адресу 0x0001 внешней памяти ldi r16, 0xaa sts 0x0001+OFFSET, r16 ; Разрешаем снова работу PC7:5 как адресных линий ldi r16, (0<<XMM1)|(0<<XMM0) sts XMCRB, r16 ; Запись 0x55 по адресу (OFFSET + 1) внешней памяти ldi r16, 0x55 sts 0x0001+OFFSET, r16 Пример кода на Си (1) #define OFFSET 0x2000 void XRAM_example(void) { unsigned char *p = (unsigned char *) (OFFSET + 1); DDRC = 0xFF; PORTC = 0x00; XMCRB = (1<<XMM1) | (1<<XMM0); *p = 0xaa; XMCRB = 0x00; *p = 0x55; } Прим.: 1. В примере предполагается, что включена часть специфического файла заголовка.
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|