F40-43a (1041604), страница 34
Текст из файла (страница 34)
Следующая последовательность команд осуществляет чтение байтапо адресу 0х1234 в аккумулятор А:MOV EMI0CN, #12h ; загрузка старшего байта адреса в регистр EMI0CNMOV R0, #34h; загрузка младшего байта адреса в регистр R0 (или R1)MOVX A, @R0; загрузка содержимого ячейки памяти с адресом 0х1234 в аккумулятор А175Ред. 1.3C8051F040/1/2/316.2. Настройка интерфейса внешней памятиНастройка интерфейса внешней памяти состоит из следующих этапов:1. Выбор связанных с EMIF портов: младшие (Р3, Р2, Р1 и Р0) или старшие (Р7, Р6, Р5 и Р4) порты.2.
Выбор режима работы EMIF: мультиплексированный или немультиплексированный.3. Выбор режима доступа к памяти:1) доступ только ко внутренней памяти;2) раздельный доступ без выбора банка;3) раздельный доступ с выбором банка;4) доступ только к внешней памяти.4. Настройка временных параметров EMIF в соответствии с динамическими характеристикамивнешней памяти или внешних периферийных модулей.5. Настройка выходов связанных портов (регистры PnMDOUT, P74OUT).Каждый из этих этапов подробно описывается в следующих разделах. Биты выбора связанных с EMIFпортов, биты выбора режима работы и режима доступа к памяти находятся в регистре EMI0CF (см.
рис.16.2).16.3. Выбор и настройка портовДля сигналов адреса/данных/управления EMIF могут использоваться порты Р0 – Р3 (C8051F040/1/2/3)или порты Р4 - Р7 (только C8051F040/2) , в зависимости от состояния бита PRTSEL (EMI0CF.5). Если выбранымладшие порты, то бит EMIFLE (XBR2.1) должен быть установлен в 1, тогда коммутирующая матрица будет«пропускать» сигналы P0.7 (/WR), P0.6 (/RD) и, если выбран мультиплексированный режим работы,P0.5 (/ALE). Подробная информация о настройке коммутирующей матрицы приведена в разделе 17.1.Интерфейсу внешней памяти требуются выводы связанных с ним портов только в течение выполнениякоманды MOVX, обращающейся к внешней памяти.
Как только команда MOVX завершается, управлениевозвращается защелкам портов или матрице (Р3, Р2, Р1 и Р0). Подробная информация о работе и настройкематрицы и портов приведена в разделе 17. Защелки портов следует явно настроить, чтобы перевестивыводы EMIF в состояние простоя. В большинстве случаев для этого необходимо установить их в 1.Во время выполнения команды MOVX интерфейс внешней памяти явным образом отключит драйверына всех выводах портов, которые работают как входы (например, Data[7:0] во время операции чтения).Функционирование EMIF не влияет на режим работы выходных драйверов выводов портов (являются ли онивыходами с открытым стоком или двухтактными), который определяется регистрами PnMDOUT.
Вбольшинстве случаев выходные драйверы всех выводов EMIF должны работать в режиме цифровыхдвухтактных выходов. Подробная информация о настройке выходов портов приведена в разделе 17.Ред. 1.3176C8051F040/1/2/3Рисунок 16.1. EMI0CN: Регистр управления интерфейсом внешней памятиR/WPGSEL7R/WPGSEL6R/WPGSEL5R/WPGSEL4R/WPGSEL3R/WPGSEL2Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2R/WPGSEL1Бит 1R/WPGSEL0Бит 0Значениепри сбросе:00000000SFR Адрес: 0xA2SFR страница: 0Биты 7-0: PGSEL[7:0]: Биты выбора страницы XRAMБиты выбора страницы XRAM образуют старший байт 16-битного адреса внешней памятиданных при использовании команды MOVX с 8-битным адресом, задавая таким образомнеобходимую 256-байтную страницу ОЗУ.0х00: 0x0000 – 0x00FF0х01: 0x0100 – 0x01FF…0хFE: 0xFE00 – 0xFEFF0xFF: 0xFF00 – 0xFFFFРисунок 16.2.
EMI0CF: Регистр конфигурации внешней памятиR/W-R/W-R/WPRTSELR/WEMD2R/WEMD1R/WEMD0Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2R/WEALE1Бит 1R/WEALE0Бит 0Значениепри сбросе:00000011SFR Адрес: 0xA3SFR страница: 0Биты 7-6: Не используются. Читаются как 00b.Бит 5:PRTSEL: Бит выбора портов, связанных с EMIF.0: Сигналы EMIF появляются на портах Р3 – Р0.1: Сигналы EMIF появляются на портах Р7 – Р4.Бит 4:EMD2: Бит выбора режима работы EMIF (мультиплексированный/немультиплексированный).0: EMIF работает в мультиплексированном режиме адреса/данных.1: EMIF работает в немультиплексированном режиме (отдельные выводы для адресов и данных).Биты 3-2: EMD1-0: Биты выбора режима доступа к памяти.Эти биты определяют, какая память будет доступна через интерфейс внешней памяти.00: Доступ только ко внутренней памяти: команда MOVX обращается только к встроенной памятиXRAM. Все действительные адреса указывают на пространство встроенной памяти.01: Раздельный доступ без выбора банка: Адреса до 4-Кбайтной границы указывают напространство встроенной памяти.
Адреса свыше 4-Кбайтной границы указывают напространство внешней памяти. Команда MOVX в 8-разрядной форме, обращающаяся квнешней памяти, использует содержимое защелок старшего порта адреса в качестве старшегобайта адреса. Следует иметь ввиду, что для доступа к внешнему пространству памяти регистрEMI0CN должен указывать на страницу, которая не содержится в пространстве встроеннойпамяти.10: Раздельный доступ с выбором банка: Адреса до 4-Кбайтной границы указывают напространство встроенной памяти. Адреса свыше 4-Кбайтной границы указывают напространство внешней памяти. Команда MOVX в 8-разрядной форме, обращающаяся квнешней памяти, использует содержимое регистра EMI0CN, чтобы определить старший байтадреса.11: Доступ только к внешней памяти: команда MOVX обращается только к внешней памятиXRAM.
Встроенная память XRAM не видима для процессорного ядра.Биты 1-0: EALE1-0: Биты выбора ширины импульса ALE (действуют только тогда, когда EMD2 = 0).00: TALEH = TALEL = 1 SYSCLK01: TALEH = TALEL = 2 SYSCLK10: TALEH = TALEL = 3 SYSCLK11: TALEH = TALEL = 4 SYSCLK177Ред. 1.3C8051F040/1/2/316.4. Мультиплексированный и не мультиплексированный режимы работыEMIF может работать в мультиплексированном или немультиплексированном режимах работы, взависимости от состояния бита EMD2 (EMI0CF.4).16.4.1.
Мультиплексированный режимВ мультиплексированном режиме шина данных и младшие 8 бит шины адреса разделяют одни и те жевыводы порта: AD[7:0]. В этом режиме для хранения младших 8 разрядов адреса ОЗУ используется внешнийрегистр-защелка (74НС373 или подобный). Этот внешний регистр-защелка управляется сигналом ALE,который обеспечивает логика интерфейса внешней памяти. Пример конфигурации с мультиплексированнойшиной адреса/данных приведен на рис.16.3.В мультиплексированном режиме выполнение команды MOVX, обращающейся к внешней памяти,разбивается на две фазы, определяемые состоянием сигнала ALE. В течение первой фазы сигнал ALE имеетвысокий уровень, а на выводы AD[7:0] выведены 8 младших разрядов шины адреса.
В течение этой фазырегистр-защелка адреса функционирует таким образом, что выходы ‘Q’ отражают состояние входов ‘D’. Когдасигнал ALE приобретает значение 0, что сигнализирует о начале второй фазы, выходы регистра-защелки адресафиксируются и более не зависят от уровней сигналов на входах регистра-защелки. Позднее во время второйфазы, когда на выводах AD[7:0] присутствуют сигналы шины данных, появляются сигналы /RD или /WR.Более подробная информация приведена в разделе 16.6.2.Рисунок 16.3.
Пример конфигурации с мультиплексированной шиной адреса/данныхA[15:8]ШИНА АДРЕСАA[15:8]74HC373EMIFGALEAD[7:0]ШИНА АДРЕСА/ДАННЫХDQA[7:0]VDD64K X 8SRAM8I/O[7:0]CEWEOE/WR/RDРед. 1.3178C8051F040/1/2/316.4.2. Немультиплексированный режимВ немультиплексированном режиме для шины адреса и шины данных используются отдельныевыводы. Пример конфигурации с немультиплексированной шиной адреса/данных приведен на рис.16.4. Болееподробная информация о немультиплексированном режиме приведена в разделе 16.6.1.Рисунок 16.4. Пример конфигурации с немультиплексированной шиной адреса/данныхEMIF179A[15:0]ШИНА АДРЕСАA[15:0]VDD8D[7:0]ШИНА ДАННЫХ64K X 8SRAMI/O[7:0]CEWEOE/WR/RDРед. 1.3C8051F040/1/2/316.5.
Выбор режима доступа к памятиПространство внешней памяти данных можно настроить на один из четырех режимов доступа (см.рис.16.5), для чего используются биты EMD1-0 (EMI0CF.[3:2]). Описание этих режимов приводится ниже.Дополнительную информацию о различных режимах работы можно найти в разделе 16.6.16.5.1.
Режим доступа только к внутренней памяти XRAMКогда EMI0CF.[3:2] = ‘00’, все команды MOVX будут обращаться к адресному пространствувнутренней памяти XRAM микроконтроллера. Все адреса за пределами занятого адресного пространства будутуказывать на ячейки из первой 4-Кбайтной области памяти. Например, адреса 0х1000 и 0х2000 указывают наячейку с адресом 0х0000 встроенной памяти XRAM.- Команда MOVX в 8-разрядной форме использует содержимое регистра EMI0CN для определениястаршего байта полного адреса и регистры R0 или R1 для определения младшего байта полногоадреса.- Команда MOVX в 16-разрядной форме для определения полного адреса использует содержимое16-разрядного указателя данных DPTR.16.5.2.
Режим раздельного доступа без выбора банкаКогда EMI0CF.[3:2] = ‘01’, пространство памяти XRAM делится на две области: пространствовстроенной памяти и пространство внешней памяти.- Адреса, расположенные ниже 4-Кбайтной границы, будут указывать на пространство встроеннойпамяти XRAM.- Адреса, расположенные выше 4-Кбайтной границы будут, указывать на пространство внешнейпамяти.- При использовании команды MOVX в 8-разрядной форме содержимое регистра EMI0CNопределяет, осуществляется ли доступ к встроенной памяти или к внешней памяти. Значениямладших 8 разрядов шины адреса определяются содержимым регистров R0 или R1. Однако, врежиме «без выбора банка», при обращении к внешней памяти посредством команды MOVX в 8разрядной форме старшие 8 разрядов A[15:8] шины адреса не будут выдаваться на внешниевыводы. Это позволяет пользователю манипулировать старшими битами адреса как угодно,непосредственно устанавливая состояние порта.
Такое поведение отличает данный режим отописанного ниже режима раздельного доступа с выбором банка.- При использовании команды MOVX в 16-разрядной форме содержимое регистра указателя данныхDPTR определяет, осуществляется ли доступ к встроенной памяти или к внешней памяти. В этомслучае, в отличие от команды MOVX в 8-разрядной форме, при обращении к внешней памяти навнешние выводы выдаются все 16 разрядов A[15:0] шины адреса.Рисунок 16.5.
Режимы работы интерфейса внешней памятиEMI0CF[3:2] = 00Встроеннаяпамять XRAMEMI0CF[3:2] = 010xFFFFВстроеннаяпамять XRAMВстроеннаяпамять XRAMEMI0CF[3:2] = 10EMI0CF[3:2] = 110xFFFF0xFFFFВнешняя(не встроенная)память(без выборабанка)Внешняя(не встроенная)память(с выборомбанка)Встроеннаяпамять XRAMВстроеннаяпамять XRAM0xFFFFВнешняя(не встроенная)памятьВстроеннаяпамять XRAMВстроеннаяпамять XRAMВстроеннаяпамять XRAM0x00000x0000Ред. 1.30x00000x0000180C8051F040/1/2/316.5.3. Режим раздельного доступа с выбором банкаКогда EMI0CF.[3:2] = ‘10’, пространство памяти XRAM делится на две области: пространствовстроенной памяти и пространство внешней памяти.- Адреса, расположенные ниже 4-Кбайтной границы, будут указывать на пространство встроеннойпамяти XRAM.- Адреса, расположенные выше 4-Кбайтной границы будут, указывать на пространство внешнейпамяти.- При использовании команды MOVX в 8-разрядной форме содержимое регистра EMI0CNопределяет, осуществляется ли доступ к встроенной памяти или к внешней памяти.