EasyManua.ls Logo

ST STM32F101xx series User Manual

ST STM32F101xx series
31 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
Page #1 background imageLoading...
Page #1 background image
August 2010 Doc ID 17863 Rev 1 1/31
PM0075
Programming manual
STM32F10xxx Flash memory microcontrollers
Introduction
This programming manual describes how to program the Flash memory of STM32F101xx,
STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx microcontrollers. For
convenience, these will be referred to as STM32F10xxx in the rest of this document unless
otherwise specified.
The STM32F10xxx embedded Flash memory can be programmed using in-circuit
programming or in-application programming.
The in-circuit programming (ICP) method is used to update the entire contents of the
Flash memory, using the JTAG, SWD protocol or the boot loader to load the user application
into the microcontroller. ICP offers quick and efficient design iterations and eliminates
unnecessary package handling or socketing of devices.
In contrast to the ICP method, in-application programming (IAP) can use any
communication interface supported by the microcontroller (I/Os, USB, CAN, UART, I
2
C, SPI,
etc.) to download programming data into memory. IAP allows the user to re-program the
Flash memory while the application is running. Nevertheless, part of the application has to
have been previously programmed in the Flash memory using ICP.
The Flash interface implements instruction access and data access based on the AHB
protocol. It implements a prefetch buffer that speeds up CPU code execution. It also
implements the logic necessary to carry out Flash memory operations (Program/Erase).
Program/Erase operations can be performed over the whole product voltage range.
Read/Write protections and option bytes are also implemented.
www.st.com
Question and Answer IconNeed help?

Do you have a question about the ST STM32F101xx series and is the answer not in the manual?

ST STM32F101xx series Specifications

General IconGeneral
SeriesSTM32F101xx
CategoryMicrocontroller
CoreARM Cortex-M3
Flash Memory16 KB to 128 KB
GPIO PinsUp to 80
Operating Voltage2.0 V to 3.6 V
ADC12-bit, up to 16 channels
TimersUp to 3 timers
Communication InterfacesI2C, SPI, USART

Summary

Introduction

Glossary

Overview

Features

Lists key features of the Flash memory, including density, organization, and interface capabilities.

Flash Module Organization

Details the memory organization based on device density, page size, and block structure.

Reading/Programming the Embedded Flash Memory

Introduction

Introduces the process of reading and programming the STM32F10xxx embedded Flash memory.

Read Operation

Explains how to read data from Flash memory, covering interfaces and prefetch buffer functionality.

Instruction Fetch

Details Cortex-M3 instruction fetching via I-Code and literal pool access via D-Code.

D-Code Interface

Describes the D-Code interface, an AHB interface for CPU access to Flash memory.

Flash Access Controller

Explains the arbiter that manages read requests from prefetch/I-code and D-Code interfaces.

Flash Program and Erase Controller (FPEC)

Introduces the FPEC block responsible for Flash programming and erase operations.

Key Values

Lists the essential key values (KEY1, KEY2) required to unlock the FPEC.

Unlocking the Flash Memory

Details the sequence to unlock the FPEC block and FLASH_CR register for write access.

Main Flash Memory Programming

Explains the procedure for programming the main Flash memory in 16-bit increments.

Standard Programming

Describes the standard half-word write operation for programming the main Flash memory.

Flash Memory Erase

Introduces methods for erasing Flash memory, including page and mass erase.

Page Erase

Outlines the step-by-step procedure for erasing a single page of Flash memory.

Mass Erase

Details the recommended sequence for a complete Flash memory mass erase operation.

Option Byte Programming

Explains how to program option bytes, including unlocking and writing procedures.

Option Byte Erase Procedure

Describes the sequence for erasing option bytes.

Protections

Covers mechanisms to protect Flash memory against unwanted access.

Read Protection

Details activation and management of read protection using option bytes.

Unprotection (Read Protection)

Explains the steps required to disable read protection on the Flash memory.

Write Protection

Describes the granularity and application of write protection for Flash memory pages.

Unprotection (Write Protection)

Details how to disable write protection under different scenarios.

Option Byte Block Write Protection

Explains the write protection mechanisms for the option bytes themselves.

Option Byte Description

Describes the purpose and configuration of the various option bytes.

Register Descriptions

Flash Access Control Register (FLASH_ACR)

Describes the FLASH_ACR register, controlling Flash access parameters like prefetch and latency.

FPEC Key Register (FLASH_KEYR)

Details the FLASH_KEYR register, used to provide keys for unlocking the FPEC.

Flash OPTKEY Register (FLASH_OPTKEYR)

Describes the FLASH_OPTKEYR register, used for unlocking option byte programming.

Flash Status Register (FLASH_SR)

Explains the FLASH_SR register for monitoring operation status and errors.

Flash Control Register (FLASH_CR)

Details the FLASH_CR register for initiating and controlling Flash operations.

Flash Address Register (FLASH_AR)

Describes the FLASH_AR register, used to specify addresses for Flash operations.

Option Byte Register (FLASH_OBR)

Explains the FLASH_OBR register for reading the programmed option bytes.

Write Protection Register (FLASH_WRPR)

Details the FLASH_WRPR register for read-only access to write protection settings.

Flash Register Map

Provides a map of Flash interface registers and their reset values.

Revision History

Related product manuals