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.

EMIF issue on F28377d

Hi,

 I run the program of " emif1_32bit_sdram.c" step by step, and monitored the values from 0x80000000 to 0x8fffffff by Memory Browser . After run the code of "Emif1Regs.SDRAM_TR.all = 0x61114610;" all the memory cell from 0x80000000 to 0x8fffffff changed to 0x00004610. After "Emif1Regs.SDR_EXT_TMNG.all = 0x7;", all the data changed to 0x00000007. Data also changed with " Emif1Regs.SDRAM_RCR.all = 0x61B" and "Emif1Regs.SDRAM_CR.all = 0x00000720;". Also, after writing to one memory cell, all the cells are changed to the same value. I couldn't figure out what caused this. Anybody has a clue about this? Thanks in advance.


 Xiaowei

  • Hi Xiaowei,

    The values in SDRAM memory address space are valid only after proper initialization of EMIF module which is done after configuration all critical timing registers along with  SDRAM_CR register.  The configuration provided in this example are for a specific SDRAM device and user need to change that as per the device they are using to make sure correct operation on SDRAM interface.

    Which memory device you are using?

    Regards,

    Vivek Singh

  • Hi Vivek,

    The SDRAM is IS42S16400F by ISSI . It's  an 16-bit 143MHz SDRAM. So I changed the sample code to 16-bit pin configuration, and also change the NM to 1 (16-bit). I have checked all other timing requirements for this SDRAM, I think the following configurations are correct for this ISSI SDRAM.

    "Emif1Regs.SDRAM_TR.all = 0x61114610; 

    Emif1Regs.SDR_EXT_TMNG.all = 0x7;

    Emif1Regs.SDRAM_RCR.all = 0x61B; 

    Emif1Regs.SDRAM_CR.all = 0x00004720;" 

    After run "Emif1Regs.SDRAM_CR.all = 0x00004720", all EMIF1 CS0 memory cells got new values, and wouldn't  change back to 0. Is this normal?  Thanks.

    Xiaowei 

  • Hi Xiaowei ,

    After run "Emif1Regs.SDRAM_CR.all = 0x00004720", all EMIF1 CS0 memory cells got new values, and wouldn't  change back to 0. Is this normal?

    After SDRAM_CR configuration, you should be able to write any value in the SDRAM memory space correctly. If you are not able to write 0x0, then that is not normal behavior. What is the value you see in the memory space after you write 0x0 ?

    Regards,

    Vivek Singh

  • Hi Vivek,

    Could you tell me which SDRAM did you use to test the example code?

    The following picture is the result after "Emif1Regs.SDRAM_CR.all = 0x00004720" sentence:

    After run the for loop, the memory spaces like this:

    I think all the other memory values should be 0, if we don't write anything to them. but why they have all those strange values?

    I used the oscilloscope to check the EMIF clock signal,  why the clock is an 100MHz sine-wave, not square-wave?

    Xiaowei

  • Xiaowei,

    We have used Micron part "48LC4M32B2".

    You are calling function "__addr32_write_uint16" which does a 16bit write (not 32bit) and in every iteration incrementing the address by 2 so it's updating every alternate address with data 0x1111. This is correct. There is no default state for the memory location. So you need to initialize the data in memory with 0x0 to make it 0x0.

    Can you change the data also in loop and see if it's correctly updating the different memory location with different data.

    Regards,

    Vivek Singh

     

  • Hi Vivek,

    The following is the best result I can get. But every 64 column on each row has correlation. Do you have any idea what would cause this issue? Thanks for your help. 

    Xiaowei

  • Hi Xiaowei,

    Did you resolve the above issue?
    I need your support as i'm using 16-bit SDRAM from ISSI part.
    For me, After SDRAM configuration, i'm writing 0x0000 to each location. then i have checked in the memory browser showing as 0x0000 0x0001 0x0000 0x0001 0x0000 0x0001... pattern

    So could you pls share below register configuration details?
    Emif1Regs.SDRAM_TR.all
    Emif1Regs.SDR_EXT_TMNG
    Emif1Regs.SDRAM_RCR.all
    Emif1Regs.SDRAM_CR.all

    Regards
    Aditya
  • Hi Aditya,

    Sorry for the late response. I have changed SDRAM to the same Micron part on TI's example and use the same configurations as example code because that ISSI part was discontinued .   

    If you are using controlCARD, please make sure the following settings are correct.

    "GPIO46/GPIO47 are muxed with USB pins and there are two headers (J4 and J5) available on on controlCARD to control the connection of these pins to USB connector or to . Can you check the jumper setting on these headers and make sure they are set to connect pin 2 and 3 of headers." Hope this it helpful.

    regards,

    Xiaowei

  • Thanks Xiaowei.

    I'm working on custom board having Delfino & SDRAM interface. I have checked for only one board of SDRAM interface with Delfino. So I need to check the repeatability with multiple boards to conclude the problem.

    Regards
    Aditya
  • Hi Aditya/Xiaowei,

    I am assuming that you have EMIF setup working fine with F28377d device. Please let us know if you have any queries (or even suggestions) on this.

    Regards,

    Vivek Singh