aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorGrigori Goronzy <greg@kinoho.net>2018-06-28 00:21:23 +0200
committerKevinOConnor <kevin@koconnor.net>2018-06-27 18:21:23 -0400
commiteb020439431d5fcba272f663a249ce1bf6448b1e (patch)
tree6e9163eaea2c6aedbf7a3c869b6044fd55356ab5 /docs
parent4889e8241d441141ae6826550607d08ef3011f60 (diff)
downloadkutter-eb020439431d5fcba272f663a249ce1bf6448b1e.tar.gz
kutter-eb020439431d5fcba272f663a249ce1bf6448b1e.tar.xz
kutter-eb020439431d5fcba272f663a249ce1bf6448b1e.zip
stm32f1: add port documentation (#425)
Fixes #412. Signed-off-by: Grigori Goronzy <greg@chown.ath.cx>
Diffstat (limited to 'docs')
-rw-r--r--docs/stm32f1.md47
1 files changed, 47 insertions, 0 deletions
diff --git a/docs/stm32f1.md b/docs/stm32f1.md
new file mode 100644
index 00000000..03a2b623
--- /dev/null
+++ b/docs/stm32f1.md
@@ -0,0 +1,47 @@
+This document describes how the STM32F1 port operates and how it can be used on
+STM32-based boards, such as the "Blue Pill". STM32 MCUs are not used on any
+Arduino boards, so their restrictions aren't as widely known and less straight
+forward compared to common Arduino compatible boards. There aren't any standard
+pin mappings either.
+
+General considerations
+======================
+
+The STM32 port currently requires an 8 MHz crystal for correct operation. The
+host communication only supports a standard UART. USB serial (CDC ACM) might be
+useful for some configurations, but is unimplemented. The port is currently
+designed for and tested with STM32F103xB series MCUs, but it should work with
+any STM32F103 series MCUs with minimal changes.
+
+Unlike Arduino-based boards, typically there is no automatic reset on serial
+connection with STM32 boards. Please use `restart_method: command` with the
+STM32F1 port.
+
+Fixed pins
+==========
+
+The UART used for communication with the host is fixed to pins PA9 (TX) and PA10
+(RX). SWD pins (PA13/PA14) are enabled for debugging and cannot be used for any
+I/O.
+
+Digital I/O
+===========
+
+All pins that aren't part of the fixed set can be used for digital I/O. Pins are
+referred to by their primary name, e.g. `PA1`. Do not try to use Arduino pin
+aliases in your configuration. See ST's datasheets for more details. The
+[STM32Duino](http://wiki.stm32duino.com/index.php?title=Blue_Pill) wiki has more
+info on the popular "Blue Pill" board.
+
+Analog inputs
+=============
+
+All ADC-capable pins can be used as analog inputs with the same naming as
+digital I/O pins. Small packages MCUs (e.g. LFQP48) have 10 channels (PA0-PA7,
+PB0-PB1), while larger package devices have 16 channels (PA0-PA7, PB0-PB1,
+PC0-PC5).
+
+SPI
+===
+
+SPI support is currently unimplemented. \ No newline at end of file