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.

TMS320DM642: memory errors

Part Number: TMS320DM642
Other Parts Discussed in Thread: CODECOMPOSER

I use the DM642 over years on a PCB with a PCI-PCIExpress bridge as an additional component. Now, I have suddenly a problem with memory inconsistency. I saw this when I loaded over PCI the DSP program into it's internal and external memory, comparing what I wrote to what I read later on. Some memory address reported a wrong value (other value that I wrote). All those wrong memory address have in common that the same bits are failing in the same way (or all '0' or all '1'). This occures in several boards. For each board there are always the SAME memory addresses affected and the SAME bits, but these addresses changed from one board to the other.

I have an external DDR2 memory attache to the EMIF bus. In some boards it is always external memory addresses (> 0x80000000), in other boards it is only internal memory addressess (e.g. > 0x530). I first thought of a PCI bridge problem but then I connected via JTAG and CodeComposer 4 just to the DSP avoiding any loading of anything. So just the DSP is up there. When I try to change e.g. the value of memory address 0x530 it won't let me set bit3. Bit3 always keeps to '0'. Same happens to different memory addresses.

For boards where only external memory is affected I turn on the EMIF clock (init_emif() etc...and the same thing happens there. In this case e.g. two bits of certain memory addresses are ALWAYS kept to '1'.

The DSP is the 600 MHz model and it runs at 600 MHz (input clock 50 Mhz x 12 via clockmode). I run it at 300 MHz and it behaves exactly the same way. Absolutely curios.

I viewed all internal registers and compared it with boards without any problem and couldn't find anything wrong.

The only thing I can imagine is maybe an unstable input clock, but this should be all more random.

Here is one example of what is wrong at certain addresses. As you may see all addresses have in common that they end (in this case) with 30. In other boards the address shows some similar patterns (ot the same).

Any advice welcome...

Wrong value F802566 read at 530 (expected F80256E, 4 bytes)
Wrong value F240FD2 read at 730 (expected F240FDA, 4 bytes)
Wrong value E5F01 read at B30 (expected E5F09, 4 bytes)
Wrong value 1D00060 read at D30 (expected 1D00068, 4 bytes)
Wrong value F8064A0 read at 1530 (expected F8064A8, 4 bytes)
Wrong value 2317420 read at 1F30 (expected 2317428, 4 bytes)
Wrong value F901FD2 read at 2330 (expected F901FDA, 4 bytes)
Wrong value 42140082 read at 2730 (expected 4214008A, 4 bytes)
Wrong value 2803222 read at 2D30 (expected 280322A, 4 bytes)
Wrong value 2317420 read at 3130 (expected 2317428, 4 bytes)
Wrong value 139F01 read at 3330 (expected 139F09, 4 bytes)
Wrong value 3264A352 read at 3530 (expected 3264A35A, 4 bytes)
Wrong value 2901FD3 read at 3930 (expected 2901FDB, 4 bytes)
Wrong value 180CA60 read at 3F30 (expected 180CA68, 4 bytes)
Wrong value F90A350 read at 4130 (expected F90A358, 4 bytes)
Wrong value D0468129 read at 5730 (expected D0468121, 4 bytes)
Wrong value 18000E1 read at 5D30 (expected 18000E9, 4 bytes)
Wrong value 180D660 read at 5F30 (expected 180D668, 4 bytes)
Wrong value 1B21C20 read at 6330 (expected 1B21C28, 4 bytes)
Wrong value 22902051 read at 6530 (expected 22902059, 4 bytes)
Wrong value 101FD0 read at 6730 (expected 101FD8, 4 bytes)
Wrong value 3B5D621 read at 7330 (expected 3B5D629, 4 bytes)
Wrong value 320000E2 read at 7530 (expected 320000EA, 4 bytes)
Wrong value 2B5E022 read at 7930 (expected 2B5E02A, 4 bytes)
Wrong value 1B1BC20 read at 7B30 (expected 1B1BC28, 4 bytes)
Wrong value 18000E0 read at 8130 (expected 18000E8, 4 bytes)
Wrong value 2102052 read at 8330 (expected 210205A, 4 bytes)
Wrong value 20000E0 read at 8930 (expected 20000E8, 4 bytes)
Wrong value 28000E0 read at 8F30 (expected 28000E8, 4 bytes)
Wrong value D0003E0 read at 9330 (expected D0003E8, 4 bytes)
Wrong value 2902052 read at 9930 (expected 290205A, 4 bytes)
Wrong value F940FD2 read at 9F30 (expected F940FDA, 4 bytes)
Wrong value 1AE7020 read at A730 (expected 1AE7028, 4 bytes)
Wrong value 2B19A23 read at A930 (expected 2B19A2B, 4 bytes)
Wrong value C18C8FD0 read at AB30 (expected C18C8FD8, 4 bytes)
Wrong value FBC1FD0 read at C130 (expected FBC1FD8, 4 bytes)
Wrong value 18C8FF1 read at C330 (expected 18C8FF9, 4 bytes)
Wrong value 338037A1 read at C730 (expected 338037A9, 4 bytes)
Wrong value 18BA73 read at C930 (expected 18BA7B, 4 bytes)
Wrong value 4000A352 read at CD30 (expected 4000A35A, 4 bytes)
Wrong value 22A2262 read at D130 (expected 22A226A, 4 bytes)
Wrong value 23003622 read at D730 (expected 2300362A, 4 bytes)
Wrong value 2A80FD1 read at DB30 (expected 2A80FD9, 4 bytes)
Wrong value 839C1FD3 read at DF30 (expected 839C1FDB, 4 bytes)
Wrong value 1907070 read at E130 (expected 1907078, 4 bytes)
Wrong value 328A350 read at E930 (expected 328A358, 4 bytes)
Wrong value 2A01262 read at ED30 (expected 2A0126A, 4 bytes)
Wrong value 68024E6 read at EF30 (expected 68024EE, 4 bytes)
Wrong value 53D5072 read at F130 (expected 53D507A, 4 bytes)
Wrong value 1930051 read at F330 (expected 1930059, 4 bytes)
Wrong value 3001FD0 read at F930 (expected 3001FD8, 4 bytes)
Wrong value 22C1FD1 read at FB30 (expected 22C1FD9, 4 bytes)
Wrong value 28C0FD0 read at 10330 (expected 28C0FD8, 4 bytes)
Wrong value 9809F3 read at 10730 (expected 9809FB, 4 bytes)
Wrong value 20D5073 read at 10D30 (expected 20D507B, 4 bytes)
Wrong value 4001022 read at 11330 (expected 400102A, 4 bytes)
Wrong value A000A351 read at 11530 (expected A000A359, 4 bytes)
Wrong value 1B81FD2 read at 11B30 (expected 1B81FDA, 4 bytes)
Wrong value 2944FD2 read at 11F30 (expected 2944FDA, 4 bytes)
Wrong value 2008023 read at 13730 (expected 200802B, 4 bytes)
Wrong value 200A352 read at 13930 (expected 200A35A, 4 bytes)
Wrong value 18000E0 read at 13B30 (expected 18000E8, 4 bytes)
Wrong value 2525DF3 read at 13F30 (expected 2525DFB, 4 bytes)
Wrong value 4181FD0 read at 14130 (expected 4181FD8, 4 bytes)
Wrong value 210A072 read at 14330 (expected 210A07A, 4 bytes)
Wrong value 200A352 read at 14530 (expected 200A35A, 4 bytes)
Wrong value C18C2FF1 read at 14D30 (expected C18C2FF9, 4 bytes)
Wrong value 204A351 read at 15130 (expected 204A359, 4 bytes)
Wrong value 220C1FD3 read at 15330 (expected 220C1FDB, 4 bytes)
Wrong value 2801023 read at 15930 (expected 280102B, 4 bytes)

  • Hello,

    Sorry but we don't have design support for this part any more. As indicated in the product page: https://www.ti.com/product/TMS320DM642

    No design support from TI available

    This product does not have ongoing design support from TI for new projects, such as new content or software updates. If available, you will find relevant collateral, software and tools in the product folder. You can also search for archived information in the TI E2ETM support forums.

    Best regards,

    Jianzhong