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