Serial number

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
rasec_2385561
Level 4
Level 4
First like received

Is there a comparable solution for setting serial numbers that works with hex files ? The board that I am using is a Cy8ckit-059 PSOC 5LP prototyping kit.

0 Likes
1 Solution

Please go to Find new code examples > UniqueID_Example.

You will find information about its implementation there. The function CyGetUnqiueId() returns a 64 bit unique id with the following details:

Die Y position (xxxxxx, y_loc[7:0])

Die X position (xxxxx, x_loc[7:0])

Die Wafer Number (xxxxxx, wafer_num[7:0])

Die Lot number LSB (xxxxx, lot_lsb[7:0])

Die Lot number MSB (xxxxxx, lot_msb[7:0])

Die production WW (xxxxxx, work_week[7:0])

Die production year and fab (xxxxxx, year[3:0], fab[3:0])

Die Minor Revision number (xxxxxxx, minor[7:0])

Hence, every board will have a unique id.

Regards,

Dheeraj

View solution in original post

0 Likes
6 Replies
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

You cannot set the serial number, but you can use the provided silicon ID within the chip. Refer to the "System Reference Guide" (Creator Help) and look for CyGetUniqueId() API.

Bob

0 Likes

I need the host to be able to identify specific boards when I have multiple copies of the same PSOC board.

How can you use the CyGetUniqueId() to choose a specific board if the VID/PID are the same ?

0 Likes

That might need some communication between host and slaves.

Alternatively you can use the internal EEProm which contents can be set at programming time.

Bob

0 Likes

Please go to Find new code examples > UniqueID_Example.

You will find information about its implementation there. The function CyGetUnqiueId() returns a 64 bit unique id with the following details:

Die Y position (xxxxxx, y_loc[7:0])

Die X position (xxxxx, x_loc[7:0])

Die Wafer Number (xxxxxx, wafer_num[7:0])

Die Lot number LSB (xxxxx, lot_lsb[7:0])

Die Lot number MSB (xxxxxx, lot_msb[7:0])

Die production WW (xxxxxx, work_week[7:0])

Die production year and fab (xxxxxx, year[3:0], fab[3:0])

Die Minor Revision number (xxxxxxx, minor[7:0])

Hence, every board will have a unique id.

Regards,

Dheeraj

0 Likes

Do you know the web page of the CyGetUnqiueId() example ? I have looked but have

been unable to find anything.

0 Likes

rseedle,

The code to get the unique silicon ID is very simple:

uint64 uid[1];

CyGetUniqueId((uint32 *)uid);

Len

Len
"Engineering is an Art. The Art of Compromise."
0 Likes