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

 
 
> Подключаем 3,3V SDRAM к LPC3250
V_TC
сообщение Jun 7 2010, 15:33
Сообщение #1





Группа: Участник
Сообщений: 7
Регистрация: 1-06-10
Пользователь №: 57 676



Здравствуйте, уважаемые форумчане!
Помогите разобраться с подключением SDRAM к LPC3250. В доступных примерах подключения для питания SDRAM (или DDR SDRAM) используется напряжение 1,8 или 2,5В. Однако напряжение 3,3В для питания SDRAM заявлено в даташите как допустимое. Используем память MT48LC16M16A2BG-75IT при питании 3,3В. Схема подключения SDRAM к LPC3520 -
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
-= Александр =-
сообщение Oct 25 2010, 12:15
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 123
Регистрация: 15-10-07
Из: Санкт-Петербург
Пользователь №: 31 370



В общем устал тыркаться - взял какой-то пример - и все заработало! Дальше буду его ковырять....

Код
void SDRAMInit( void )
{
  DWORD i, dummy = dummy;

  /*************************************************************************
  * Initialize EMC and SDRAM
  *************************************************************************/
//  SCS     |= 0x00000002;        /* Reset EMC */
  EMC_CTRL = 0x00000001;        /*Disable Address mirror*/
  PCONP   |= 0x00000800;        /* Turn On EMC PCLK */
  PINSEL4  = 0x50000000;
  PINSEL5  = 0x05050555;
  PINSEL6  = 0x55555555;
  PINSEL8  = 0x55555555;
  PINSEL9  = 0x50555555;  
  
  EMC_DYN_RP     = 2;        /* command period: 3(n+1) clock cycles */
  EMC_DYN_RAS    = 3;        /* RAS command period: 4(n+1) clock cycles */
  EMC_DYN_SREX   = 7;        /* Self-refresh period: 8(n+1) clock cycles */
  EMC_DYN_APR    = 2;        /* Data out to active: 3(n+1) clock cycles */
  EMC_DYN_DAL    = 5;        /* Data in to active: 5(n+1) clock cycles */
  EMC_DYN_WR     = 1;        /* Write recovery: 2(n+1) clock cycles */
  EMC_DYN_RC     = 5;        /* Active to Active cmd: 6(n+1) clock cycles */
  EMC_DYN_RFC    = 5;        /* Auto-refresh: 6(n+1) clock cycles */
  EMC_DYN_XSR    = 7;        /* Exit self-refresh: 8(n+1) clock cycles */
  EMC_DYN_RRD    = 1;        /* Active bank A->B: 2(n+1) clock cycles */
  EMC_DYN_MRD    = 2;        /* Load Mode to Active cmd: 3(n+1) clock cycles */

  EMC_DYN_RD_CFG = 1;        /* Command delayed strategy */

  /* Default setting, RAS latency 3 CCLKs, CAS latenty 3 CCLKs. */
  EMC_DYN_RASCAS0 = 0x00000303;

#if ENG_BOARD_LPC24XX        /* NXP engineering board */
  /* 256MB, 16Mx16, 4 banks, row=12, column=9 */
  EMC_DYN_CFG0 = 0x00000480;
#else                        /* Embedded Artists board */
  /* 256MB, 16Mx16, 4 banks, row=13, column=9 */
  EMC_DYN_CFG0 = 0x00000680;
#endif
  delayMs(1, 100);            /* use timer 1 */

  /* Mem clock enable, CLKOUT runs, send command: NOP */
  EMC_DYN_CTRL = 0x00000183;
  delayMs(1, 200);            /* use timer 1 */
    
  /* Send command: PRECHARGE-ALL, shortest possible refresh period */
  EMC_DYN_CTRL = 0x00000103;

  /* set 32 CCLKs between SDRAM refresh cycles */
  EMC_DYN_RFSH = 0x00000002;
  for(i = 0; i < 0x40; i++);    /* wait 128 AHB clock cycles */
    
  /* set 28 x 16CCLKs=448CCLK=7us between SDRAM refresh cycles */
  EMC_DYN_RFSH = 28;
    
  /* To set mode register in SDRAM, enter mode by issue
  MODE command, after finishing, bailout and back to NORMAL mode. */    
  /* Mem clock enable, CLKOUT runs, send command: MODE */
  EMC_DYN_CTRL = 0x00000083;
  
  /* Set mode register in SDRAM */
  /* Mode regitster table for Micron's MT48LCxx */
  /* bit 9:   Programmed burst length(0)
     bit 8~7: Normal mode(0)
     bit 6~4: CAS latency 3
     bit 3:   Sequential(0)
     bit 2~0: Burst length is 8
     row position is 12 */
  dummy = *((volatile DWORD *)(SDRAM_BASE_ADDR | (0x33 << 12)));
  
  EMC_DYN_CTRL = 0x00000000;      /* Send command: NORMAL */

  EMC_DYN_CFG0 |= 0x00080000;      /* Enable buffer */
  delayMs(1, 1);                  /* Use timer 1 */
  return;

}



--------------------
Ниндзя - круче всех. Они умеют ходить по воде, делить на ноль и угадывать шаффл в АйПоде.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- V_TC   Подключаем 3,3V SDRAM к LPC3250   Jun 7 2010, 15:33
- - scorp1969   главное запитайте те IO которые относятся к SDRAM ...   Jun 8 2010, 10:35
- - V_TC   Проблема в следующем: в IAR EWARM v5.4 проект из п...   Jun 8 2010, 11:25
|- - scorp1969   Цитата(V_TC @ Jun 8 2010, 12:25) Проблема...   Jun 8 2010, 14:46
|- - toweroff   Цитата(scorp1969 @ Jun 8 2010, 18:46) у в...   Jun 8 2010, 15:15
|- - scorp1969   Цитата(toweroff @ Jun 8 2010, 16:15) +1 е...   Jun 8 2010, 15:19
- - zltigo   А слабо начать с написания простейших тестов памят...   Jun 8 2010, 11:51
- - V_TC   Согласен. Раз схема подключения SDRAM сомнений не ...   Jun 8 2010, 13:16
|- - zltigo   Цитата(V_TC @ Jun 8 2010, 16:16) Согласен...   Jun 8 2010, 13:18
- - V_TC   Мы рассчитывали на возможность использования 16-ти...   Jun 8 2010, 15:36
|- - scorp1969   Цитата(V_TC @ Jun 8 2010, 16:36) Так врод...   Jun 8 2010, 16:20
|- - scorp1969   вот тут 16 разрядныи пример CKE0 http://www.hitex-...   Jun 9 2010, 11:40
- - V_TC   Относительно последнего документа в нашей схеме не...   Jun 9 2010, 15:09
|- - scorp1969   Цитата(V_TC @ Jun 9 2010, 16:09) Относите...   Jun 9 2010, 15:15
- - V_TC   Попробуем сомкнуть эти выводы на самом процессоре   Jun 9 2010, 15:34
|- - scorp1969   Цитата(V_TC @ Jun 9 2010, 16:34) Попробуе...   Jun 9 2010, 15:42
- - V_TC   to scorp1969: Спасибо за помощь! Так и сделали...   Jul 6 2010, 07:52
- - -= Александр =-   Та-же ситуация - LPC2478 и память 3.3В MT48LC16M16...   Oct 25 2010, 09:40


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 02:33
Рейтинг@Mail.ru


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