FX3 Unique ID is same for more than one device

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

cross mob
ViKu_2048416
Level 4
Level 4
50 sign-ins 25 replies posted 25 sign-ins

Hi,

I am using FX3 in our project, in which I read Unique ID of FX3 with CyU3PReadDeviceRegisters() API. The address I am using is 0xE0055010 to read the Unique ID. But the Unique ID of three devices are same (ID - 59050000) out of five devices. Please guide us to solve this problem.

Thanks and Regards,

Vignesh Kumar R.

1 Solution
lock attach
Attachments are accessible only for community members.

I attach a project with which you could read the E-fuse ID register.

Snipaste_2019-08-27_16-56-18.png

Snipaste_2019-08-27_16-55-58.png

You coudl find that the results from two FX3 chips are different.

Try to send the command as below.

Snipaste_2019-08-27_16-56-55.png

View solution in original post

0 Likes
7 Replies
YangyangC_06
Employee
Employee
750 replies posted 500 replies posted 250 replies posted
0 Likes

Hi yang,

Thanks for your response, now I tried with two registers 0xE0055010 as well as 0xE0055014. This time also I get same results for two devices.

1. First device:

     0xE0055010 - 0x59050000

     0xE0055014 - 0x09000000

2. Second device:

     0xE0055010 - 0x59050000

     0xE0055014 - 0x09000000

Is there anyway to overcome this.

Regards,

Vignesh Kumar R.

0 Likes
lock attach
Attachments are accessible only for community members.

I attach a project with which you could read the E-fuse ID register.

Snipaste_2019-08-27_16-56-18.png

Snipaste_2019-08-27_16-55-58.png

You coudl find that the results from two FX3 chips are different.

Try to send the command as below.

Snipaste_2019-08-27_16-56-55.png

0 Likes

Hi Yang,

Here is my observation,

uint32_t GetSerialNumber[1];

apiRetStatus = CyU3PReadDeviceRegisters((uint32_t *)lUIDRegsiterAddress,1,(uint32_t *)GetSerialNumber);

with this API if I declare the GetSerialNumber as locally it returns correct unique ID. But I declare the GetSerialNumber globally we are facing the problem. I done the above in release mode.

As well as I tested in debug mode, in debug mode there is no problem with declaration. It works fine at globally as well as locally.

Can you please comment on my observation.

Regards,

Vignesh Kumar R.

0 Likes

No, I think maybe you make something wrong on your side.

I don't met any problem whether the variable is defined as global one or local one, and I get same result in both debug mode and release mode.

Snipaste_2019-08-30_09-22-37.png

Snipaste_2019-08-30_09-23-32.png

Snipaste_2019-08-30_09-23-20.png

If you indeed get different result, please check the propertites of your project, including the optimization and tool chain settings.

Try to keep the same settings to the project which I attach in previous reply.

0 Likes

Hi,

First difference is, the SDK version I am using is 1.3.1 but you are using 1.3.3 or 4 I guess. I have opened your project in 1.3.3 version, in that under optimization other optimization flag shows empty,

pastedImage_0.png

But in our project we are using the following value,

pastedImage_1.png

it seems to be this -Os indicates optimization by size I guess. if other optimization flags field is empty there is no optimization done I guess. Is that correct?

Best Regards,

Vignesh Kumar R.

0 Likes
lock attach
Attachments are accessible only for community members.

Hello Vignesh,

Please refer to the attached snippet or different optimization. Optimization levels can be chosen in the optimization option in the settings of the project

Regards,
Rashi
0 Likes