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.

tm4c129 high-performance example read back issue

Hi,

I ran the example exactly as is: http://www.ti.com/lit/ug/tidu853/tidu853.pdf

  Type: SDRAM
  Starting Address: 0x60000000
  End Address: 0x61ffffff
  Data: 16-bit
  Size: 64MB (32Meg x 16bits)

  SDRAM Initial Data:
     Mem[0x6000.0001] = 0x1234
     Mem[0x6000.0001] = 0x8bcd
     Mem[0x603F.FFFE] = 0x4321
     Mem[0x603F.FFFF] = 0xdcba

  SDRAM Write:
  SDRAM Read:
     Mem[0x6000.0000] = 0x1234
     Mem[0x6000.0001] = 0x8bcd
     Mem[0x603F.FFFE] = 0x4321
     Mem[0x603F.FFFF] = 0xdcba

Read and/or write failure! Check if your SDRAM card is plugged in..

-- as you can see it randomly replaced the 'a' with an '8' somehow -- and this seems to be a systematic problem - it's always 8 instead of a.

When I modified the program, this is the output

  Type: SDRAM
  Starting Address: 0x60000000
  End Address: 0x61ffffff
  Data: 16-bit
  Size: 64MB (32Meg x 16bits)

  SDRAM Initial Data:
     Mem[0x6000.0000] = 0x   0
     Mem[0x6000.0000] = 0x1111
     Mem[0x6000.0000] = 0x 222
     Mem[0x6000.0000] = 0x1333
     Mem[0x6000.0000] = 0x4444
     Mem[0x6000.0000] = 0x5555
     Mem[0x6000.0000] = 0x4666
     Mem[0x6000.0000] = 0x5777
     Mem[0x6000.0000] = 0x8888
     Mem[0x6000.0000] = 0x9999
     Mem[0x6000.0000] = 0x8aaa
     Mem[0x6000.0000] = 0x9bbb
     Mem[0x6000.0000] = 0xcccc
     Mem[0x6000.0000] = 0xdddd
     Mem[0x6000.0000] = 0xceee
     Mem[0x6000.0000] = 0xdfff
  SDRAM Write:
  SDRAM Read:
     Mem[0x6000.0000] = 0x1111
     Mem[0x6000.0000] = 0x 222
     Mem[0x6000.0000] = 0x1333
     Mem[0x6000.0000] = 0x4444
     Mem[0x6000.0000] = 0x5555
     Mem[0x6000.0000] = 0x4666
     Mem[0x6000.0000] = 0x5777
     Mem[0x6000.0000] = 0x8888
     Mem[0x6000.0000] = 0x9999
     Mem[0x6000.0000] = 0x8aaa
     Mem[0x6000.0000] = 0x9bbb
     Mem[0x6000.0000] = 0xcccc
     Mem[0x6000.0000] = 0xdddd
     Mem[0x6000.0000] = 0xceee
     Mem[0x6000.0000] = 0xdfff
     Mem[0x6000.0000] = 0x1110
Read and/or write failure! Check if your SDRAM card is plugged in.

--- you notice a cascading effect on the first half-bye position from the second last position. -- so there is some systematic issue here - and I just cannot figure out how this happens.

The example screenshot in the PDF linked above shows the read back perfectly fine - so I have no idea what happens here.

--- PLUS, funny thing, since it's reading back 8bcd instead of abcd -- I programmed it instead to write 8bcd and it read back 8bcd successfully - and did the speed test portion of the example -- but changing it back to abcd then again produces 8bcd.

Can I please get some help on this!

Thanks,

Nabeel

  • Hello Nabeel

    First of all you have used the gerber files to make a board or is the SDRAM board a custom board design

    Second of all the console log that you posted shows the identical pattern in both places?

    SDRAM Initial Data:
    Mem[0x6000.0001] = 0x1234
    Mem[0x6000.0001] = 0x8bcd
    Mem[0x603F.FFFE] = 0x4321
    Mem[0x603F.FFFF] = 0xdcba

    SDRAM Write:
    SDRAM Read:
    Mem[0x6000.0000] = 0x1234
    Mem[0x6000.0001] = 0x8bcd
    Mem[0x603F.FFFE] = 0x4321
    Mem[0x603F.FFFF] = 0xdcba
  • Hello Amit,

    We fabricated the exact PCB gerber as in the reference design, and populated with same components - it plugs into the two rows on the Tiva129X board as in the reference example.

    Oh the initial and read values are the same as I reset the board many times -- seems like I disabled what I actually wrote "SDRAM Write: "

    so more clearly ::

    SDRAM Write:
    Mem[0x6000.0000] = 0x1234
    Mem[0x6000.0001] = 0xabcd
    Mem[0x603F.FFFE] = 0x4321
    Mem[0x603F.FFFF] = 0xdcba

    and read-back:
    SDRAM Read:
    Mem[0x6000.0000] = 0x1234
    Mem[0x6000.0001] = 0x8bcd
    Mem[0x603F.FFFE] = 0x4321
    Mem[0x603F.FFFF] = 0xdcba

    -- as you see the 'a' got replaced by an '8' in the second memory location -- every single time this happens, no matter how many times I try.

    consistently there is issue of numbers being replaced -- that is why in the longer write and read I went from 0x0000 to 0xFFFF, which gives this:

      SDRAM Write:
    Mem[0x6000.0000] = 0x0000
         Mem[0x6000.0000] = 0x1111
         Mem[0x6000.0000] = 0x2222
         Mem[0x6000.0000] = 0x3333
         Mem[0x6000.0000] = 0x4444
         Mem[0x6000.0000] = 0x5555
         Mem[0x6000.0000] = 0x6666
         Mem[0x6000.0000] = 0x7777
         Mem[0x6000.0000] = 0x8888
         Mem[0x6000.0000] = 0x9999
         Mem[0x6000.0000] = 0xaaaa
         Mem[0x6000.0000] = 0xbbbb
         Mem[0x6000.0000] = 0xcccc
         Mem[0x6000.0000] = 0xdddd
         Mem[0x6000.0000] = 0xeeee
         Mem[0x6000.0000] = 0xffff
      SDRAM Read:
         Mem[0x6000.0000] = 0x1111
         Mem[0x6000.0000] = 0x 222
         Mem[0x6000.0000] = 0x1333
         Mem[0x6000.0000] = 0x4444
         Mem[0x6000.0000] = 0x5555
         Mem[0x6000.0000] = 0x4666
         Mem[0x6000.0000] = 0x5777
         Mem[0x6000.0000] = 0x8888
         Mem[0x6000.0000] = 0x9999
         Mem[0x6000.0000] = 0x8aaa
         Mem[0x6000.0000] = 0x9bbb
         Mem[0x6000.0000] = 0xcccc
         Mem[0x6000.0000] = 0xdddd
         Mem[0x6000.0000] = 0xceee
         Mem[0x6000.0000] = 0xdfff
         Mem[0x6000.0000] = 0x1110

    you see it seems like some digit places are being "wrapped" from previous rows or something -- there is repeatability to this -- it just doesn't make sense though.

    Please let me know what you think.

    Thanks!

    Nabeel
  • Hello Nabeel

    No. They are not getting wrapped from a previous row, but the Bit-13 is stuck at 0. Can you check the soldering of the SDRAM, header, etc and also confirm if the GPIO corresponding to the EPI0S13 is configured as EPI pin.
  • Amit,

    ooh the bit position that makes sense -- I'll check the pin ---

    the pins are configured correctly - all exactly as in example project -- and EPI013 is defined.

    must be the pin hardware connection then -- we soldered the RAM module on by hand -- on first inspection it looked well done, but there might be a micro-break in the solder.

    Another Engineer solder
  • Hello Nabeel

    Sure. Please check the same.