cancel
Showing results for 
Search instead for 
Did you mean: 

Sector and page size on STM32F072C8

gmate1
Associate II
Posted on December 08, 2015 at 11:30

I need to find out the sector and page size on my particular SOC, which is STM32F072C8T6. According to the part number information from the data sheet (DM00090510), this is a 64 kB flash memory version. From the reference manual (DM00031936), section 3.2.1, Table 5, it seems that on this system I have a total of 16 sectors with each sector containing two pages of 2kB size each. Thus making each sector 4kB long. I'm referring the IAP program that was provided by ST for STM32F051R8 based evaluation board and this software  (STSW-STM32116) assumes the page size of 1kB. I believe I need to update this and some other information in the IAP driver to use it for my target board (STM32F072C8T6) and hence I'm wondering if this can be done by reading some configuration register to find out the internal memory layout (sector and page layout) . I guess that incorrect sector and page size etc setting might be the reason that I'm getting into

/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/IAP%20Multiple%20application%20firmware%20in%20main%20flash%20memory&FolderCTID=0x01200200770978C69A1141439FE559EB459D7580009C4E14902C3CDE46A77F0FFD06506F5B&currentviews=41

problem.

Thanks.

#stm32
3 REPLIES 3
Posted on December 08, 2015 at 15:55

Well you tend have to customize for your specific part choice. As I recall there's a chip id register, and the size of the flash (total) is in the System ROM at a specific location. The Flash Loader Demonstrator has a file which describes IDs, and memory locations, which it uses to infer details it needs. The USB DfuSe stuff comes back with a set of descriptors.

The F2/F4 parts have generally had fewer die, so are more uniform in configuration. The F1's had a whole array of die which went from low to high end with slightly different sector sizes to account for the larger memories in the top end devices.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
gmate1
Associate II
Posted on December 08, 2015 at 16:30

I'm not sure, If I have understood you correctly, however what I've understood is that, I should be able to read some descriptors and be able to figure out the memory layout. I'll investigate more on this. In the meantime, based on the information in reference manual and what I've understood for this particular SOC, the main flash memory layout for STM32F072C8T6 is as below:

</colgroup>

Start address

0x08000000

End address

0x08010000

Size

0x10000 (64 kB)

Page size

2 kB

Number of pages

32

Erase sector size

4kB

Initial content of the memory

0xFF

Memory Endianess

Little

Processor address space

4GB

Erase granularity

Page level

The last one was a surprise to me, as sometime back I interfaced a serial NOR external flash memory with this same SOC over SPI bus and it had sector-wise erase granularity. 
Posted on December 08, 2015 at 17:38

Honestly not a part I've spent a lot of time on.

There do seem to be a number of discrepancies in the software and documentation.

STM32F072B-Discovery_FW_V1.0.1\Projects\Peripheral_Examples\FLASH_Program\main.c

Infers 1KB pages

The data sheet mentions 4K pages, and provides erase times for 2K ones,

http://www.st.com/web/en/resource/technical/document/datasheet/DM00090510.pdf

The parts themselves can be 64KB or 128KB, might be a single die.

I think the actuality could be deduced fairly quickly with a simple fill/erase test in the 32KB region.

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