aboutsummaryrefslogtreecommitdiffstats
path: root/docs/source
diff options
context:
space:
mode:
Diffstat (limited to 'docs/source')
-rw-r--r--docs/source/adc.rst4
-rw-r--r--docs/source/hardware/maple-ret6.rst146
-rw-r--r--docs/source/hardware/maple.rst90
-rw-r--r--docs/source/lang/api/board-values.rst13
-rw-r--r--docs/source/lang/api/constants.rst1
-rw-r--r--docs/source/lang/api/hardwarespi.rst2
-rw-r--r--docs/source/lang/api/serial.rst2
-rw-r--r--docs/source/language-index.rst2
-rw-r--r--docs/source/libmaple/api/systick.rst3
-rw-r--r--docs/source/libs/servo.rst10
-rw-r--r--docs/source/systick.rst2
-rw-r--r--docs/source/usart.rst37
12 files changed, 172 insertions, 140 deletions
diff --git a/docs/source/adc.rst b/docs/source/adc.rst
index af613cc..f3d5f55 100644
--- a/docs/source/adc.rst
+++ b/docs/source/adc.rst
@@ -20,7 +20,7 @@ number of techniques must be used to get good precision and accuracy.
Noise and Bias
--------------
-.. FIXME [0.0.10, Maple-specific]
+.. FIXME [0.0.11, Maple form factor-specific]
The biggest issues with analog-digital conversion are noise and bias.
With the Maple, we have tried to isolate the ADC pins and traces from
@@ -38,7 +38,7 @@ voltages that the sample is being compared against. In the case of the
Maple, the high reference is |vcc| and the low reference is ground.
This means that noise or fluctuations on either |vcc| or ground will
affect the measurement. It also means that the voltage you are trying
-to sample must be between ground and 3.3V.
+to sample must be between ground and 3.3V.
.. _adc-range:
diff --git a/docs/source/hardware/maple-ret6.rst b/docs/source/hardware/maple-ret6.rst
index 2f23bc4..b8970e4 100644
--- a/docs/source/hardware/maple-ret6.rst
+++ b/docs/source/hardware/maple-ret6.rst
@@ -14,7 +14,7 @@ Technical Specifications
* MCU: **STM32F103RET6**, a 32-bit ARM Cortex M3 microprocessor
* Clock Speed: **72 MHz**
* **512KB Flash** and **64KB SRAM**
- * 44 Digital I/O Pins (:ref:`GPIO <gpio>`)
+ * 43 Digital I/O Pins (:ref:`GPIO <gpio>`)
* 16 Analog Input pins, 12 bit **ADC** resolution (:ref:`ADC
<adc>`)
* Built-in, 2 channel **DAC** at 12 bit resolution
@@ -73,12 +73,22 @@ GPIO Information
----------------
The RET6 Edition features 38 ready-to-use general purpose input/output
-(GPIO) pins for digital input/output, numbered ``D0`` through ``D37``.
-These numbers correspond to the numeric values next to each header on
-the Maple silkscreen. More GPIOs (numbered ``D39``\ --``D43``) are
-available through use in combination with the
+(see :ref:`gpio`) pins for digital input/output, numbered ``D0``
+through ``D37``. These numbers correspond to the numeric values next
+to each header on the Maple silkscreen.
+
+.. _maple-ret6-but:
+
+Pin ``D38`` is the board's :ref:`button pin <lang-board-values-but>`.
+It is thus mainly useful as an :ref:`input <lang-pin-levels>`. The
+pin will :ref:`read <lang-digitalread>` ``HIGH`` when the :ref:`button
+is pressed <lang-isbuttonpressed>`.
+
+More GPIOs (numbered ``D39``\ --``D42``) are available if you use the
:ref:`lang-disabledebugports` function; see the :ref:`board-specific
debug pin constants <lang-board-values-debug>` for more information.
+(See :ref:`this erratum <maple-ret6-nrst-pb4>` for information about
+the pin numbered ``43`` on the silkscreen).
.. TODO [0.1.0] silkscreen pictures which expand abbreviations
@@ -87,64 +97,65 @@ debug pin constants <lang-board-values-debug>` for more information.
Master Pin Map
^^^^^^^^^^^^^^
-.. TODO [0.0.10] Update from base Maple information
-
This table shows the available functionality on every GPIO pin, by
peripheral type. The "STM32" column refers to the port and number that
the header is connected to on the microcontroller. The "5V?" column
documents whether or not the pin is 5 volt tolerant.
.. csv-table::
- :header: "Pin", "STM32", ":ref:`ADC <adc>`", ":ref:`Timer <timers>`", ":ref:`I2C <i2c>`", ":ref:`UART <usart>`", ":ref:`SPI <spi>`", "5v?"
-
- "D0", "PA3", "ADC3", "TIM2_CH4", "-", "USART2_RX", "-", "No"
- "D1", "PA2", "ADC2", "TIM2_CH3", "-", "USART2_TX", "-", "No"
- "D2", "PA0", "ADC0", "TIM2_CH1_ETR", "-", "USART2_CTS", "-", "No"
- "D3", "PA1", "ADC1", "TIM2_CH2", "-", "USART2_RTS", "-", "No"
- "D4", "PB5", "-", "-", "ISC1_SMBA", "-", "-", "No"
- "D5", "PB6", "-", "TIM4_CH1", "I2C1_SCL", "-", "-", "Yes"
- "D6", "PA8", "-", "TIM1_CH1", "-", "USART1_CK", "-", "Yes"
- "D7", "PA9", "-", "TIM1_CH2", "-", "USART1_TX", "-", "Yes"
- "D8", "PA10", "-", "TIM1_CH3", "-", "USART1_RX", "-", "Yes"
- "D9", "PB7", "-", "TIM4_CH2", "I2C1_SDA", "-", "-", "Yes"
- "D10", "PA4", "ADC4", "-", "-", "USART2_CK", "SPI1_NSS", "No"
- "D11", "PA7", "ADC7", "TIM3_CH2", "-", "-", "SPI1_MOSI", "No"
- "D12", "PA6", "ADC6", "TIM3_CH1", "-", "-", "SPI1_MISO", "No"
- "D13", "PA5", "ADC5", "-", "-", "-", "SPI1_SCK", "No"
- "D14", "PB8", "-", "TIM4_CH3", "-", "-", "-", "Yes"
- "D15", "PC0", "ADC10", "-", "-", "-", "-", "No"
- "D16", "PC1", "ADC11", "-", "-", "-", "-", "No"
- "D17", "PC2", "ADC12", "-", "-", "-", "-", "No"
- "D18", "PC3", "ADC13", "-", "-", "-", "-", "No"
- "D19", "PC4", "ADC14", "-", "-", "-", "-", "No"
- "D20", "PC5", "ADC15", "-", "-", "-", "-", "No"
- "D21", "PC13", "-", "-", "-", "-", "-", "No"
- "D22", "PC14", "-", "-", "-", "-", "-", "No"
- "D23", "PC15", "-", "-", "-", "-", "-", "No"
- "D24", "PB9", "-", "TIM4_CH4", "-", "-", "-", "Yes"
- "D25", "PD2", "-", "TIM3_ETR", "-", "-", "-", "Yes"
- "D26", "PC10", "-", "-", "-", "-", "-", "Yes"
- "D27", "PB0", "ADC8", "TIM3_CH3", "-", "-", "-", "No"
- "D28", "PB1", "ADC9", "TIM3_CH4", "-", "-", "-", "No"
- "D29", "PB10", "-", "-", "I2C2_SCL", "USART3_TX", "-", "Yes"
- "D30", "PB11", "-", "-", "I2C2_SDA", "USART3_RX", "-", "Yes"
- "D31", "PB12", "-", "TIM1_BKIN", "I2C2_SMBA", "USART3_CK", "SPI2_NSS", "Yes"
- "D32", "PB13", "-", "TIM1_CH1N", "-", "USART3_CTS", "SPI2_SCK", "Yes"
- "D33", "PB14", "-", "TIM1_CH2N", "-", "USART3_RTS", "SPI2_MISO", "Yes"
- "D34", "PB15", "-", "TIM1_CH3N", "-", "-", "SPI2_MOSI", "Yes"
- "D35", "PC6", "-", "-", "-", "-", "-", "Yes"
- "D36", "PC7", "-", "-", "-", "-", "-", "Yes"
- "D37", "PC8", "-", "-", "-", "-", "-", "Yes"
-
-.. TODO [0.0.10] Another table for the JTAG pins
+ :header: Pin, STM32, :ref:`ADC <adc>`, :ref:`Timer <timers>`, :ref:`I2C <i2c>`, :ref:`UART <usart>`, :ref:`SPI <spi>`, 5v?
+
+ D0, PA3, ADC3, TIM2_CH4, -, USART2_RX, -, -
+ D1, PA2, ADC2, TIM2_CH3, -, USART2_TX, -, -
+ D2, PA0, ADC0, TIM2_CH1_ETR, -, USART2_CTS, -, -
+ D3, PA1, ADC1, TIM2_CH2, -, USART2_RTS, -, -
+ D4, PB5, -, -, ISC1_SMBA, -, SPI3_MOSI, -
+ D5, PB6, -, TIM4_CH1, I2C1_SCL, -, -, Yes
+ D6, PA8, -, TIM1_CH1, -, USART1_CK, -, Yes
+ D7, PA9, -, TIM1_CH2, -, USART1_TX, -, Yes
+ D8, PA10, -, TIM1_CH3, -, USART1_RX, -, Yes
+ D9, PB7, -, TIM4_CH2, I2C1_SDA, -, -, Yes
+ D10, PA4, ADC4, -, -, USART2_CK, SPI1_NSS, -
+ D11, PA7, ADC7, TIM3_CH2, -, -, SPI1_MOSI, -
+ D12, PA6, ADC6, TIM3_CH1, -, -, SPI1_MISO, -
+ D13, PA5, ADC5, -, -, -, SPI1_SCK, -
+ D14, PB8, -, TIM4_CH3, -, -, -, Yes
+ D15, PC0, ADC10, -, -, -, -, -
+ D16, PC1, ADC11, -, -, -, -, -
+ D17, PC2, ADC12, -, -, -, -, -
+ D18, PC3, ADC13, -, -, -, -, -
+ D19, PC4, ADC14, -, -, -, -, -
+ D20, PC5, ADC15, -, -, -, -, -
+ D21, PC13, -, -, -, -, -, -
+ D22, PC14, -, -, -, -, -, -
+ D23, PC15, -, -, -, -, -, -
+ D24, PB9, -, TIM4_CH4, -, -, -, Yes
+ D25, PD2, -, TIM3_ETR, -, -, UART5_RX, Yes
+ D26, PC10, -, -, -, -, UART4_TX, Yes
+ D27, PB0, ADC8, TIM3_CH3, -, -, -, -
+ D28, PB1, ADC9, TIM3_CH4, -, -, -, -
+ D29, PB10, -, -, I2C2_SCL, USART3_TX, -, Yes
+ D30, PB11, -, -, I2C2_SDA, USART3_RX, -, Yes
+ D31, PB12, -, TIM1_BKIN, I2C2_SMBA, USART3_CK, SPI2_NSS, Yes
+ D32, PB13, -, TIM1_CH1N, -, USART3_CTS, SPI2_SCK, Yes
+ D33, PB14, -, TIM1_CH2N, -, USART3_RTS, SPI2_MISO, Yes
+ D34, PB15, -, TIM1_CH3N, -, -, SPI2_MOSI, Yes
+ D35, PC6, -, TIM8_CH1, -, -, -, Yes
+ D36, PC7, -, TIM8_CH2, -, -, -, Yes
+ D37, PC8, -, TIM8_CH3, -, -, -, Yes
+ D38, PC9, -, TIM8_CH4, -, -, -, Yes
+ D39, PA13, -, -, -, -, -, Yes
+ D40, PA14, -, -, -, -, -, Yes
+ D41, PA15, -, -, -, -, SPI3_NSS, Yes
+ D42, PB3, -, -, -, -, SPI3_SCK, Yes
Timer Pin Map
^^^^^^^^^^^^^
-.. TODO [0.0.10] Add Timer 5,6,7,8 information
-
The following table shows what pins are associated with a particular
-timer's capture/compare channels.
+timer's capture/compare channels. Note that timer 5's channels share
+pins with timer 2 (e.g., timer 5 channel 1 is also available on D2,
+channel 2 on D3, etc.).
.. csv-table::
:header: Timer, Ch. 1, Ch. 2, Ch. 3, Ch. 4
@@ -154,6 +165,7 @@ timer's capture/compare channels.
2 | D2 | D3 | D1 | D0
3 | D12 | D11 | D27 | D28
4 | D5 | D9 | D14 | D24
+ 8 | D35 | D36 | D37 | :ref:`D38 <maple-ret6-but>`
.. _maple-ret6-exti-map:
@@ -306,25 +318,31 @@ Errata
This section lists known issues and warnings for the Maple RET6 Edition.
* **Power Supply Marketing Mistake**: We originally sold the Maple
- advertising that it was capable of supplying up to 800 mA; the
- correct value is 500 mA.
+ RET6 Edition advertising that it was capable of supplying up to 800
+ mA; the correct value is 500 mA.
.. _maple-ret6-uart-errata:
-* **UART4, UART5 GPIOs unavailable**: Pins related to the digital
- to analog converter (DAC) and UARTs 4 and 5 are not broken out to
- headers. The RET6 Edition's hardware layout is identical to that of
- the Maple Rev 5, which wasn't designed for use with these
+* **UART4, UART5 GPIOs unavailable**: Pins related to UARTs 4 and 5
+ are not broken out to headers (specifically, PC11/UART4_RX and
+ PC12/UART5_TX). The RET6 Edition's hardware layout is identical to
+ that of the Maple Rev 5, which wasn't designed for use with these
STM32F103RET6-only peripherals.
* **DAC channel 2 on BOARD_LED_PIN**: The Maple Rev 5 connects PA5 to
the board's built-in LED; this is the same GPIO bit which is
- connected to the DAC's channel 2 output.
+ connected to the DAC's channel 2 output. This is also due to the
+ RET6 Edition's board layout being copied from the base Maple Rev 5.
+
+.. _maple-ret6-nrst-pb4:
-* **Reset and NJTRST tied together**: The MCU's reset pin is connected
- to PB4, the NJTRST (JTAG reset) pin, which is pin 43. Thus,
- attempting to use pin 43 as a GPIO will reset your board (and also
- prevents the JTAG "reset halt" command from working properly).
+* **Reset and PB4 tied together**: The Maple's reset line is also
+ connected to PB4, which is labeled on the silkscreen as pin 43.
+ Thus, attempting to use pin 43 as a GPIO may reset your board. This
+ has other implications. Since PB4 is also the JTAG NJTRST line,
+ this prevents the :ref:`JTAG <jtag>` "reset halt" command from
+ working properly. Also, since PB4 is SPI3_MISO, the SPI3 peripheral
+ is not fully usable.
Recommended Reading
-------------------
@@ -338,3 +356,5 @@ Recommended Reading
* `Programming Manual
<http://www.st.com/stonline/products/literature/pm/15491.pdf>`_
(PDF; assembly language and register reference)
+ * `ST's STM32F103RE reference page
+ <http://www.st.com/internet/mcu/product/164485.jsp>`_
diff --git a/docs/source/hardware/maple.rst b/docs/source/hardware/maple.rst
index c2dc895..bb4bf35 100644
--- a/docs/source/hardware/maple.rst
+++ b/docs/source/hardware/maple.rst
@@ -14,7 +14,7 @@ Technical Specifications
* MCU: **STM32F103RBT6**, a 32-bit ARM Cortex M3 microprocessor
* Clock Speed: **72 MHz**
* **128KB Flash** and **20KB SRAM**
- * 44 Digital I/O Pins (:ref:`GPIO <gpio>`)
+ * 43 Digital I/O Pins (:ref:`GPIO <gpio>`)
* 16 Analog Input Pins, 12-bit **ADC** resolution (:ref:`ADC
<adc>`)
* 15 **PWM** pins at 16-bit resolution (:ref:`PWM <pwm>`)
@@ -26,7 +26,7 @@ Technical Specifications
* Integrated **SPI** (:ref:`SPI <spi>`)
* Integrated **I2C** (:ref:`I2C <i2c>`)
* 7 Channels of Direct Memory Access (**DMA**)
- (:ref:`libmaple.dma`)
+ (:ref:`libmaple-dma`)
* 3 **USART** divices (:ref:`USART <usart>`)
* Four 4-channel **timers** (:ref:`Timers <timers>`)
* Supplies up to 500mA @ 3.3v (with separate 250 mA digital and
@@ -115,13 +115,23 @@ DONE will also light up.
GPIO Information
----------------
-The Maple features 38 ready-to-use general purpose input/output (GPIO)
-pins for digital input/output, numbered ``D0`` through ``D37``. These
-numbers correspond to the numeric values next to each header on the
-Maple silkscreen. More GPIOs (numbered ``D39``\ --``D43``) are
-available through use in combination with the
+The Maple features 38 ready-to-use general purpose input/output (see
+:ref:`gpio`) pins for digital input/output, numbered ``D0`` through
+``D37``. These numbers correspond to the numeric values next to each
+header on the Maple silkscreen.
+
+.. _maple-ret6-but:
+
+Pin ``D38`` is the board's :ref:`button pin <lang-board-values-but>`.
+It is thus mainly useful as an :ref:`input <lang-pin-levels>`. The
+pin will :ref:`read <lang-digitalread>` ``HIGH`` when the :ref:`button
+is pressed <lang-isbuttonpressed>`.
+
+More GPIOs (numbered ``D39``\ --``D42``) are available if you use the
:ref:`lang-disabledebugports` function; see the :ref:`board-specific
debug pin constants <lang-board-values-debug>` for more information.
+(See :ref:`this erratum <maple-nrst-pb4>` for information about the
+pin numbered ``43`` on the silkscreen).
.. TODO [0.1.0] silkscreen pictures which expand abbreviations
@@ -138,35 +148,35 @@ documents whether or not the pin is 5 volt tolerant.
.. csv-table::
:header: Pin, STM32, :ref:`ADC <adc>`, :ref:`Timer <timers>`, :ref:`I2C <i2c>`, :ref:`UART <usart>`, :ref:`SPI <spi>`, 5v?
- D0, PA3, ADC3, TIM2_CH4, -, USART2_RX, -, No
- D1, PA2, ADC2, TIM2_CH3, -, USART2_TX, -, No
- D2, PA0, ADC0, TIM2_CH1_ETR, -, USART2_CTS, -, No
- D3, PA1, ADC1, TIM2_CH2, -, USART2_RTS, -, No
- D4, PB5, -, -, ISC1_SMBA, -, -, No
+ D0, PA3, ADC3, TIM2_CH4, -, USART2_RX, -, -
+ D1, PA2, ADC2, TIM2_CH3, -, USART2_TX, -, -
+ D2, PA0, ADC0, TIM2_CH1_ETR, -, USART2_CTS, -, -
+ D3, PA1, ADC1, TIM2_CH2, -, USART2_RTS, -, -
+ D4, PB5, -, -, ISC1_SMBA, -, -, -
D5, PB6, -, TIM4_CH1, I2C1_SCL, -, -, Yes
D6, PA8, -, TIM1_CH1, -, USART1_CK, -, Yes
D7, PA9, -, TIM1_CH2, -, USART1_TX, -, Yes
D8, PA10, -, TIM1_CH3, -, USART1_RX, -, Yes
D9, PB7, -, TIM4_CH2, I2C1_SDA, -, -, Yes
- D10, PA4, ADC4, -, -, USART2_CK, SPI1_NSS, No
- D11, PA7, ADC7, TIM3_CH2, -, -, SPI1_MOSI, No
- D12, PA6, ADC6, TIM3_CH1, -, -, SPI1_MISO, No
- D13, PA5, ADC5, -, -, -, SPI1_SCK, No
+ D10, PA4, ADC4, -, -, USART2_CK, SPI1_NSS, -
+ D11, PA7, ADC7, TIM3_CH2, -, -, SPI1_MOSI, -
+ D12, PA6, ADC6, TIM3_CH1, -, -, SPI1_MISO, -
+ D13, PA5, ADC5, -, -, -, SPI1_SCK, -
D14, PB8, -, TIM4_CH3, -, -, -, Yes
- D15, PC0, ADC10, -, -, -, -, No
- D16, PC1, ADC11, -, -, -, -, No
- D17, PC2, ADC12, -, -, -, -, No
- D18, PC3, ADC13, -, -, -, -, No
- D19, PC4, ADC14, -, -, -, -, No
- D20, PC5, ADC15, -, -, -, -, No
- D21, PC13, -, -, -, -, -, No
- D22, PC14, -, -, -, -, -, No
- D23, PC15, -, -, -, -, -, No
+ D15, PC0, ADC10, -, -, -, -, -
+ D16, PC1, ADC11, -, -, -, -, -
+ D17, PC2, ADC12, -, -, -, -, -
+ D18, PC3, ADC13, -, -, -, -, -
+ D19, PC4, ADC14, -, -, -, -, -
+ D20, PC5, ADC15, -, -, -, -, -
+ D21, PC13, -, -, -, -, -, -
+ D22, PC14, -, -, -, -, -, -
+ D23, PC15, -, -, -, -, -, -
D24, PB9, -, TIM4_CH4, -, -, -, Yes
D25, PD2, -, TIM3_ETR, -, -, -, Yes
D26, PC10, -, -, -, -, -, Yes
- D27, PB0, ADC8, TIM3_CH3, -, -, -, No
- D28, PB1, ADC9, TIM3_CH4, -, -, -, No
+ D27, PB0, ADC8, TIM3_CH3, -, -, -, -
+ D28, PB1, ADC9, TIM3_CH4, -, -, -, -
D29, PB10, -, -, I2C2_SCL, USART3_TX, -, Yes
D30, PB11, -, -, I2C2_SDA, USART3_RX, -, Yes
D31, PB12, -, TIM1_BKIN, I2C2_SMBA, USART3_CK, SPI2_NSS, Yes
@@ -176,13 +186,11 @@ documents whether or not the pin is 5 volt tolerant.
D35, PC6, -, -, -, -, -, Yes
D36, PC7, -, -, -, -, -, Yes
D37, PC8, -, -, -, -, -, Yes
-
-.. TODO [0.0.10] JTAG pins
-
-.. The following pins are used for :ref:`jtag` debugging by default, but
-.. can be used as ordinary GPIOs through the use of the
-.. :ref:`lang-disabledebugports` function. (Though see :ref:`this
-.. erratum <maple-reset-njtrst>`).
+ D38, PC9, -, -, -, -, -, Yes
+ D39, PA13, -, -, -, -, -, Yes
+ D40, PA14, -, -, -, -, -, Yes
+ D41, PA15, -, -, -, -, -, Yes
+ D42, PB3, -, -, -, -, -, Yes
Timer Pin Map
^^^^^^^^^^^^^
@@ -288,7 +296,7 @@ This section lists the Maple's :ref:`board-specific values
- ``BOARD_USART2_RX_PIN``: 0
- ``BOARD_USART3_TX_PIN``: 29
- ``BOARD_USART3_RX_PIN``: 30
-- ``BOARD_NR_SPI``: 2
+- ``BOARD_NR_SPI``: 2
- ``BOARD_SPI1_NSS_PIN``: 10
- ``BOARD_SPI1_MOSI_PIN``: 11
- ``BOARD_SPI1_MISO_PIN``: 12
@@ -358,12 +366,14 @@ Rev 5
from its silkscreen. This mistake was fixed in later manufacturing
runs.
-.. _maple-reset-njtrst:
+.. _maple-nrst-pb4:
-* **Reset and NJTRST tied together**: The MCU's reset pin is connected
- to PB4, the NJTRST pin, which is pin 43. Thus, attempting to use
- pin 43 as a GPIO will reset your board (and also prevents the JTAG
- "reset halt") command from working properly.
+* **Reset and PB4 tied together**: The Maple's reset line is also
+ connected to PB4, which is labeled on the silkscreen as pin 43.
+ Thus, attempting to use pin 43 as a GPIO may reset your board. This
+ has other implications. Since PB4 is also the JTAG NJTRST line,
+ this prevents the :ref:`JTAG <jtag>` "reset halt" command from
+ working properly.
Rev 3
~~~~~
diff --git a/docs/source/lang/api/board-values.rst b/docs/source/lang/api/board-values.rst
index 5fbf20f..7198407 100644
--- a/docs/source/lang/api/board-values.rst
+++ b/docs/source/lang/api/board-values.rst
@@ -23,9 +23,6 @@ Documentation <index-boards>`.
Constants
---------
-.. TODO [systick.rst] Add a link to systick.rst instead of systick.h
-.. below, when systick.rst exists.
-
- ``CYCLES_PER_MICROSECOND``: Number of CPU cycles per microsecond on
your board.
@@ -35,9 +32,8 @@ Constants
- ``CLOCK_SPEED_HZ``: Clock speed of your board, in hertz (Hz). This
is the same as ``CLOCK_SPEED_MHZ`` × 1,000,000.
-- ``SYSTICK_RELOAD_VAL``: Value used when reloading the :ref:`SysTick
- <libmaple-systick>` timer's counter. For :ref:`lang-millis` to work
- properly, this must be ``CYCLES_PER_MICROSECOND`` × 1,000 - 1.
+- ``SYSTICK_RELOAD_VAL``: Value used when reloading the :ref:`systick`
+ timer's counter [#fmillis]_.
.. _lang-board-values-but:
@@ -205,3 +201,8 @@ See Also
- :ref:`lang-pwmwrite`
- :ref:`lang-enabledebugports`
- :ref:`lang-disabledebugports`
+
+.. rubric:: Footnotes
+
+.. [#fmillis] In order for :ref:`lang-millis` to work properly, this
+ must be ``CYCLES_PER_MICROSECOND`` × 1,000 - 1.
diff --git a/docs/source/lang/api/constants.rst b/docs/source/lang/api/constants.rst
index 00c1a5c..3ba99f0 100644
--- a/docs/source/lang/api/constants.rst
+++ b/docs/source/lang/api/constants.rst
@@ -42,6 +42,7 @@ Note that the ``true`` and ``false`` constants are typed in lowercase;
unlike e.g. ``HIGH``, ``LOW``, ``INPUT``, and ``OUTPUT`` (which are
described below).
+.. _lang-pin-levels:
Pin Levels: HIGH and LOW
------------------------
diff --git a/docs/source/lang/api/hardwarespi.rst b/docs/source/lang/api/hardwarespi.rst
index 289ded5..a80e429 100644
--- a/docs/source/lang/api/hardwarespi.rst
+++ b/docs/source/lang/api/hardwarespi.rst
@@ -43,7 +43,7 @@ Turning the SPI Port On
Now it's time to turn your SPI port on. Do this with the ``begin()``
function (an example is given below).
-.. FIXME [0.0.10] Breathe doesn't include the class; fix & submit pull req
+.. FIXME [0.0.11] Breathe doesn't include the class; fix & submit pull req
.. doxygenfunction:: HardwareSPI::begin
diff --git a/docs/source/lang/api/serial.rst b/docs/source/lang/api/serial.rst
index 0821f43..a08c9b7 100644
--- a/docs/source/lang/api/serial.rst
+++ b/docs/source/lang/api/serial.rst
@@ -12,7 +12,7 @@ devices.
Introduction
------------
-.. FIXME [0.0.10] UART4, UART5
+.. FIXME [0.0.12/Maple Native] UART4, UART5
To use a serial port to communicate with an external serial device,
connect the TX pin to your device's RX pin, the RX to your device's TX
diff --git a/docs/source/language-index.rst b/docs/source/language-index.rst
index 225a9ae..6c20605 100644
--- a/docs/source/language-index.rst
+++ b/docs/source/language-index.rst
@@ -24,7 +24,7 @@ programmers familiar with the Arduino language.
- If you're looking for pointers to low-level details, see the
:ref:`Language Recommended Reading
- <language-recommended-reading>`.
+ <language-recommended-reading>` and :ref:`libmaple` pages.
.. _index-language-index-cpp:
.. _index-language-index-api:
diff --git a/docs/source/libmaple/api/systick.rst b/docs/source/libmaple/api/systick.rst
index a8c0971..fa959f2 100644
--- a/docs/source/libmaple/api/systick.rst
+++ b/docs/source/libmaple/api/systick.rst
@@ -1,6 +1,7 @@
.. highlight:: c
-.. FIXME [0.0.10] move these to the right places:
+.. FIXME [0.1.0] move these to the right places once Breathe is fast
+.. enough to use for libmaple proper
.. _libmaple-systick_disable:
diff --git a/docs/source/libs/servo.rst b/docs/source/libs/servo.rst
index 3b96467..f131ee1 100644
--- a/docs/source/libs/servo.rst
+++ b/docs/source/libs/servo.rst
@@ -29,13 +29,6 @@ servomotor attached to pin 9, you could write ::
servo.attach(9);
-.. TODO [0.0.10] figure out the cpp domain well enough to replace
-.. references here
-
-.. _libs-servo-attach:
-
-.. _libs-servo-attached:
-
.. doxygenclass:: Servo
:members:
@@ -54,7 +47,8 @@ the servos with "bit-banged" :ref:`PWM <pwm>`, the Maple
implementation uses :ref:`timers <timers>` to drive the PWM directly.
Consequently, **the Maple implementation only allows Servo instances
-to** :ref:`attach <libs-servo-attach>` **to pins that support PWM**.
+to attach (via** :cpp:func:Servo::attach() **) to pins that support
+PWM**.
To determine if a pin supports PWM, you can either check if "PWM"
appears next to its number on your board's silkscreen, or look for it
diff --git a/docs/source/systick.rst b/docs/source/systick.rst
index 6f20133..afc8d09 100644
--- a/docs/source/systick.rst
+++ b/docs/source/systick.rst
@@ -1,3 +1,5 @@
+.. _systick:
+
SysTick
=======
diff --git a/docs/source/usart.rst b/docs/source/usart.rst
index 9506cc8..b3e1ea1 100644
--- a/docs/source/usart.rst
+++ b/docs/source/usart.rst
@@ -1,8 +1,7 @@
.. _usart:
-=======
- USART
-=======
+USART
+=====
.. contents:: Contents
:local:
@@ -10,15 +9,17 @@
Hardware/Circuit Design
-----------------------
-.. FIXME [0.0.10] UART4 and UART5
-.. FIXME [0.1.0] Maple Native and Mini info and links
+.. FIXME [0.0.12/Maple Native] UART4 and UART5, Native links
+.. FIXME [0.0.11] Mini info and links
-The Maple has 3 separate USART devices. In the most simple use case,
-the RX and TX pins are used to send data at a predetermined baudrate
-with the line voltage level relative to ground. Their usage is
-documented in the :ref:`Serial Ports <lang-serial>` language reference
-page. Which pins correspond to the USART TX and RX pins are given on
-your board's silkscreen, and also in the board-specific USART pin maps
+Each LeafLabs board has at least 3 separate USART devices. In the most
+simple use case, the RX and TX pins are used to send data at a
+predetermined baud rate with the line voltage level relative to
+ground. Their usage is documented in the :ref:`Serial Ports
+<lang-serial>` language reference page.
+
+Which pins correspond to the USART TX and RX pins are given on your
+board's silkscreen, and also in the board-specific USART pin maps
available here:
* :ref:`Maple <maple-usart-map>`
@@ -37,9 +38,11 @@ certainly be possible.
Recommended Reading
-------------------
-* `Wikipedia article on Universal asynchronous receiver/transmitter (USART) <http://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter>`_
-* `Arduino reference on Serial <http://arduino.cc/en/Reference/Serial>`_
-* STMicro documentation for STM32F103RB microcontroller:
-
- * `Datasheet <http://www.st.com/stonline/products/literature/ds/13587.pdf>`_ (pdf)
- * `Reference Manual <http://www.st.com/stonline/products/literature/rm/13902.pdf>`_ (pdf)
+* `Wikipedia article on Universal Asynchronous Receiver/Transmitter
+ (USART)
+ <http://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter>`_
+* `Arduino Serial reference
+ <http://arduino.cc/en/Reference/Serial>`_
+* ST `Reference Manual RM0008
+ <http://www.st.com/stonline/products/literature/rm/13902.pdf>`_
+ (PDF), Chapter 27.