cancel
Showing results for 
Search instead for 
Did you mean: 

STM32L162 - unique device id, address offset

matej
Associate II
Posted on April 10, 2014 at 12:59

Hello!

I'm trying to read STM32L162VD register U_ID (Unique device ID registers) ... If I refer to Reference manual, page 812, chapter 30.2  Unique device ID registers; base address is 0x1FF8 0050, for next scope of bytes is address offset 0x04, but for next (last) bytes is offset 0x14, but it's value is equal to zero...

uidLoc: c0f83f07

uidLoc+4: e6c71938

uidLoc+14: 0

Now I'm wondering if it is possible that this is an address offset error  in reference manual? Because if I read bytes with address offset 0x08 i get those values, which makes more sense then above:

uidLoc: c0f83f07

uidLoc+4: e6c71938

uidLoc+8: 4efcb103

Best regards and thanks for any useful info...

4 REPLIES 4
chen
Associate II
Posted on April 10, 2014 at 15:30

Hi

I think you right, the final offset should be +8 and NOT +14

The project I am on uses a STM32F405 and we use +8

Posted on April 10, 2014 at 15:44

The project I am on uses a STM32F405 and we use +8

Yes, but the L15x parts are different, and the Unique# has a hole in it.

[DEAD LINK /public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Unique%20Device%20ID%20not%20unique%21&FolderCTID=0x01200200770978C69A1141439FE559EB459D7580009C4E14902C3CDE46A77F0FFD06506F5B&currentviews=249]https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=%2Fpublic%2FSTe2ecommunities%2Fmcu%2FLists%2Fcortex_mx_stm32%2FUnique%20Device%20ID%20not%20unique!&FolderCTID=0x01200200770978C69A1141439FE559EB459D7580009C4E14902C3CDE46A77F0FFD06506F5B¤tviews=249

0x1FF80050,0x1FF80054,0x1FF80064 low/medium devices

0x1FF800D0,0x1FF800D4,0x1FF800E4 medium+/high devices

I don't have any 162 devices.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on April 10, 2014 at 15:55

Try printing out these values, perhaps we can identify what's going on.

printf(''%04X\n'', *((uint16_t *)0x1FF8004C) ); // Cat1 and 2

printf(''%04X\n'', *((uint16_t *)0x1FF800CC) ); // Cat3,4 and 5

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
matej
Associate II
Posted on April 11, 2014 at 08:44

Oh, thank you clive1

i'm such a dumb, i had an old reference manual from our local svn :\ there was base address just for Cat1 and Cat2.

Thank you once again