cancel
Showing results for 
Search instead for 
Did you mean: 

STM32U5xx: CPUID and REVID - where to find documentation of the expected values?

tjaekel
Lead

I read and display the CPUID and REVID on my project.
I see the difference between using an U575 chip vs. U5A5 chip (NUCLEO boards):

 

U5A5:
CPUID: 0x410FD214
REVID: 0x30016481
U575:
CPUID: 0x410FD214
REVID: 0x20016482

 

OK, based on ARM Cortex-M33 documentation: the same CPUID makes sense (and it is the same on different boards): the 214 at the end means: CM33 (the 41 should be the vendor).

But now I want to verify the REVID:

  • I cannot find any information in the MCU reference manual, neither in the datasheet
  • it looks like, the SCB->CPUID (and REVID) register content is not mentioned anymore in any document (as it was/is in "older" MCUs manuals)

I want to check during runtime, on which MCU the code is running: "is it a U5A5 or a U575?"
How to do? (or where to find how the REVID is coded and if it would tell me the target I am running on)

I see the difference on different boards, via REVID. I want to verify with manuals, documentation if it is the expected one (telling me: "it is a U5A5").

Where to find?

1 ACCEPTED SOLUTION

Accepted Solutions

I know all this, saw also the package register. But both packages are the same (I solder U575 or U5A5, alternatively).

But - thank you!
the register telling me the flash size would help (I saw it but YOU got the great idea!:(
both chips are different in flash size (one is 4M, the other 2M). This would work (until U575 would be available also with 4M flash).

Just surprised: every chip I use (and even the chips I am working on for their development) - they have a register for ChipID (and revision number).

Even the debugger is able to tell me which chip it has found.
Why is it so hard to find the ChipID register for these MCUs? (I guess: it is there, just not documented in datasheet or RM.)

View solution in original post

7 REPLIES 7
FBL
ST Employee

Hello @tjaekel 

 

Sorry for the inconvenience. CPUID registers are detailed in the Arm® Cortex®-M33 Processor Technical Reference Manual

FBelaid_0-1706889023882.png

 

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

The reference manual says nothing about REVID and CPUID.

Edit: but it does say stuff about REV_ID and DEV_ID, which is what you want.

If you feel a post has answered your question, please click "Accept as Solution".

Sorry,
"Check section 76.1 in the reference manual: Unique device ID register (96 bits)" (not seen here as response, but I got it in my email) - it is NOT what I was talking about (I know this register: useful for USB IDs, ETH MAC addresses, ... I have used already on other projects).

Yes, I know this ARM document where I can figure out it is a CM33 (this 0xD21). The CPUID is clear for me.

I was asking about the REVID, which seems to be different, depending on U5A5 vs. U575.

I want to know if it is a U5A5 or a U575 (not just if CM33).

REVID register is not documented (and CPUID coming from ARM specification/doc is not mentioned, but obvious for me as part of the ARM IP used).

Still no clue how to distinguish during runtime which STMU5xx MCU I have on board.

Pavel A.
Evangelist III

U5A5 has crypto. U575 has no crypto. This likely can be detected n runtime.

There's also the Package data register (RM0456 76.3). It allows to distinguish packages (LQFP, BGA...). And flash size register, to distinguish parts by flash size.

 

I know all this, saw also the package register. But both packages are the same (I solder U575 or U5A5, alternatively).

But - thank you!
the register telling me the flash size would help (I saw it but YOU got the great idea!:(
both chips are different in flash size (one is 4M, the other 2M). This would work (until U575 would be available also with 4M flash).

Just surprised: every chip I use (and even the chips I am working on for their development) - they have a register for ChipID (and revision number).

Even the debugger is able to tell me which chip it has found.
Why is it so hard to find the ChipID register for these MCUs? (I guess: it is there, just not documented in datasheet or RM.)

u5_dbgmcu_idcode.jpg

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Wau, cool. Thank you very much
(exactly what I was looking for)

Best answer I ever got in this forum...