Geehy APM32F0xx
The Geehy APM32F0xx are microcontrollers based on the Cortex-M0+ core. Following article also covers the Geehy APM32A0xx and APM32E0xx family.
Flash Banks
APM32F003 devices
| Flash Bank | Base address | Size | J-Link Support |
|---|---|---|---|
| Internal flash | 0x00000000 | Up to 32KB | |
| Option bytes | 0x00020400 | 16 Bytes |
Other devices
| Flash Bank | Base address | Size | J-Link Support |
|---|---|---|---|
| Internal flash | 0x08000000 | Up to 512KB | |
| Bootloader Area | 0x1FFFD800 | Up to 8KB | |
| Option bytes | 0x1FFFF800 | 16 Bytes |
Option Byte Programming
The APM32F0 series devices provide some option bytes which allow some "permanent" configuration as well as readout protection for the device. The option bytes become effective after a reset or, if the read protection is set while a debugger is still connected through JTAG/SWD,
become effective after a power-on-reset. The sequence, to program the option bytes consists of multiple read / write accesses to special function registers of the APM32F0 MCU.
The Option Bytes area consists of the actual option bytes and their corresponding complementary bytes. All complementary bytes are automatically set when writing the option bytes. The following tables describes the structure of the Option Bytes area:
APM32F003 devices
| Address | [31:24] | [23:16] | [15:08] | [07:00] |
|---|---|---|---|---|
| 0x00020400 | nUOB | UOB | nREADPROT | READPROT |
| 0x00020404 | nData1 | Data1 | nData0 | Data0 |
| 0x00020408 | nWRP1 | WRP1 | nWRP0 | WRP0 |
| 0x0002040C | nWRP3 | WRP3 | nWRP2 | WRP2 |
| 0x00020410 | --- | --- | nAFR | AFR |
Other devices
| Address | [31:24] | [23:16] | [15:08] | [07:00] |
|---|---|---|---|---|
| 0x1FFFF800 | nUOB | UOB | nREADPROT | READPROT |
| 0x1FFFF804 | nData1 | Data1 | nData0 | Data0 |
| 0x1FFFF808 | nWRP1 | WRP1 | nWRP0 | WRP0 |
| 0x1FFFF80C | nWRP3 | WRP3 | nWRP2 | WRP2 |
Writing a value of 0xFF inside READPROT will read-protect the APM32F0. In order to keep the device unprotected you have to write the correct key value to READPROT.
- APM32F00x = 0xA5
- APM32F0xx = 0xAA
Watchdog handling
The device has a watchdog that is fed during flash programming.
Device specific handling
Reset
The device uses normal Cortex-M reset, no special handling necessary, like described here. No device specific reset is necessary.
Evaluation Boards
- Geehy APM32F003F6P6 evaluation board
- Geehy APM32F030RCT6 evaluation board
- Geehy APM32F051R8T6 evaluation board
- Geehy APM32F072VBT6 evaluation board
- Geehy APM32F091VCT6 evaluation board
Example Applications
- APM32F003F6P6 Hello World
- APM32F030RCT6 Hello World
- APM32F051R8T6 Hello World
- APM32F072VBT6 Hello World
- APM32F091VCT6 Hello World