реклама на сайте
подробности

 
 
> LPC2378 и контроллер внешней SRAM памяти, Не работает OE выход
MiniMax
сообщение Feb 15 2008, 10:58
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 12-09-07
Пользователь №: 30 498



Пробую запустить 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 ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Vitaliy_ARM
сообщение Feb 15 2008, 14:53
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246



Работаю с LPC2468. Инициализация вот:

Код
//------------------------------------------------------------------------------
//* Инициализация контроллера SRAM
void SramInit(void)
{  
  DWORD dummy = dummy;
  //*************************************************************************
  //* Инициализация EMC and SRAM
  //*************************************************************************
  //  SCS     |= 0x00000002;    /* Reset EMC */
  EMC_CTRL = 0x00000003;        /* Enable Address mirror*/
  PCONP   |= 0x00000800;        /* Turn On EMC PCLK */
  // Конфигурация портов ввода/вывода
  // P3.0 - P3.7 => D0 - D7
  // P4.0 - P4.15 => A0 - A15
  // P4.24 = ~OE
  // P4.25 = ~WE
  // P4.30 = CS0
  // P4.31 = CS1
  //* шина данных подключена полностью
  PINSEL6  = 0x55555555;
  PINSEL7  = 0x55555555;
  //* шина адреса 12 разрадная  
  PINSEL8  = 0x00555555;
  PINSEL9  = 0x00010000;
  
  EMC_CONFIG        = 0;    // Litle indian
  // Шина 32 бит
  // POR включен
  // Чип селект по высокому уровню
  // Extended wait disabled
  // Write bufer disabled
  // Write not protected
  EMC_STA_CFG0      = (1<<6)|(1<<3)|(1<<1); // Async page mode enabled (page length four).
  delayMs(100);
  EMC_STA_WAITWEN0  = 0;
  EMC_STA_WAITOEN0  = 0;
  EMC_STA_WAITRD0   = 0;
  EMC_STA_WAITPAGE0 = 0;
  EMC_STA_WAITWR0   = 0;
  EMC_STA_WAITTURN0 = 0xF;
  delayMs(100);    
  // Шина 32 бит
  // POR включен
  // Чип селект по высокому уровню
  // Extended wait disabled
  // Write bufer disabled
  // Write not protected
  EMC_STA_CFG1        = (1<<6)|(1<<3)|(1<<1);
  delayMs(100);
  EMC_STA_WAITWEN1  = 0;  
  EMC_STA_WAITOEN1  = 0;
  EMC_STA_WAITRD1   = 0;
  EMC_STA_WAITPAGE1 = 0;
  EMC_STA_WAITWR1   = 0;
  EMC_STA_WAITTURN1 = 0xF;
  delayMs(100);
  return;
}


Откорректируйте для 8 битной шины PINSEL и EMC_STA_CFG регистры по даташиту и должно завестись.


--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
Go to the top of the page
 
+Quote Post
MiniMax
сообщение Feb 15 2008, 15:01
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 12-09-07
Пользователь №: 30 498



Похоже, что Вы стартовали с кода в Keil примерах
http://www.standardics.nxp.com/support/doc...4xx.uvision.zip
Это EXTMEM example.
Но по поводу этого примера они говорят в README файле: "( LPC24xx only, tested on Embedded Artists LPC24xx OEM board)"
И у Вас как раз LPC2468. Не сомневаюсь , что это работает на LPC2468.
Но у меня LPC2378 :-( А вот с этим чипом большой вопрос.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 19:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01367 секунд с 7
ELECTRONIX ©2004-2016