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.

TMS320C6742: Problem with 32Mbit mDDR

Part Number: TMS320C6742

Hello Everybody,
Recently I have ordered a small batch of PCBs with modified BOM to check for possible reduction of cost in mass production.
Original board has C6746 DSP + 128Mbit mDDR ISSI IS43LR16800G-6BLI and it works fine.
New version is populated with C6742 + 32Mbit mDDR ISSI IS43LR16200D-6BLI. Core voltage of DSP on the new version is reduced from 1.3 to 1.2V and the rest is identical to original version. Unfortunately all my efforts to make this memory accessible by DSP were not successful.
Mobile DDR chip on newer version while having lower capacity also has slightly different internal organization:
128Mbit chip: 4 banks, 4096 rows, 512 columns
32Mbit chip: 2 banks, 2048 rows, 512 columns
Because of the difference in number of banks, 32Mbit chip has only one BA pin and it affects how EMRS (Extended Mode Register Set) command is invoked. On 128Mbit chip the diagram in the datasheet says that to write EMR register bank selection pins must be set as: BA1=1 and BA0=0. And for 32Mbit chip it is needed to set BA0=1. It seems to me that it could be the cause of the problem. I suppose that DSP while initializing mDDR memory overwrites MR register with value intended for EMR register and does not initialize EMR at all.
This rises a question to Texas Instruments experts: could you please specify, how DSP determines needed logical combination on address and bank pins to access EMR register? Or is it a fixed pattern that only works on 128Mbit and larger chips?
More regarding my board and what I have tried to do. I connected new board with JTAG emulator and applied power. Power supply voltages are measured as 1.23V core & static and 1.81V DDR & IO. Voltages are applied with right sequence with 440uS delay. There is no observable voltage drops during mDDR initialisation or access. DSP clock is stable, it is provided externally from 24MHz crystal oscillator level-shifted to 1.2V with 74AUC1G17 gate. DSP itself work flawlessly while code and data lay in its internal memory.
Mobile DDR memory is initialized with a modified version of GEL file previously used with 128Mbit chip. I have corrected number of banks written to SDCR register but it did not work. Then I tried to enter actual number of rows in SDCR2 however it is required only for partial self-refresh mode that I don't use. Also tried reducing mDDR clock and timing parameters but nothing helped. I also experimented with bits affecting EMRS command to produce values that could be acceptable for MRS command too (suspecting command misinterpretation by mDDR chip). The best result I have got was to be able to enter 32-bit values by hand in memory editor, but they are written into neighbouring cell instead. For example, when I enter a number into cell with address 0xC0000000 it appears in the cell with address 0xC0000004 and the same is true in opposite direction. It looks to me like "misunderstanding" between DSP and mDDR in burst parameters. I tried two samples of new board and both work in the same way.

Thanks and regards
Mike

  • Hi Mikhail,

    To summarize the differences between these devices...
    128Mb IS43LR16800G
    [BA1,BA0] = [0,0] --> MRS
    [BA1,BA0] = [1,0] --> EMRS

    32Mbit IS43LR16200D
    [NC,BA0] = [-,0] --> MRS
    [NC,BA0] = [-,1] --> EMRS

    In the C6746/2 mDDR init sequence, EMRS ([BA1,BA0] = [1,0]) always occurs before MRS([BA1,BA0] = [0,0] --> MRS). I believe this sequence is hard coded.

    With the 32Mbit IS43LR16200D BA pin connected to the C6742 BA0 pin, you will end up writing to the standard Mode Register twice, and since BA (BA0) never goes high, you'll never write to the EMR. That should only affect Partial Array Self Refresh (PASR) and Driver Strength (DS), however... I wonder what the reset state of the EMRS register is on the IS43LR16200D...

    I also wonder what would happen if you routed the BA1 signal to BA. You might be able to program the EMRS register, but it might cause other problems.

    Can you probe the data signals from the 32Mbit IS43LR16200D?
    I wonder if you can reproduce the problem with your 128Mb IS43LR16800G by writing the "reset values" into the EMR (simulating the missed EMRS that seems to be occurring with the 32Mbit IS43LR16200D).

    I will also ask a colleague if he has encountered this issue previously and get back to you tomorrow.

    Can you confirm neither BA1 or A11 pins are routed to the part 32Mbit IS43LR16200D Any other routing differences?

    There is also this errata Usage Note regarding Status Register Read (SRR) support. I dont see any mention of SRR in the ISSI datasheets though...
    www.ti.com/.../sprz303h.pdf

    Regards,
    Mark
  • Hi Mark,
    Thank you for help and detailed explanation!

    I was not able to find reset value of EMRS register in ISSI documentation. So, potentially at power-on this register may contain reserved values of parameters leading to incorrect operation of the part.

    On the board DSP and mDDR are placed very close to each other, there is no serial terminating resistors on any line and the longest group of traces is 18.2mm. My experiments with 128MBit chip display that it works on 150MHz with any drive strength (DS) setting, however in production firmware I'm planning to use 1/2 strength as advised in datasheet. Partial self-refresh setting (PASR) also does not affect operation of 128Mbit memory because this mode is not used in our application. Even when bank number and page size are intentionally programmed incorrectly, 128MBit chip still works fine when only first bytes are accessed. It seems that C6742 does not use bank number parameter to select appropriate scheme of EMRS access and always sets [BA1,BA0] = [1,0] as you stated.

    Unfortunately it is not possible to temporary connect BA1 pin of DSP to BA pin of mDDR because there is no serial resistors and BAx signals are routed in internal layers of PCB. It would require to reproduce combination C6742 + IS43LR16200D on a different board. But anyway if it works the memory will be seen by DSP fragmented, at best in size of one bank if Special Address Mapping is used.

    BA1, A11, A12, A13 pins of DSP are routed to "no connection" pins of IS43LR16200D, it was made to use the same PCB with various memory chips.

    I have seen this errata and tried dual mDDR initialization but with no result on IS43LR16200D. With IS43LR16800G dual initialization does not change anything.

    Regards,
    Mike
  • Hi Mike,

    The DDR2/mDDR Memory Controller on the TMS320C6742 is compliant to the mDDR spec described in the JESD209 standard.
    In the JESD209B document, on Table 2 — LPDDR SDRAM Addressing Table, all memory densities require at least 2 bank address pins, supporting down to 64Mb density.
    The 32Mb device you have from ISSI appears to be outside of this standard. I recommend reaching out to ISSI about the issue, and checking into whether their 64Mb variant adheres to the JEDEC spec.

    www.jedec.org/.../JESD209B.pdf

    Regards,
    Mark

  • Mark, thank you for clarification!