Пробую запустить EMC контроллер на LPC2378.
Внешняя SRAM память CY7C1049CV33-15VXC ( 512K x 8).
Про ERRATA насчет EMC знаю
EMC.1: Write operation cannot be performed on the external memory bus
Introduction: The External Memory Controller supports asynchronous static memory device support including
RAM, ROM, and Flash, with or without asynchronous page mode.
Problem: Write operation is not operational.
Workarounds: Using all the EMC pins as GPIO pins, the write operation can be simulated in software.
Попробовал симулировать EMC контроллер программным путем используя IO's.
Все работает отлично. Память пишется и читается. Т.е. проблем с аппаратной частью нет.
Но по некоторым сведениям в новых версиях LPC2378 контроллер внешней памяти должен работать.
Это инициализированные регистры EMC
EMC_CTRL=0x1
EMC_STA_CFG0=0x100
EMC_STA_WAITWEN0(MAX 0x0F)=0xF
EMC_STA_WAITOEN0(MAX 0x0F)=0xF
EMC_STA_WAITRD0(MAX 0x1F)=0x1F
EMC_STA_WAITPAGE0(MAX 0x1F)=0x1F
EMC_STA_WAITWR0(MAX 0x1F)=0x1F
EMC_STA_WAITTURN0(MAX 0x3F)=0xF
При операции записи вижу осциллографом, что СS и WR выводы работают как им и положено.
При операции чтения вижу осциллографом, что СS работает. Но OE не работает. Висит там 2.2V постоянно.
Шина данных и адресов похоже, что работает также.
PINSEL9 иницализирован
// Control Bus
// OE
PINSEL9 &=(~((1UL<<16)|(1UL<<17)));
PINSEL9 |=(1UL<<17);
// WE
PINSEL9 &=(~((1UL<<18)|(1UL<<19)));
PINSEL9 |=(1UL<<19);
// CS0
PINSEL9 &=(~((1UL<<28)|(1UL<<29)));
PINSEL9 |=(1UL<<28);
Интересная вещь. Запись похоже, что работает.
А чтение не работает. Т.е. все наоборот, если мы сравним с ERRATA SHEET :-)
В чем могут быть проблемы с OE ?