STM32
https://stm32world.com/wiki/STM32_Memory_Map
https://github.com/stm32duino/Arduino_Core_STM32
https://uraltone.com/stm32f401ccu6-kehitysalusta-usb-c.html
https://github.com/stlink-org/stlink
https://kleinembedded.com/stm32-without-cubeide-part-1-the-bare-necessities/
STM32 F1
Bluepill
Cortex-M3 ARM @72 MHz, 20 Kb RAM and 64Kb Flash. 3.3V, some of its pins are 5V tolerant.
STMicrelectronics RM0008 STM32F10xxx Reference Manual
STMicrelectronics AN2834 Application Note: How to get the best ADC accuracy in STM32 microcontrollers
The Generic STM32F103 Pinout Diagram, Rasmus Friis Kjeldsen
STM32 F4
Blackpill
Cortex-M4 @84 Mhz,with DSP, FPU 64 Kb of RAM and 256Kb flash
https://www.st.com/en/embedded-software/stsw-stm32065.html
STM32 N6
https://estore.st.com/en/nucleo-n657x0-q-cpn.html
Cortex-M55
Fake
Is my bluepill a fake one? did I blow it up or does it miss some bootloader? In run mode the blink program runs.
Fake unlicensed Gigadevice and other clones exist
https://mecrisp-stellaris-folkdoc.sourceforge.io/bluepill-diags-v1.640.html
https://www.e-tinkers.com/2020/01/getting-started-with-stm32-and-things-you-need-to-be-aware-of/
Bluepill
https://stm32-base.org/boards/STM32F103C8T6-Blue-Pill
https://www.youtube.com/watch?v=Myon8H111PQ
https://www.youtube.com/watch?v=L670v-Oghs4
Based on Maple Mini from Leaflabs, does not have USB-to-Serial chip
Programmer | Bluepill |
RxD | A9 |
TxD | A10 |
5V | 5V |
GND | GND |
115200baud, 8E1 (even parity) ... Failed to detect F7 ... apparently the stm32 reads one byte to detect the baud speed.
USB D+ pin has 10kOhm insted of 1.5kOhm
boot0 set to 1 to enable programmer mode
boot1 set to 0 is system memory and set to 1 is embedded sram
https://deepbluembedded.com/stm32-boot-modes-stm32-boot0-boot1-pins/
ST-Link
https://estore.st.com/en/st-link-v2-cpn.html
clone: https://www.partco.fi/en/measurement/debugging/20140-stlinkv2.html
The ST-Link/V2 is based on a STM32F103C8 it has an ERNI 4-pin SWIM connector and a 20 pin flat ribbon for JTAG (TCK, TMS, TDI, TDO) / SWD serial wire debugging
For STM8, use the SWIM single wire interface module
For STM32, use the 20-pin interface. Connect VPP, GND, CLK, DIO
https://stm32-base.org/guides/connecting-your-debugger.html#official-st-linkv2
https://waterpigs.co.uk/articles/black-blue-pill-stm32-st-link-connection/
https://jonathanklimt.de/electronics/programming/embedded-rust/rust-on-stm32-2/
https://docs.rs/stm32f1xx-hal/latest/stm32f1xx_hal/index.html
https://github.com/stm32-rs/stm32f1xx-hal/tree/master
rustup update rustup target install thumbv7m-none-eabi cargo install cargo-flash cargo init rusty-blink
openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg
cargo flash --release --chip stm32f103c8
Arduino
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
https://www.phippselectronics.com/blue-pill-programming-via-usb/
https://github.com/stm32duino/Arduino_Core_STM32/wiki/HAL-configuration
https://github.com/Serasidis/STM32_HID_Bootloader/releases
stm32flash.exe -g 0x8000000 -b 115200 -w hid_generic_pc13.bin COM2