Раздел: Документация
0 ... 44 45 46 47 48 49 50 ... 195 SRW01:SRW00 — для первого сектора и SRW11:SRW10 - для второго (Табл. 2.20). Таблица 2.20. Определение числа тактов ожидания
Временные диаграммы обращения к внешнему ОЗУ при различных установках битов SRWfll:SRWflO приведены на Рис. 2.24. Как уже было сказано, при работе с внешним ОЗУ используется 16-разрядная шина адреса, позволяющая адресовать 64К адресов. Однако для многих приложений не требуется такого большого объема внешней памяти. Специально для таких случаев все микроконтроллеры (за исключением модели ATmegal62x в режиме совместимости с ATmegal61x) позволяют уменьшить разрядность шины адреса. Число выводов порта С, задействованных под шину адреса, определяется содержимым битов ХММ2...ХММ0 в соответствии с Табл. 2.21. Незадействованные выводы могут использоваться как линии ввода/вывода общего назначения. Таблица 2.21. Задание разрядности старшего байта шины адреса
Тактовый сигнал (clkcpu) WR da7:0(xmbk = 0) da7:0 (хмвк=1) Рис. 2.24. Временные диаграммы обращения к внешнему ОЗУ: SRWai1:SRVvM) = 00 (а); = 01 (б); = 10 (в); = \ \ (г) Как было показано на Рис. 2.23, младшие адреса внешней памяти отображаются на адресное пространство внутреннего ОЗУ, в результате чего часть емкости внешнего ОЗУ остается незадействованной. Тем не менее, имеется возможность полного использования емкости микросхем внешнего ОЗУ Если объем внешнего ОЗУ меньше 64 Кбайт, то для доступа к младшим адресам внешнего ОЗУ достаточно просто использовать адреса, лежащие вне области физических адресов внешнего ОЗУ Поскольку старшие биты шины адреса не используются, то при обращении по этим адресам будут адресоваться ячейки внешнего ОЗУ с младшими адресами, начиная с 0x0000. Возьмем, к примеру, микроконтроллер ATmega 128х с внешним ОЗУ объемом 32 Кбайт (см. Рис. 2.25). В этом случае при обращении по адресам 0x8000...0x90FF мы будем в действительности обращаться к ячейкам внешнего ОЗУ с адресами 0x0000...0xl0FF. Таким образом, в распоряжении прикладной программы окажется линейная область памяти размером 32 Кбайт с адресами 0xll00...0x90FF. Значения этих адресов для других микроконтроллеров можно определить с помощью Рис. 2.12 и Рис. 2.15. Карта памяти AVRВнешнее СОЗУ 32К 0x0000 0x1 OFF 0x1100 0x7FFF 0x1 OFF 0x1100 0x7FFF 0x8000 0x90FF 0x9100 Внутренняя память He используется OxFFFF I-1 Рис. 2.25. Полное использование емкости микросхемы ОЗУ (32 Кбайт) на примере микроконтроллера ATmega 128х Второй способ полного использования емкости микросхем внешнего ОЗУ основан на программном управлении старшими битами адреса. Для выполнения этого «трюка» порт С должен быть настроен на вывод, а в защелке порта должно быть записано $00. При маскировании старших битов 0 ... 44 45 46 47 48 49 50 ... 195
|