Does each psoc 3 contain a unique serial number that's readable from firmware?
Take a look at this -
After following several links I see there is a silicon device ID. Do you know if this ID is unique to every individual chip? That would be most useful.
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.
If you look at this there is a device ID, but it is not unique -
Thats why the link was supplied for a silicon ID chip for addition to HW design
in the thread.
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.
Device with unique serial number -
I have used the Maxim parts for this in the past. Some programmers allow you increment a value in flash with each new programming cycle. I don't think that feature is offered with psoc programmer. I'll have to give it some thought on how to enter a serial number somehow.
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.