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.

TM4C123GH6PM: Does TM4C have a unique identifier / serial number I can retrieve from EEPROM or somewhere else?

Part Number: TM4C123GH6PM
Other Parts Discussed in Thread: UNIFLASH

Hello,

I saw on this thread that the TM4C123 doesn't have a unique ID number:

e2e.ti.com/.../471248

But in the spec file I see this paragraph which indicated that there is a unique ID to each MCU.

Register 1: Device Identification 0 (DID0), offset 0x000
This register identifies the version of the microcontroller. Each microcontroller is uniquely identified
by the combined values of the CLASS field in the DID0 register and the PARTNO field in the DID1
register. The MAJOR and MINOR bit fields indicate the die revision number. Combined, the MAJOR
and MINOR bit fields indicate the part revision number.

Did I misunderstood the spec?

  • The contents of DID0 and DID1 uniquely identify the part as being a "TM4C123GH6PM" as opposed to being a different part number of the TM4C family. The TM4C123 parts do not have unique identifiers for each individual part.
  • Okay thanks, the phrasing "Each microcontroller is uniquely identified" was confusing.

    Lets say I want to enter a serial number myself to the "user register 0" any suggestions on how I can do it automatically on production line?
  • Nadav,
    Here are some thoughts on that. As part of testing your device after production, you can have the software check the user registers. If they are blank, the software can wait for input from your test bench (UART, CAN, I2C, etc.) that gives a unique serial number. The software can then program this number into the user registers using the TivaWare functions FlashUserSet() and FlashUserSave().

    Another method would be to use UniFlash to run your production programming. UniFlash can be used to generate a standalone command line that programs the flash. You can reserve a fixed location in the flash for containing a serial number. Write a simple script that reads an object file such as a Intel Hex, Motorola S or other easy to read format. Have the script read the file, increment the serial number and then rewrite the file with the new number. Then have UniFlash program that additional file. All of this could be contained in a batch file.

    I don't know if UniFlash can add programming the user register into the command line so I am going to have the people who support UniFlash answer that part.
  • You may have already thought of this: If your design needs external memory, then you'll find that many SPI memory chips have unique identifiers in them. I have used this in the past to uniquely identify a product.
    Of course, if you don't need external memory, then it would be rather expensive to add another part just for the unique ID.
  • Yep as you said because all I need is the ID I'll just use the user registers, they will fit me well.

    I already have a serial number written on the board, I'll use a bar code reader to automatically read it and burn it on the user register.