This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

5502 fails to write SDRAM

Other Parts Discussed in Thread: TMS320VC5502

I have a problem in interfacing tms320vc5502 with hynix SDRAM HY57V161610D-10I which is 2bank*512k*16bit. The SDRAM connects to CE3. I am not capable of modifying the data in the memory window of CCS, which indicates DSP fails to write the SDRAM. In order to test the timing sequence of write, I keeps writing to the SDRAM. From what i observed, SDCAS can be pulled low with the CE3 . However, SDRAS keeps high except the case of auto reflesh of the SDRAM. I didn't see the ACTV signal. I have configured the EMIF register below. What could the problem be if SDRAS can not be pulled low? Thanks.

 

EMIF_Config MyEmifConfig = {

EMIF_GBLCTL1_RMK(                    // EMIF Global Control Register 1

  EMIF_GBLCTL1_NOHOLD_HOLD_ENABLED,    // Hold enable

  EMIF_GBLCTL1_EK1HZ_EK1EN,            // High-Z control                  

  EMIF_GBLCTL1_EK1EN_ENABLED        // ECLKOUT1 Enable

  ),

EMIF_GBLCTL2_RMK(                    // EMIF Global Control Register 2

  EMIF_GBLCTL2_EK2RATE_1XCLK,        // ECLKOUT2 Rate

  EMIF_GBLCTL2_EK2HZ_EK2EN,            // EK2HZ = 0, ECLKOUT2 is driven with value specified by EKnEN during

  EMIF_GBLCTL2_EK2EN_ENABLED        // ECLKOUT2 Enable (enabled by default)

  ), 

EMIF_CE1CTL1_RMK(                    // CE1 Space Control Register 1

  EMIF_CE1CTL1_TA_OF(3),            // Turn-Around time

  EMIF_CE1CTL1_READ_STROBE_OF(6),    // Read strobe width

  EMIF_CE1CTL1_MTYPE_16BIT_ASYNC,    // Access type

  EMIF_CE1CTL1_WRITE_HOLD_MSB_LOW,    // Write hold width MSB bitHIGH

  EMIF_CE1CTL1_READ_HOLD_OF(3)        // Read hold width

  ),

EMIF_CE1CTL2_RMK(                    // CE1 Space Control Register 2

  EMIF_CE1CTL2_WRITE_SETUP_OF(4),    // Write setup width

  EMIF_CE1CTL2_WRITE_STROBE_OF(10),    // Write strobe width

  EMIF_CE1CTL2_WRITE_HOLD_OF(2),    // Write hold width

  EMIF_CE1CTL2_READ_SETUP_OF(2)        // Read setup width

  ),

EMIF_CE0CTL1_RMK(                    // CE0 Space Control Register 1

  EMIF_CE0CTL1_TA_DEFAULT,

  EMIF_CE0CTL1_READ_STROBE_OF(5),   //5

  EMIF_CE0CTL1_MTYPE_16BIT_ASYNC,

  EMIF_CE0CTL1_WRITE_HOLD_MSB_DEFAULT,

  EMIF_CE0CTL1_READ_HOLD_OF(1)        

  ),

EMIF_CE0CTL2_RMK(                    // CE0 Space Control Register 2

  EMIF_CE0CTL2_WRITE_SETUP_OF(1),    

  EMIF_CE0CTL2_WRITE_STROBE_OF(2),  

  EMIF_CE0CTL2_WRITE_HOLD_OF(1),   

  EMIF_CE0CTL2_READ_SETUP_OF(1)     

  ),

EMIF_CE2CTL1_RMK(                    // CE2 Space Control Register 1, for USB

  EMIF_CE2CTL1_TA_DEFAULT,

  EMIF_CE2CTL1_READ_STROBE_OF(3),

  EMIF_CE2CTL1_MTYPE_32BIT_ASYNC,    // assumed as 32-bit-wide memory       

  EMIF_CE2CTL1_WRITE_HOLD_MSB_DEFAULT,

  EMIF_CE2CTL1_READ_HOLD_OF(3)

  ),

EMIF_CE2CTL2_RMK(                    // CE2 Space Control Register 2

  EMIF_CE2CTL2_WRITE_SETUP_OF(3),

  EMIF_CE2CTL2_WRITE_STROBE_OF(3),

  EMIF_CE2CTL2_WRITE_HOLD_OF(3),

  EMIF_CE2CTL2_READ_SETUP_OF(3)

  ),

EMIF_CE3CTL1_RMK(                    // CE3 Space Control Register 1

  EMIF_CE3CTL1_TA_DEFAULT,            

  EMIF_CE3CTL1_READ_STROBE_DEFAULT,    // Read strobe width

  EMIF_CE2CTL1_MTYPE_16BIT_SDRAM,    // 16-bit-wide SDRAM

  EMIF_CE3CTL1_WRITE_HOLD_DEFAULT,    // Write hold width

  EMIF_CE3CTL1_READ_HOLD_DEFAULT    // Read hold width

  ),

EMIF_CE3CTL2_RMK(                    // CE3 Space Control Register 2

  EMIF_CE3CTL2_WRITE_SETUP_DEFAULT,    // Write setup width

  EMIF_CE3CTL2_WRITE_STROBE_DEFAULT,// Write strobe width

  EMIF_CE3CTL2_WRITE_HOLD_DEFAULT,    // Write hold width

  EMIF_CE3CTL2_READ_SETUP_DEFAULT    // Read setup width

  ),

  EMIF_SDCTL1_RMK(                    // SDRAM Control Register 1

  EMIF_SDCTL1_TRC_OF(6),            // Specifies tRC value of the SDRAM in EMIF clock cycles.

  EMIF_SDCTL1_SLFRFR_DISABLED        // Auto-refresh mode

  ),

EMIF_SDCTL2_RMK(                    // SDRAM Control Register 2

  0x01,                                // 2 banks,11 row address, 8 column address

  EMIF_SDCTL2_RFEN_ENABLED,            // Refresh enabled

  EMIF_SDCTL2_INIT_INIT_SDRAM,

  EMIF_SDCTL2_TRCD_OF(1),            

  EMIF_SDCTL2_TRP_OF(1)               

  ),

0x05DC,                                // SDRAM Refresh Control Register 1

0x0300,                                // SDRAM Refresh Control Register 2

EMIF_SDEXT1_RMK(                    // SDRAM Extension Register 1

  EMIF_SDEXT1_R2WDQM_2CYCLES,    

  EMIF_SDEXT1_RD2WR_4CYCLES,    

  EMIF_SDEXT1_RD2DEAC_1CYCLE,    

  EMIF_SDEXT1_RD2RD_1CYCLE,        

  EMIF_SDEXT1_THZP_OF(2),          

  EMIF_SDEXT1_TWR_OF(0),            

  EMIF_SDEXT1_TRRD_2CYCLES,        

  EMIF_SDEXT1_TRAS_OF(4),    

  EMIF_SDEXT1_TCL_3CYCLES    

  ),

EMIF_SDEXT2_RMK(                    // SDRAM Extension Register 2

  EMIF_SDEXT2_WR2RD_0CYCLES,   

  EMIF_SDEXT2_WR2DEAC_1CYCLE,    

  0,

  EMIF_SDEXT2_R2WDQM_2CYCLES    

  ),

EMIF_CE1SEC1_DEFAULT,                // CE1 Secondary Control Register 1

EMIF_CE0SEC1_DEFAULT,                // CE0 Secondary Control Register 1

EMIF_CE2SEC1_DEFAULT,                // CE2 Secondary Control Register 1

EMIF_CE3SEC1_DEFAULT,                // CE3 Secondary Control Register 1

EMIF_CESCR_DEFAULT                    // CE Size Control Register                                

  };