No, the device-ID is different for the device-type as PSoC3 and probably the pinning. It is usually red by the programmer and used to check if the project is built for the device. When you need an identification for your device the best could be to program it yourself into eeprom or flash.
There is no unique serial number for each device. An aproach would be to write a serial number in flash at manufacturing/testing. also some periperal devices have unique serial IDs if you are using anyother device you could use a device with a unique serial.
We need to have some sort of serial number for our products as well. What we did is to have the CPU communicate to an external PC to get a serial number into the EEPROM.
If you have spare pin(s), you can use the pin(s) to read external counter and store in flash/EEPROM.
If you look at the earlier links you will see that you can achieve a psuedo
serial number from the device ID. That is the granularity of the ID is down
to die position on a wafer withing a lot number. So contact Cypress, ask for
a production engineer, and find out what typical wafer lot size is. Then your serial
number will be replicated worst case by # wafers in that specific lot. Not absolutely
unique, but close.
You can always use PSOC programmer's CLI and make your own programming script to write a serial to flash. But it will probably won't be practical on a high volume manufacturing facility.
Refer to these locations in the registers TRM of the device:
|1||FLSHID_CUST_TABLES_Y_LOC||0xC0100||Y location of die on the wafer (row number)|
|2||FLSHID_CUST_TABLES_X_LOC||0xC0101||X location of die on the wafer (column number)|
|3||FLSHID_CUST_TABLES_WAFER_NUM||0xC0102||Wafer Number: 1 to 24|
|4||FLSHID_CUST_TABLES_LOT_LSB||0xC0103||LSB of lot number/wafer start|
|5||FLSHID_CUST_TABLES_LOT_MSB||0xC0104||MSB of lot number/wafer start|
|6||FLSHID_CUST_TABLES_WRK_WK||0xC0105||Work week: 1 to 53|
fab[3:0] Fab Number: 4 or 5
year[3:0] Year: 0 to 9
Combining all together will be unique to a chip. But the only problem is that Year value ranges from 0 to 9 only. So there is a possiblity of repetition of these numbers every 10 years.
Note: The uniqueness of the number is guaranteed for 10 years due to the die lot number having a 10-year lifecycle; even after 10 years, the probability of getting two identical numbers is very small.
You could always include an extra number in the firmware that you update every 10 years if this isn't good enough.
Apart from the above, you can use EEPROM to store custom unique id. In order to write that data into EEPROM directly while programming, you can use Programmer's COM Interface. Refer to "C:\Program Files\Cypress\Programmer\3.18.1\Documents" location for more details on how to use COM interface.
@PSoC Rocks, glad you found this. In prior posts I had found a programming
specification that did not have wafer number in it, so ID was not unique in a lot.
But now the link I used for fourm to doc is broken, and no where in programming
spec is discussion of Device ID other than reference in programming specs.
I must be in another parallel universe.....