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.

TMS570LS3137: Unable to access HDK on-board SDRAM through 16-bit buffered EMIF

Part Number: TMS570LS3137
Other Parts Discussed in Thread: HALCOGEN

Using TMS570LS3137ZWT HDK with on-board SDRAM.

I have used halcogen+CCS to generate a project trying to access the EMIF SDRAM via address 0x80000000. I have tried with the jumper cables connected as well as disconnected (the schematic shows the jumper provides power to the SDRAM).

EMIF Driver is enabled under the Driver Enable tab.

EMIF is enabled under the PINMUX tab.

I have Enabled EMIF SDRAM under the EMIF General tab.

The EMIF SDRAM tab i left at the defaults (may be part of the problem?).

I have been attempting to write and read from the address 0x80000000+. While using a logic analyzer on the EMIF pins, they are outputting signals so i know it is trying.

Any help would be appreciated.

Thanks,

David Cothran

  • Hi David,

    Enable EMIF_CLK output under special muxing options  of Pin Muxing tab.

    Fill in the EMIF SDRAM parameters:

  • Hi QJ,

    Thanks for the response, it seems that this works in the LC43 example to access the memory though it seems to be writing the same value to the whole segment of SDRAM. When it tries to write to a single word it seems to write to the whole memory segment.

    When i add the following lines

            uint32_t * sdram = (uint32_t*)0x80000000;
            uint32_t read;
            *(sdram) = (uint32_t)0xABCDABCD;
            read = *(sdram);

    I get the following from 0x80000000 to 0x87FFFFFC

    Any idea on what is causing this?

    Thanks,

    David Cothran

  • Hi David,

    Do you have all of the EMIF pins selected under pinmux tab? Please lower the EMIF clock to 50MHz.
  • Hi QJ,

    Thanks for following up. I tried lowering the EMIF clock (VCLK3) to both 60 MHz and 45 MHz (180MHz/3 and 180MHz/4) with no change in results. I verified that EMIF pins are muxed correctly.

    I also removed the blinky section/code and still have the same issue.

    If you happen to get back to this with more to try let me know. I am going to use an analyzer to check the pin output in the meantime to see if I can see anything of note.

    Thanks,

    David Cothran

  • QJ,

    I am honestly not sure exactly what caused this to start working, possibly a combination of your reducing clock speed and  removing the blinky SECTION in linker command file, but everything is now working as intended.

    Thanks for all of your help I will mark this as resolved. Below is a picture of my workspace should anyone stumble upon a similar question. (please ignore spelling of my defines as it is just debug code..)

    EDIT FYI: It appears the jumper was disconnected during this testing.... When i reconnect the jumper the RAM becomes unusable but disconnecting it makes it usable.. Thoughts?

    Regards,

    David Cothran