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.

TMS320F28377D: TMS320F28388D: Unique Identification Number (UID_UNIQUE) with CPU2

Part Number: TMS320F28377D
Other Parts Discussed in Thread: TMS320F28379D, TMS320F28378D, , TMS320F28375D, TMS320F28374D

Hi all,

in device documentation there is a chapter "Identification" which contains following table:

NAME ADDRESS SIZE (x16) DESCRIPTION
PARTIDH 0x0005 D00A (CPU1)
0x0007 0202 (CPU2)
2 Device part identification number(1)´
TMS320F28379D 0x**F9 0300
TMS320F28378D 0x**FA 0300
TMS320F28377D 0x**FF 0300
TMS320F28375D 0x**FD 0300
TMS320F28374D 0x**FC 0300
REVID  0x0005 D00C 2 Silicon revision number
Revision 0 0x0000 0000
Revision A 0x0000 0000
Revision B 0x0000 0002
Revision C 0x0000 0003
UID_UNIQUE 0x0007 03CC 2 Unique identification number. This number is different on each individual device with the same PARTIDH. This can be used as a serial number in the application. This number is present only on TMS Revision C devices.
CPU ID 0x0007 026D 1 CPU identification number
CPU1 0xXX01
CPU2 0xXX02

UID_UNIQUE and CPU_ID are not defined in driverlib, so I have update the cmd file to be able to read them:

MEMORY
{
...
PAGE 1:
   ...
   UID_UNIQUE    : origin = 0x0703CC, length = 0x000002
   CPU_ID        : origin = 0x07026D, length = 0x000001
}
SECTIONS
{
...
   .UID_UNIQUE : > UID_UNIQUE, PAGE = 1, TYPE = NOINIT
   .CPU_ID : > CPU_ID, PAGE = 1, TYPE = NOINIT
}

I also define them in a header file like this:

ifdef __cplusplus
#pragma DATA_SECTION(".UID_UNIQUE")
#else
#pragma DATA_SECTION(UID_UNIQUE,".UID_UNIQUE");
#endif
volatile uint32_t UID_UNIQUE;

#ifdef __cplusplus
#pragma DATA_SECTION(".CPU_ID")
#else
#pragma DATA_SECTION(CPU_ID,".CPU_ID");
#endif
volatile uint16_t CPU_ID;

All works fine on CPU1, I can read CPU_ID and UID_UINIQUE.

But on CPU2 only CPU_ID works, UID_UNIQUE is always 0xFFFFFFFF.

Is this normal?

Best regards

Fabrice