Skip to main content
ivanov-i
Associate
May 27, 2008
Question

STM32 CPU Identification

  • May 27, 2008
  • 15 replies
  • 3503 views
Posted on May 27, 2008 at 06:57

STM32 CPU Identification

    This topic has been closed for replies.

    15 replies

    16-32micros
    Associate III
    May 17, 2011
    Posted on May 17, 2011 at 12:23

    Dear Ivan,

    Yes we can :

    To read Flash Size : You can read Address 0x1FFFF7E0&0x1FFFF7E1 (2 Bytes)

    The unit is the Kbyte , For example if you Read

    0x0080 which is 128 in decimal that means the flash

    size is 128Kbytes.

    Same for RAM Size : You can read Address 0x1FFFF7E2&0x1FFFF7E3(2 Bytes)

    The unit is the Kbyte , For example if you Read

    0x000A which is 10 in decimal that means the RAM

    size is 10Kbytes.

    This information will be added in our Documentation in a while. I hope you will happy with these information :) Regards,

    STOne-32.

    ivanov-i
    ivanov-iAuthor
    Associate
    May 17, 2011
    Posted on May 17, 2011 at 12:23

    Dear STOne-32,

    Is it possible to identify the size of the Flash memory by reading some of the chip identification registers?

    Best regards,

    Ivan

    16-32micros
    Associate III
    May 17, 2011
    Posted on May 17, 2011 at 12:23

    Dear Dale,

    I presume that you have an early silicon we have given to boards assemblers

    and producers. Could you please provide your chip Data code written on the Package , I will investigate its tracibility and let you know why we can not read the RAM size. Thank you ;)

    STOne-32

    dale2
    Associate III
    May 17, 2011
    Posted on May 17, 2011 at 12:23

    STOne-32,

    Can you please verify these addresses? I can see the first value (FLASH size in KBytes) but the second value (SRAM in KBytes) always reads out as ''0xFF 0xFF'' on my STM3210B-EVAL.

    Thanks,

    Dale Wheat

    ivanov-i
    ivanov-iAuthor
    Associate
    May 17, 2011
    Posted on May 17, 2011 at 12:23

    Thank you STOne-32,

    This is exactly what I needed.

    Unfortunately, the chip I am playing now is also Rev. A and I read 0xFFFF in these locations.

    Will wait for the production board, which hopefully will have later chips.

    Ivan

    dale2
    Associate III
    May 17, 2011
    Posted on May 17, 2011 at 12:23

    STOne-32,

    Thank you for your reply. Here is the information you requested:

    The evaulation board is labelled: STM32F10X-128K-EVAL

    The STM32 device is labelled:

    STM32F103

    VBT6 B

    2209P VC

    MLT 22 735

    ST (e4) ARM

    P03

    I hope the date code is in there, somewhere. I'm not 100% certain about the final ''3'' on the last line.

    Thanks,

    Dale Wheat

    dale2
    Associate III
    May 17, 2011
    Posted on May 17, 2011 at 12:23

    Ivan,

    Perhaps STOne-32 can verify this for us, but I think we can make some assumptions about the SRAM size based on the FLASH size. This would only apply to Rev A silicon, which we can identify by the ''0xFF 0xFF'' reported.

    For SMT32F101 (access line) devices:

    32K FLASH = 6K SRAM

    64K FLASH = 10K SRAM

    128K FLASH = 16K SRAM

    For STM32F103 (performance line) devices:

    32K FLASH = 10K SRAM

    64K FLASH = 20K SRAM

    128K FLASH = 20K SRAM

    Now the question becomes: How do we differentiate the 101 and 103 devices from each other?

    Thanks,

    Dale Wheat

    16-32micros
    Associate III
    May 17, 2011
    Posted on May 17, 2011 at 12:23

    Hi Dale , ivanov-i,

    For revA this is an early engineering silicon and so these locations are blanks. For Dale device, I presume that this device date code which is 735

    means Week 35 , Year 2007 and was prepared to put on our evaluation boards before including the whole Flash and RAM size on these locations. But now all devices are embedding this feature and also another one that I will let you know in a while, I have a device 745 and containing the right sizes.

    Hope this helps you. You can order your STM32 sample on-line for free using our web pages. Cheers,

    STOne-32

    dale2
    Associate III
    May 17, 2011
    Posted on May 17, 2011 at 12:23

    STOne-32,

    Thank you for the information. I have requested some shiny, new parts to upgrade my evaluation board.

    Were there any Rev A access line parts delivered? If not, we can assume that when we read ''0xFF 0xFF'' in the SRAM size location that it is a performance line part and then we'd know what size the SRAM really was (see previous post).

    If so, then how can we distinguish between the access and performance line parts via the bootloader?

    Thanks,

    Dale Wheat

    sjo
    Associate III
    May 17, 2011
    Posted on May 17, 2011 at 12:23

    STOne-32,

    I am updating openocd support for the newer high density parts 256/512k flash.

    From the data i can see that the new parts have a DBGMCU_IDCODE:DEV_ID of 0x414 compared to the smaller parts having 0x410.

    My question is related to the flash size register (0x1FFFF7E0).

    Does this register give us the numbers of 1K or 2K sectors, as the high density parts now have 2k sectors.

    Cheers

    sjo