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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> boot LPC2478 STK from external flash
andybeg
сообщение May 28 2010, 12:53
Сообщение #16


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

Группа: Участник
Сообщений: 133
Регистрация: 30-11-06
Пользователь №: 22 954



в lowlevel_init.c была найдена закомментированная функция, но её раскоментирование и вставка в инициалзацию схемы не решило проблемы sad.gif запись в NOR не производится

Код
/******************************************************************************

** Function name:        ConfigureEMC

**

** Descriptions:        Configure EMC for external SDRAM, NAND and NOR FLASH

** parameters:            None

** Returned value:    None

**

******************************************************************************/

void

ConfigureEMC(void)

{

    volatile unsigned int i, dummy = dummy;



//  SCS     &= ~0x00000002;

//  SCS     |= 0x00000002;

  EMC_CTRL = 0x00000001;

    PCONP   |= 0x00000800;        /* Turn on EMC PCLK */

  PINSEL4  = 0x50000000;

#ifdef USE_32_BIT_DATABUS

  PINSEL5  = 0x55010115;

  PINSEL7  = 0x55555555;

#else

  PINSEL5  = 0x05050555;

#endif

  PINSEL6  = 0x55555555;

  PINSEL8  = 0x55555555;

  PINSEL9  = 0x50555555;



  //all registers...

#ifdef USE_32_BIT_DATABUS

  EMC_DYN_RP     = 1;   //>20ns = 2 clk

  EMC_DYN_RAS    = 3;   //>45ns = 3 clk

  EMC_DYN_SREX   = 5;   //>80-100ns = 6 clk

  EMC_DYN_APR    = 1;   //

  EMC_DYN_DAL    = 5;   //2 clk

  EMC_DYN_WR     = 1;   //2 clk

  EMC_DYN_RC     = 5;   //>65ns = 4 clk

  EMC_DYN_RFC    = 5;   //>80-100ns = 6 clk

  EMC_DYN_XSR    = 5;   //>80-100ns = 6 clk

  EMC_DYN_RRD    = 1;   //>15ns = 1-2 clk

  EMC_DYN_MRD    = 1;   //2 clk

  EMC_DYN_RD_CFG = 1;   //or 1,2,3

    

  //

  EMC_DYN_RASCAS0 = 0x00000202;



  //

  EMC_DYN_CFG0 = 0x00005480;

#else

  EMC_DYN_RP     = 2;   //>20ns = 2 clk

  EMC_DYN_RAS    = 3;   //>45ns = 3 clk

  EMC_DYN_SREX   = 7;   //>80-100ns = 6 clk

  EMC_DYN_APR    = 2;   //

  EMC_DYN_DAL    = 5;   //2 clk

  EMC_DYN_WR     = 1;   //2 clk

  EMC_DYN_RC     = 5;   //>65ns = 4 clk

  EMC_DYN_RFC    = 5;   //>80-100ns = 6 clk

  EMC_DYN_XSR    = 7;   //>80-100ns = 6 clk

  EMC_DYN_RRD    = 1;   //>15ns = 1-2 clk

  EMC_DYN_MRD    = 2;   //2 clk

  EMC_DYN_RD_CFG = 1;   //or 1,2,3

    

  //

  EMC_DYN_RASCAS0 = 0x00000303;

    

  //

  EMC_DYN_CFG0 = 0x00000680;

#endif

    

  //wait 100mS

  delayMs(100);



  //Send command: NOP

  EMC_DYN_CTRL = 0x00000183;

    

  //wait 200mS

  delayMs(200);

    

  //Send command: PRECHARGE-ALL, shortest possible refresh period

  EMC_DYN_CTRL = 0x00000103;

  EMC_DYN_RFSH = 0x00000002;

    

  //wait 128 ABH clock cycles

  for(i=0; i<0x40; i++)

    asm volatile(" nop");

    

  //Set correct refresh period

  EMC_DYN_RFSH = 28;

    

  //Send command: MODE

  EMC_DYN_CTRL = 0x00000083;

    

  //Set mode register in SDRAM

#ifdef USE_32_BIT_DATABUS

  dummy = *((volatile unsigned int*)(SDRAM_BASE_ADDR | (0x22 << 11)));

#else

  dummy = *((volatile unsigned int*)(SDRAM_BASE_ADDR | (0x33 << 12)));

#endif



  //Send command: NORMAL

  EMC_DYN_CTRL = 0x00000000;



  //Enable buffer

  EMC_DYN_CFG0 |= 0x00080000;



  //initial system delay

  delayMs(1);



  EMC_STA_WAITWEN0  = 0x2;

  EMC_STA_WAITOEN0  = 0x2;

  EMC_STA_WAITRD0   = 0x1f;

  EMC_STA_WAITPAGE0 = 0x1f;

  EMC_STA_WAITWR0   = 0x1f;

  EMC_STA_WAITTURN0 = 0xf;

  EMC_STA_CFG0      = 0x00000081;



  EMC_STA_WAITWEN1  = 0x2;

  EMC_STA_WAITOEN1  = 0x2;

  EMC_STA_WAITRD1   = 0x8;

  EMC_STA_WAITPAGE1 = 0x1f;

  EMC_STA_WAITWR1   = 0x8;

  EMC_STA_WAITTURN1 = 0xf;

  EMC_STA_CFG1      = 0x00000080;



}


Код
lpc-2478-stk # fatload usb 0 0x80800000 romfs_5.img
reading romfs_5.img
........................................................

581632 bytes read
lpc-2478-stk # md 0x80800000
80800000: ffffffff ffffffff ffffffff ffffffff    ................
80800010: ffffffff ffffffff ffffffff ffffffff    ................
80800020: ffffffff ffffffff ffffffff ffffffff    ................
80800030: ffffffff ffffffff ffffffff ffffffff    ................
80800040: ffffffff ffffffff ffffffff ffffffff    ................
80800050: ffffffff ffffffff ffffffff ffffffff    ................
80800060: ffffffff ffffffff ffffffff ffffffff    ................
80800070: ffffffff ffffffff ffffffff ffffffff    ................
80800080: ffffffff ffffffff ffffffff ffffffff    ................
80800090: ffffffff ffffffff ffffffff ffffffff    ................
808000a0: ffffffff ffffffff ffffffff ffffffff    ................
808000b0: ffffffff ffffffff ffffffff ffffffff    ................
808000c0: ffffffff ffffffff ffffffff ffffffff    ................
808000d0: ffffffff ffffffff ffffffff ffffffff    ................
808000e0: ffffffff ffffffff ffffffff ffffffff    ................
808000f0: ffffffff ffffffff ffffffff ffffffff    ................
Go to the top of the page
 
+Quote Post

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

 


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


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