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.

DM365: DDR2 setup

Genius 9345 points
Other Parts Discussed in Thread: TMS320DM365

The DM365 gel file from Spectrum has the following sequence of instructions:

*SDCFG1     = 0x0853C832;
    *SDREF      = 0x00000768;    // Program SDRAM Refresh Control Register
    *VBUSMP     = 0x000000FE; // VBUSM Burst Priority Register, pr_old_count = 0xFE
    *SDTIM0     = 0x3C934B51;    // Program SDRAM Timing Control Register1
    *SDTIM1     = 0x4221C722;    // Program SDRAM Timing Control Register2
    *SDCFG1     = 0x08534832;    // Program SDRAM Bank Config Register

The SDCFG1 setting appears to try to write a '1' to DDR_DDQS to enable differntial DQS but it doesn't work since hte BOOTUNLOCK bit is a '0'.

This appears to be wrong since I guess we would prefer differential DQS since we do have both DQS and DSQN connected.

Is that correct?

My customer noticed the following on their board:

They chose to not use serial terminations on the DDR signals. The documentation says that:

When no termination is used on data lines (0

 

Ωs), the DDR2/mDDR devices must be programmed to operate in 60% strength mode.

 

 

On their test board, without making any changes to drive strength they found the interface works but they saw over- and undershooting data signals during READ operations, but not during WRITE operations. When they changed bit 18 in SDCR (DDRDRIVEEN) then the overshooting and undershooting during READ went away, as expected. But then WRITE signals are more or less unchanged. They run the VTP calibration from the GEL file in both cases.

Why is this? Does this have anything to do with VTP calibration? Is it possible, that the VTP calibration sets automatically driver strength and impedance for the DM365 ?

Rgds

-Dipa-

 

 

 

  • Hi Dipa,

    We made the new board with TMS DM365 and have problem with DDR. The DDR is very close to the DM365 (2mm) and there are NO terminators (like on the board of Your customer). Average length of data/address wires are very short (8mm). But data read from DDR are mostly corrupted. :(

    Is it TMS processor on Your board or TMX and is the DDR normally working?

    How long are data/address wires on Your customer's board?

    Are You using the SD card to start Your board or what way is it booting?

    Thank You, Juraj

     

  • Hi Juraj,

    My customer's DDR2 interface is apparently working but from my understanding they are adhering to everything in the DDR2 collateral.

    They are using TMS silicon. I am not sure of the trace lengths on thier board.

    They are booting either via SPI or USB depending on the selection they make at power up.\

    Have you double checked their DDR settings. If their reads are failing have they set the DDRDRIVE to 60% drive strength?

     

    Rgds

    -Dipa-

  • Thank You Dipa for respond.

    We decreased the DDRDRIVE to 50%,25%,12% but it does not help.

    Probably the problem is in the different lengths of address/data/clk wires between CPU and DDR2. The longest one have 13mm and the shortest have only 3mm.

    Specification of PCB routing says about maximum difference +-50 Mil (1.2mm) from longest wire.

    On the page 118 (CK/ADDR_CTRL nominal trace length CACLM-50 CACLM CACLM+50 Mils) of http://focus.ti.com/lit/ds/symlink/tms320dm365.pdf

    Is Your customer' board routing comply with those routing specification (tolerance of wire lenghts)?

    Juraj

     

  • Hi

     

    My name is chandrashekhar I need a help on loading a kernel image .. I am getting the following error

     

    Loading from NAND 512MiB 3,3V 8-bit, offset 0x400000
       Image Name:   Arago/2.6.31+2.6.32-rc1-r31+gitr
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    2106356 Bytes =  2 MB
       Load Address: 80008000
       Entry Point:  80008000
    NAND read from offset 600000 failed -74
    ** Read error
    ## Booting kernel from Legacy Image at 80700000 ...
       Image Name:   Arago/2.6.31+2.6.32-rc1-r31+gitr
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    2106356 Bytes =  2 MB
       Load Address: 80008000
       Entry Point:  80008000
       Verifying Checksum ... Bad Data CRC
    ERROR: can't get kernel image!

     

    Please help me on this.

  • Hi Chandrashekhar

     

    I have the same problem, did you find a solution?

     

     

    Loading from NAND 1GiB 3,3V 8-bit, offset 0x400000

       Image Name:   Arago/2.6.31+2.6.32-rc1-r37+gitr

       Image Type:   ARM Linux Kernel Image (uncompressed)

       Data Size:    2135636 Bytes =  2 MB

       Load Address: 80008000

       Entry Point:  80008000

    NAND read from offset 600000 failed -74

    ** Read error

    ## Booting kernel from Legacy Image at 80700000 ...

       Image Name:   Arago/2.6.31+2.6.32-rc1-r37+gitr

       Image Type:   ARM Linux Kernel Image (uncompressed)

       Data Size:    2135636 Bytes =  2 MB

       Load Address: 80008000

       Entry Point:  80008000

       Verifying Checksum ... Bad Data CRC

    ERROR: can't get kernel image!

     

     

    Please help.

     

    Regards

    Shaun