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

Legacy microcontrollers Forum Discussions

MotooTanaka
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted

Hi,

We have received a question from one of our customer if unique ID of S6E1C3 is unique?

So I wrote a simple program to read out the unique ID from 0x40000200 and 0x40000204.

To my surprise the value(s) of these two 32bit registers are same with at least two of our FM0-64L-S6E1C3 boards.

And values were 0.

I also found CE215674 - FM0+ Unique ID

https://www.cypress.com/documentation/code-examples/ce215674-fm0-unique-id https://www.cypress.com/documentation/code-examples/ce215674-fm0-unique-id

And tried the program came with the documentation.

And the uniqueIds were all 0.

From the FM0+ Family Peripheral Manual

https://www.cypress.com/file/223031/download

Unique ID register address are 0x4000_0200 for all Type 1, Type 2, Type 3.

Following is my test program (main.c)

=========================

#include "project.h"

#include "printf_scanf/uart_io.h"

#include <stdio.h>

/*******************************************************************************

* Global variables for UID values

*******************************************************************************/

stc_unique_id_t stcUniqueId;    /* PDL struct read from Uid_ReadUniqueId0() */

uint32_t u32UniqueId0;          /* UID 0 read from Uid_ReadUniqueId0() */

uint32_t u32UniqueId1;          /* UID 1 read from Uid_ReadUniqueId1() */

uint64_t u64UniqueIdComplete;   /* 41-bit UID read from Uid_ReadUniqueId64() */

uint64_t u64UniqueIdCalculated; /* Calculated 41-bit UID */

void init_hardware(void)

{

    __enable_irq(); /* Enable global interrupts. */

    Uart_Io_Init() ;   

}

int main(void)

{

    uint32_t count = 0 ;

    uint32_t uid0, uid1 ;

    uint32_t available ;

   

    init_hardware() ;

    printf("FM0+ Test (%s %s)\n", __DATE__, __TIME__) ;

    if( Ok != Uid_ReadUniqueId( &stcUniqueId ) ) {

        printf("Uid Read UniqueID failed\n") ;

    }

    uid0 = stcUniqueId.u32Uidr0 ;

    uid1 = stcUniqueId.u32Uidr1 ;

//    uid0 = Uid_ReadUniqueId0() ;

//    uid1 = Uid_ReadUniqueId1() ;

    printf("Device ID: 0x%08X 0x%08X\n", uid0, uid1) ;

   

    for(;;)

    {

//        printf("Loop %d\n", count++) ;

    }

}

=========================

0 Likes
1 Solution

it is confirmed that

1) Unique ID is supported by Production Device.

2) there is a case that Unique ID is NOT written in ES Device (specially for early sample).

As you informed Device information, ES device is mounted on your Kit...

Apologize for your inconvenience may be caused by this.

View solution in original post

7 Replies
MotooTanaka
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted

Oops, I typed ctrl-s by mistake, then I could not edit my previous message (;_;)

Attached is my test project and the TeraTerm log was like below.

teraterm_log_unique_id.JPG

Finally, my question is

(1) Does S6E1C3 on FM0-64L-S6E1C3 support unique ID?

(2) In case the answer to (1) is yes, is the unique ID register address still 0x4000_0200 (and 0x4000_0204)?

     Or have those addresses been moved to some other location?

moto

0 Likes

Just answers for your questions (1) and (2),

(1) Yes, it does.

(2) The unique ID register address is:

- UID0 : 0x40000200

- UID1 : 0x40000204

0 Likes

Dear Takashi-san,

Thank you very much for your answers!

So, anyway, "Yes to (1)" is a good news.

But as far as the customer and we tried

with at least four FM0-64L-S6E1C3 boards,

all the IDs were 0.

Could you please confirm that the device(s) on the FM0-64L-S6E1C3 have

ID=0 intentionally or some early silicon revision of the device had ID=0,

or (I hope this is not the case but) the information about (1) was wrong.

Best Regards,

13-Mar-2019

Motoo tanaka

0 Likes

FYI,

Board1: FM0-64L-S6E1C3 REV.**

Device1: 6E1C32D0A53266010 ES

Board1: FM0-64L-S6E1C3 REV.**

Device1: 6E1C32D0A53266010 ES

moto

0 Likes

Just information on the current status.

Checked our FM0-64L-S6E1C3 boards on our side and confirmed the Unique ID is 0x00000000.

0 Likes

it is confirmed that

1) Unique ID is supported by Production Device.

2) there is a case that Unique ID is NOT written in ES Device (specially for early sample).

As you informed Device information, ES device is mounted on your Kit...

Apologize for your inconvenience may be caused by this.

Dear Takashi-san,

Thank you very much for your answer!

I wonder if newly shipped evaluation boards have the production device(s) or not...

Best Regards,

18-Mar-2019

Motoo Tanaka

0 Likes