diff options
Diffstat (limited to 'docs/source/hardware')
| -rw-r--r-- | docs/source/hardware/maple-mini.rst | 402 | ||||
| -rw-r--r-- | docs/source/hardware/maple-native-beta.rst | 605 | ||||
| -rw-r--r-- | docs/source/hardware/maple-native.rst | 6 | ||||
| -rw-r--r-- | docs/source/hardware/maple-ret6.rst | 466 | ||||
| -rw-r--r-- | docs/source/hardware/maple.rst | 618 | 
5 files changed, 0 insertions, 2097 deletions
diff --git a/docs/source/hardware/maple-mini.rst b/docs/source/hardware/maple-mini.rst deleted file mode 100644 index c28211d..0000000 --- a/docs/source/hardware/maple-mini.rst +++ /dev/null @@ -1,402 +0,0 @@ -.. _maple-mini: - -Maple Mini -========== - -This page is a general resource for information specific to the Maple -Mini.  The Maple Mini is a smaller version of the Maple that fits on a -breadboard. - -.. contents:: Contents -   :local: - -.. TODO [dma.rst] Ref to dma.rst in sequel instead of libmaple-dma - -Technical Specifications ------------------------- - -* MCU: :ref:`STM32F103CBT6 <maple-mini-stdocs>`, a 32-bit ARM Cortex -  M3 microprocessor -* Clock Speed: **72 MHz** -* **128 KB Flash** and **20 KB SRAM** -* 34 :ref:`digital I/ pins (GPIOs) <gpio>` -* 12 :ref:`PWM <pwm>` pins at 16 bit resolution -* 9 :ref:`analog input (ADC) <adc>` pins at 12 bit resolution -* 2 :ref:`SPI <spi>` peripherals -* 2 :ref:`I2C <i2c>` peripherals -* 7 Channels of Direct Memory Access (**DMA**) (:ref:`libmaple-dma`) -* 3 :ref:`USART (serial port) <usart>` peripherals -* 1 advanced and 3 general-purpose :ref:`timers <timers>` -* Dedicated :ref:`USB <usb>` port for programming and communications -* :ref:`jtag` -* Nested Vectored Interrupt Controller (NVIC) (including -  :ref:`external interrupt <external-interrupts>` on GPIOs) -* Supplies up to 500 mA at 3.3 V, with :ref:`separate 250 mA digital -  and analog regulators <maple-mini-adc-bank>` for low-noise analog -  performance -* :ref:`Open source, four layer design <maple-mini-hardware>` -* Support for low power, sleep, and standby modes (<500 μA) -* Operating Voltage: 3.3 V -* Input Voltage (recommended): 3 V — 12 V -* Dimensions: 2.02″ × 0.72″ - -.. _maple-mini-powering: - -Powering the Maple Mini ------------------------ - -You can power the Maple Mini via the USB plug or by powering Vin -directly. - -.. warning:: The silkscreen on the Maple Mini suggests it will accept -   an input voltage up to 16 V.  We recommend applying **no greater -   than 12 V**, and potentially even lower depending upon the current -   draw requirements of the application. Please see :ref:`Power -   Regulation on the Maple Mini <maple-mini-power-regulation>` for -   more information. - -.. _maple-mini-power-regulation: - -Power Regulation on the Maple Mini ----------------------------------- - -Power regulation on the Maple is provided by two low dropout linear -voltage regulators. (The part is the MCP1703 from Microchip, in the -SOT-23A package. You can download the datasheet `here -<http://ww1.microchip.com/downloads/en/DeviceDoc/22049a.pdf>`_ ). One -of the regulators supplies power to the digital voltage plane; the -other supplies power to the analog voltage plane. - -These voltage regulators nominally take an input of up to 16V. In -addition, while the maximum continuous output current for the board is -250mA, if you are powering the board off higher voltages the amount -current it can supply goes down, due to the regulators needing to -dissipate the extra power. So if you are powering the board off 12V, -the max current is about 40mA at room temperature. In general (again, -at room temperature) the max power dissipation (PD) for the chip is -about .37W, and output current = PD/(Vin-Vout). For exact max current -calculations, please refer to the datasheet linked above. - -If you are planning to draw a lot of current from the Maple board, it -is necessary to provide input power as close to 3.3V as -possible. Powering the microcontroller circuitry and LEDs on the board -alone takes approximately 30mA, so if you are powering the board with -12V that leaves only 10mA (at best) available for powering any user -circuitry. Attempting to draw more than 10mA runs the risk of shorting -out the power regulators and bricking your board. - -.. _maple-mini-gpios: - -GPIO Information ----------------- - -The Maple Mini features 34 total input/output pins, numbered ``D0`` -through ``D33``.  These numbers correspond to the numeric values next -to each header on the Maple Mini's silkscreen.  However, some of them -have special uses by default [#fusedpins]_. - -.. _maple-mini-usb-pins: - -Pin ``D23`` is the :ref:`USB <usb>` D+ line, and ``D24`` is the USB D- -line.  To use them as GPIOs, your program will need to :ref:`disable -SerialUSB <lang-serialusb-end>` first.  Be aware, however, that -disabling SerialUSB means that the :ref:`bootloader <bootloader>` -won't work properly, and you'll need to use -:ref:`troubleshooting-perpetual-bootloader` to make your next upload. - -.. _maple-mini-but: - -Pin ``D32`` is the Mini'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>`. - -.. _maple-mini-led: - -Pin ``D33`` is the Mini's :ref:`LED pin <lang-board-values-led>`.  It -is thus mainly useful as an :ref:`output <lang-pin-levels>`.  The LED -will glow when ``HIGH`` is :ref:`written <lang-digitalwrite>` to it. -(It also supports :ref:`pwm`, for finer-grained brightness control). - -.. TODO [0.1.0] silkscreen pictures which expand abbreviations - -.. _maple-mini-pin-map-master: - -Master Pin Map -^^^^^^^^^^^^^^ - -This table shows a summary the available functionality on every GPIO -pin, by peripheral type.  The "5 V?" column documents whether or not -the pin is :ref:`5 volt tolerant <gpio-5v-tolerant>`. - -Note that this table is not exhaustive; on some pins, more peripherals -are available than are listed here. - -.. csv-table:: -   :header: Pin, :ref:`GPIO <gpio>`, :ref:`ADC <adc>`, :ref:`Timer <timers>`, :ref:`I2C <i2c>`, :ref:`UART <usart>`, :ref:`SPI <spi>`, 5 V? - -   D0,  PB11,   -, -,         2_SDA,  3_RX,  -,      Yes -   D1,  PB10,   -, -,         2_SCL,  3_TX,  -,      Yes -   D2,  PB2,    -, -,         -,      -,     -,      Yes -   D3,  PB0,  CH8, 3_CH3,     -,      -,     -,      - -   D4,  PA7,  CH7, 3_CH2,     -,      -,     1_MOSI, - -   D5,  PA6,  CH6, 3_CH1,     -,      -,     1_MISO, - -   D6,  PA5,  CH5, -,         -,      -,     1_SCK,  - -   D7,  PA4,  CH4, -,         -,      2_CK,  1_NSS,  - -   D8,  PA3,  CH3, 2_CH4,     -,      2_RX,  -,      - -   D9,  PA2,  CH2, 2_CH3,     -,      2_TX,  -,      - -   D10, PA1,  CH1, 2_CH2,     -,      2_RTS, -,      - -   D11, PA0,  CH0, 2_CH1_ETR, -,      2_CTS, -,      - -   D12, PC15,   -, -,         -,      -,     -,      - -   D13, PC14,   -, -,         -,      -,     -,      - -   D14, PC13,   -, -,         -,      -,     -,      - -   D15, PB7,    -, 4_CH2,     1_SDA,  -,     -,      Yes -   D16, PB6,    -, 4_CH1,     2_SCL,  -,     -,      Yes -   D17, PB5,    -, -,         1_SMBA, -,     -,      - -   D18, PB4,    -, -,         -,      -,     -,      Yes -   D19, PB3,    -, -,         -,      -,     -,      Yes -   D20, PA15,   -, -,         -,      -,     -,      Yes -   D21, PA14,   -, -,         -,      -,     -,      Yes -   D22, PA13,   -, -,         -,      -,     -,      Yes -   D23, PA12,   -, 1_ETR,     -,      1_RTS, -,      Yes -   D24, PA11,   -, 1_CH4,     -,      1_CTS, -,      Yes -   D25, PA10,   -, 1_CH3,     -,      1_RX,  -,      Yes -   D26, PA9,    -, 1_CH2,     -,      1_TX,  -,      Yes -   D27, PA8,    -, 1_CH1,     -,      1_CK,  -,      Yes -   D28, PB15,   -, -,         -,      -,     2_MOSI, Yes -   D29, PB14,   -, -,         -,      3_RTS, 2_MISO, Yes -   D30, PB13,   -, -,         -,      3_CTS, 2_SCK,  Yes -   D31, PB12,   -, 1_BKIN,    2_SMBA, 3_CK,  2_NSS,  Yes -   D32, PB8,    -, 4_CH3,     -,      -,     -,      Yes -   D33, PB1,  CH9, 3_CH4,     -,      -,     -,      - - -.. _maple-mini-gpio-port-map: - -GPIO Port Pin Map -^^^^^^^^^^^^^^^^^ -The following table shows what pins are associated with each -:ref:`GPIO port <gpio-ports>`. - -.. csv-table:: -   :header: GPIOA, GPIOB, GPIOC - -   PA0: D11,  PB0:  D3,  PC0: - -   PA1: D10,  PB1:  D33, PC1: - -   PA2: D9,   PB2:  D2,  PC2: - -   PA3: D8,   PB3:  D19, PC3: - -   PA4: D7,   PB4:  D18, PC4: - -   PA5: D6,   PB5:  D17, PC5: - -   PA6: D5,   PB6:  D16, PC6: - -   PA7: D4,   PB7:  D15, PC7: - -   PA8: D27,  PB8:  D32, PC8: - -   PA9: D26,  PB9:  -,   PC9: - -   PA10: D25, PB10: D1,  PC10: - -   PA11: D24, PB11: D0,  PC11: - -   PA12: D23, PB12: D31, PC12: - -   PA13: D22, PB13: D30, PC13: D14 -   PA14: D21, PB14: D29, PC14: D13 -   PA15: D20, PB15: D28, PC15: D12 - -.. _maple-mini-timer-map: - -Timer Pin Map -^^^^^^^^^^^^^ - -The following table shows what pins are associated with a particular -timer's capture/compare channels. - -.. csv-table:: -   :header: Timer, Ch. 1, Ch. 2, Ch. 3, Ch. 4 -   :delim: | - -   1 | D27 | D26 | D25                         | D24 -   2 | D11 | D10 | D9                          | D8 -   3 | D5  | D4  | D3                          | :ref:`D33 <maple-mini-led>` -   4 | D16 | D15 | :ref:`D32 <maple-mini-but>` | - -.. _maple-mini-exti-map: - -EXTI Line Pin Map -^^^^^^^^^^^^^^^^^ - -The following table shows which pins connect to which :ref:`EXTI lines -<external-interrupts-exti-line>`. - -.. list-table:: -   :widths: 1 1 -   :header-rows: 1 - -   * - EXTI Line -     - Pins -   * - EXTI0 -     - D3, D11 -   * - EXTI1 -     - D10, D33 -   * - EXTI2 -     - D2, D9 -   * - EXTI3 -     - D8, D19 -   * - EXTI4 -     - D7, D18 -   * - EXTI5 -     - D6, D17 -   * - EXTI6 -     - D5, D16 -   * - EXTI7 -     - D4, D15 -   * - EXTI8 -     - D27, D32 -   * - EXTI9 -     - D26 -   * - EXTI10 -     - D1, D25 -   * - EXTI11 -     - D0, D24 -   * - EXTI12 -     - D23, D31 -   * - EXTI13 -     - D14, D22, D30 -   * - EXTI14 -     - D13, D21, D29 -   * - EXTI15 -     - D12, D20, D28 - -.. _maple-mini-usart-map: - -USART Pin Map -^^^^^^^^^^^^^ - -The Maple Mini has three serial ports (also known as :ref:`USARTs -<usart>`). They communicate using the pins given in the following -table. - -.. csv-table:: -   :header: Serial Port, TX, RX, CK, CTS, RTS -   :delim: | - -   ``Serial1`` | D26 | D25 | D27 | D24 | D23 -   ``Serial2`` | D9  |  D8 |  D7 | D11 | D10 -   ``Serial3`` | D1  |  D0 | D31 | D30 | D29 - -.. _maple-mini-adc-bank: - -Low-Noise ADC Pins -^^^^^^^^^^^^^^^^^^ - -Maple Mini has an electrically isolated analog power plane with its -own regulator, and a geometrically isolated ground plane, connected to -the digital plane by an inductor.  Its analog input pins, D3 — D11, -are laid out to correspond with these analog planes, and our -measurements indicate that they generally offer low noise ADC -performance.  However, analog performance may vary depending upon the -activity of the other GPIOs.  Consult the :ref:`Maple Mini hardware -design files <maple-mini-hardware>` for more details. - -.. _maple-mini-board-values: - -Board-Specific Values ---------------------- - -This section lists the Maple Mini's :ref:`board-specific values -<lang-board-values>`. - -- ``CYCLES_PER_MICROSECOND``: 72 -- ``BOARD_BUTTON_PIN``: 32 -- ``BOARD_LED_PIN``: 33 -- ``BOARD_NR_GPIO_PINS``: 34 -- ``BOARD_NR_PWM_PINS``: 12 -- ``boardPWMPins``: 3, 4, 5, 8, 9, 10, 11, 15, 16, 25, 26, 27 -- ``BOARD_NR_ADC_PINS``: 9 -- ``boardADCPins``: 3, 4, 5, 6, 7, 8, 9, 10, 11 -- ``BOARD_NR_USED_PINS``: 4 -- ``boardUsedPins``: ``BOARD_LED_PIN``, ``BOARD_BUTTON_PIN``, 23, 24 -  (23 and 24 are used by :ref:`USB <maple-mini-usb-pins>`) -- ``BOARD_NR_USARTS``: 3 -- ``BOARD_USART1_TX_PIN``: 26 -- ``BOARD_USART1_RX_PIN``: 25 -- ``BOARD_USART2_TX_PIN``: 9 -- ``BOARD_USART2_RX_PIN``: 8 -- ``BOARD_USART3_TX_PIN``: 1 -- ``BOARD_USART3_RX_PIN``: 0 -- ``BOARD_NR_SPI``: 2 -- ``BOARD_SPI1_NSS_PIN``: 7 -- ``BOARD_SPI1_MOSI_PIN``: 4 -- ``BOARD_SPI1_MISO_PIN``: 5 -- ``BOARD_SPI1_SCK_PIN``: 6 -- ``BOARD_SPI2_NSS_PIN``: 31 -- ``BOARD_SPI2_MOSI_PIN``: 28 -- ``BOARD_SPI2_MISO_PIN``: 29 -- ``BOARD_SPI2_SCK_PIN``: 30 -- ``BOARD_JTMS_SWDIO_PIN``: 22 -- ``BOARD_JTCK_SWCLK_PIN``: 21 -- ``BOARD_JTDI_PIN``: 20 -- ``BOARD_JTDO_PIN``: 19 -- ``BOARD_NJTRST_PIN``: 18 - -.. _maple-mini-hardware: - -Hardware Design Files ---------------------- - -The hardware schematics and board layout files are available in the -`Maple Mini GitHub repository <https://github.com/leaflabs/maplemini>`_. - -From the GitHub repository main page, you can download the entire -repository by clicking the "Download" button.  If you are familiar -with `Git <http://git-scm.com/>`_, you can also clone the repository -at the command line with :: - -    $ git clone git://github.com/leaflabs/maplemini.git - -Failure Modes -------------- - -The following known failure modes apply to all Maple boards.  The -failure modes aren't design errors, but are easy ways to break or -damage your board permanently. - -* **High voltage on non-tolerant pins**: not all header pins are 5 V -  compatible; so e.g. connecting certain serial devices in the wrong -  way could over-voltage the pins.  The :ref:`pin-mapping master table -  <maple-mini-pin-map-master>` details which pins are :ref:`5 -  V-tolerant <gpio-5v-tolerant>`. - -Errata ------- - -This section lists known issues and warnings for the Maple Mini Rev 2 -(the first Rev sold to the public). - -.. _maple-mini-vin: - -* **Silkscreen Vin voltage mistake**: The silkscreen on the Maple Mini -  falsely indicates that Vin may be supplied with up to 16V.  We -  recommend an input voltage **no greater than 12V**, and potentially -  even lower depending upon the current draw requirements of the -  application. Please see :ref:`Power Regulation on the Maple Mini -  <maple-mini-power-regulation>` for more information. - - -Recommended Reading -------------------- - -.. _maple-mini-stdocs: - -STMicro documentation for STM32F103CB microcontroller: - -* `Datasheet -  <http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00161566.pdf>`_ -  (PDF); covers STM32F103x8, STM32F103xB. -* `Reference Manual RM0008 -  <http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/REFERENCE_MANUAL/CD00171190.pdf>`_ -  (PDF); definitive resource for peripherals on the STM32F1 line. -* `Programming Manual PM0056 -  <http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/PROGRAMMING_MANUAL/CD00228163.pdf>`_ -  (PDF); assembly language and register reference. -* `STM32F103CB <http://www.st.com/internet/mcu/product/189782.jsp>`_ -  overview page with links to further references. - -.. rubric:: Footnotes - -.. [#fusedpins] See :ref:`boardUsedPins <lang-board-values-used-pins>` -   for more information. diff --git a/docs/source/hardware/maple-native-beta.rst b/docs/source/hardware/maple-native-beta.rst deleted file mode 100644 index bdfd216..0000000 --- a/docs/source/hardware/maple-native-beta.rst +++ /dev/null @@ -1,605 +0,0 @@ -.. highlight:: sh - -.. _maple-native-b: - -Maple Native β -============== - -This page is a general resource for information specific to the Maple -Native Beta.  Since this is a beta release, the information here may -change slightly between now and the final Maple Native release. - -.. contents:: Contents -   :local: - -Technical Specifications ------------------------- - -* MCU: `STM32F103ZET6 <maple-native-b-stdocs>`, a 32-bit ARM Cortex M3 -  microprocessor. -* Clock Speed: **72 MHz** -* **512 KB Flash**, **64 KB SRAM** (on-chip), **1 MB SRAM** (external) -* 106 :ref:`digital I/O pins <gpio>` -* 17 :ref:`PWM <pwm>` pins at 16 bit resolution -* 21 :ref:`analog input (ADC) <adc>` pins at 12-bit resolution -* 3 :ref:`SPI <spi>` peripherals -* 2 :ref:`I2C <i2c>` peripherals -* 12 Channels of Direct Memory Access (**DMA**) (:ref:`libmaple-dma`) -  with 2 DMA controllers -* 3 :ref:`USART (serial port) <usart>` peripherals, 2 **UART** peripherals -* 2 advanced, 4 general-purpose, and 2 basic :ref:`timers <timers>` -* Dedicated :ref:`USB <usb>` port for programming and communications -* :ref:`JTAG <jtag>` -* Nested Vectored Interrupt Controller (NVIC) (including -  :ref:`external interrupt <lang-attachinterrupt>` on GPIOs) -* Supplies up to 500 mA at 3.3 V, with :ref:`separate 250 mA digital -  and analog regulators <maple-native-b-adc-bank>` for low-noise analog -  performance -* :ref:`Open-source, four layer design <maple-native-b-hardware>` -* Support for low power, sleep, and standby modes (<500 μA) -* Operating Voltage: 3.3 V -* Input Voltage (recommended): 3 V — 12 V -* Dimensions: 4″ × 2.1″ - -.. _maple-native-b-powering: - -Powering the Maple Native -------------------------- - -The power source is determined by the header labeled "PWRSEL" on the -silkscreen. The Maple Native may be powered from USB (marked "USB" on -the PWRSEL header), a LiPo battery (marked "BAT"), or one of the two -"Vin" pins (marked "EXT").  Boards are shipped with a jumper on the -USB selector.  In order to power it off of an alternative source, -unplug the Maple Native, then move the jumper to the desired selector -before reconnecting power. - -The "Vin" line is available on the pin labeled "Vin" on the vertical -header to the right of the PWRSEL header, as well as on the -unpopulated two-pin connector on the upper left corner of the -board. On this latter connector, polarity was accidentally left -unmarked: the leftmost, round pin should be power, while the square -pin should be ground. - -When powering the Maple Native board from a battery or the Vin lines, -care must be taken not to over-voltage the board. In general, an upper -limit of 12V input is acceptable, but this may vary depending upon the -current draw requirements of the application. Please see :ref:`Power -Regulation on the Maple Native <maple-native-b-power-regulation>` for -more information. - -.. _maple-native-b-power-regulation: - -Power Regulation on the Maple Native ------------------------------------- - -Power regulation on the Maple Native is provided by two low dropout -linear voltage regulators. (The part is the MCP1703 from Microchip, in -the SOT-23A package. You can download the datasheet `here -<http://ww1.microchip.com/downloads/en/DeviceDoc/22049a.pdf>`_). One -of the regulators supplies power to the digital voltage plane; the -other supplies power to the analog voltage plane. - -These voltage regulators nominally take an input of up to 16V. In -addition, while the maximum continuous output current for the board is -250mA, if you are powering the board off higher voltages the current -it can supply goes down, due to the regulators needing to dissipate -the extra power. So if you are powering the board off 12V, the max -current is about 40mA at room temperature. In general (again, at room -temperature) the max power dissipation (PD) for the chip is about -.37W, and output current = PD/(Vin-Vout). For exact max current -calculations, please refer to the datasheet linked above. - -If you are planning to draw a lot of current from the Maple Native -board, it is necessary to provide input power as close to 3.3V as -possible. Powering the microcontroller circuitry and LEDs on the board -alone takes approximately 30mA, so if you are powering the board with -12V that leaves only 10mA (at best) available for powering any user -circuitry. Attempting to draw more than 10mA runs the risk of shorting -out the power regulators and bricking your board. - -Using the Built-in Battery Charger ----------------------------------- - -Maple Native includes a built-in LiPo battery charger.  In order to -use it, put a jumper across the CHRG selector on the PWRSEL header and -across the USB, or EXT selectors, depending on whether you're charging -the battery via USB cable or Vin, respectively.  The LED labeled CHRG -will light up while the battery is being charged.  When the battery is -finished charging, the LED labeled DONE will light up. - -.. _maple-native-b-gpios: - -GPIO Information ----------------- - -The Maple Native features 106 total input/output pins, numbered ``D0`` -through ``D105``.  In most cases, these numbers correspond to the -numeric values next to each header on the Maple Native's silkscreen. -However, pins ``D101`` through ``D105`` are broken out to the -:ref:`JTAG <jtag>` header, and are not numbered on the silkscreen.  In -addition, some other pins have other uses by default [#fusedpins]_. - -.. _maple-native-b-but: - -Pin ``D6`` is the Native'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>`. - -.. _maple-native-b-led: - -Pin ``D22`` is the Native's :ref:`LED pin <lang-board-values-led>`. -It is thus mainly useful as an :ref:`output <lang-pin-levels>`.  The -LED will glow when ``HIGH`` is :ref:`written <lang-digitalwrite>` to -it. - -.. _maple-native-b-fsmc: - -Many of the pins on the right header (pins ``D56`` through ``D100``, -the header is labeled :ref:`"FSMC" <fsmc>` on the silkscreen) are -connected to the SRAM chip.  Using these pins as GPIOs may render the -memory chip useless, which can cause your program to crash. For this -reason, we don't recommend that you use these pins unless you know -what you are doing. The following pins on the right header are not -connected to the SRAM and may be used with impunity: ``D57``, ``D60``, -``D63``, ``D66``, ``D69``, ``D72``, ``D75``, ``D80``, ``D83``. - -.. _maple-native-b-jtag: - -Pins ``D101`` through ``D105`` are connected to the pads on the -:ref:`JTAG <jtag>` header.  In order to use them as GPIOs, you must -first disable the Maple Native's debug ports.  You can do this by -calling :ref:`lang-disabledebugports`.  (Note that this means you -won't be able to use JTAG or SW-Debug to debug your program). - -.. TODO [0.1.0] silkscreen pictures - -.. _maple-native-b-pin-map-master: - -Master Pin Map -^^^^^^^^^^^^^^ - -This table shows a summary the available functionality on every GPIO -pin, by peripheral type.  The "5 V?" column documents whether or not -the pin is :ref:`5 volt tolerant <gpio-5v-tolerant>`. - -Note that this table is not exhaustive; on some pins, more peripherals -are available than are listed here. - -**Top header:** - -.. csv-table:: -   :header: Pin, :ref:`GPIO <gpio>`, :ref:`ADC <adc>`, :ref:`Timer <timers>`, :ref:`I2C <i2c>`, :ref:`UART <usart>`, :ref:`SPI <spi>`, 5 V? - -   D0,   PB10,  -,       -,       2_SCL,   3_TX,   -,       Yes -   D1,   PB11,  -,       -,       2_SDA,   3_RX,   -,       Yes -   D2,   PB12,  -,       1_BKIN,  2_SMBA,  3_CK,   2_NSS,   Yes -   D3,   PB13,  -,       -,       -,       3_CTS,  2_SCK,   Yes -   D4,   PB14,  -,       -,       -,       3_RTS,  2_MISO,  Yes -   D5,   PB15,  -,       -,       -,       -,      2_MOSI,  Yes -   D6,   PG15,  -,       -,       -,       -,      -,       Yes -   D7,   PC0,   1_CH10,  -,       -,       -,      -,       - -   D8,   PC1,   1_CH11,  -,       -,       -,      -,       - -   D9,   PC2,   1_CH12,  -,       -,       -,      -,       - -   D10,  PC3,   1_CH13,  -,       -,       -,      -,       - -   D11,  PC4,   1_CH14,  -,       -,       -,      -,       - -   D12,  PC5,   1_CH15,  -,       -,       -,      -,       - -   D13,  PC6,   -,       8_CH1,   -,       -,      -,       Yes -   D14,  PC7,   -,       8_CH2,   -,       -,      -,       Yes -   D15,  PC8,   -,       8_CH3,   -,       -,      -,       Yes -   D16,  PC9,   -,       8_CH4,   -,       -,      -,       Yes -   D17,  PC10,  -,       -,       -,       4_TX,   -,       Yes -   D18,  PC11,  -,       -,       -,       4_RX,   -,       Yes -   D19,  PC12,  -,       -,       -,       5_TX,   -,       Yes -   D20,  PC13,  -,       -,       -,       -,      -,       - -   D21,  PC14,  -,       -,       -,       -,      -,       - -   D22,  PC15,  -,       -,       -,       -,      -,       - -   D23,  PA8,   -,       1_CH1,   -,       1_CK,   -,       Yes -   D24,  PA9,   -,       1_CH2,   -,       1_TX,   -,       Yes -   D25,  PA10,  -,       1_CH3,   -,       1_RX,   -,       Yes -   D26,  PB9,   -,       4_CH4,   -,       -,      -,       Yes - -**Bottom header:** - -.. note:: ``D48``, ``D49``, ``D50``, ``D51`` are also connected to -   Timer 2 channels 1, 2, 3, and 4, respectively. - -.. csv-table:: -   :header: Pin, :ref:`GPIO <gpio>`, :ref:`ADC <adc>`, :ref:`Timer <timers>`, :ref:`I2C <i2c>`, :ref:`UART <usart>`, :ref:`SPI <spi>`, 5 V? - -   D27,  PD2,   -,      3_ETR,  -,       5_RX,   -,       Yes -   D28,  PD3,   -,      -,      -,       -,      -,       Yes -   D29,  PD6,   -,      -,      -,       -,      -,       Yes -   D30,  PG11,  -,      -,      -,       -,      -,       Yes -   D31,  PG12,  -,      -,      -,       -,      -,       Yes -   D32,  PG13,  -,      -,      -,       -,      -,       Yes -   D33,  PG14,  -,      -,      -,       -,      -,       Yes -   D34,  PG8,   -,      -,      -,       -,      -,       Yes -   D35,  PG7,   -,      -,      -,       -,      -,       Yes -   D36,  PG6,   -,      -,      -,       -,      -,       Yes -   D37,  PB5,   -,      -,      1_SMBA,  -,      3_MOSI,  - -   D38,  PB6,   -,      4_CH1,  1_SCL,   -,      -,       Yes -   D39,  PB7,   -,      4_CH2,  1_SDA,   -,      -,       Yes -   D40,  PF11,  -,      -,      -,       -,      -,       Yes -   D41,  PF6,   3_CH4,  -,      -,       -,      -,       - -   D42,  PF7,   3_CH5,  -,      -,       -,      -,       - -   D43,  PF8,   3_CH6,  -,      -,       -,      -,       - -   D44,  PF9,   3_CH7,  -,      -,       -,      -,       - -   D45,  PF10,  3_CH8,  -,      -,       -,      -,       - -   D46,  PB1,   1_CH9,  3_CH4,  -,       -,      -,       - -   D47,  PB0,   1_CH8,  3_CH3,  -,       -,      -,       - -   D48,  PA0,   1_CH0,  5_CH1,  -,       2_CTS,  -,       - -   D49,  PA1,   1_CH1,  5_CH2,  -,       2_RTS,  -,       - -   D50,  PA2,   1_CH2,  5_CH3,  -,       2_TX,   -,       - -   D51,  PA3,   1_CH3,  5_CH4,  -,       2_RX,   -,       - -   D52,  PA4,   1_CH4,  -,      -,       2_CK,   1_NSS,   - -   D53,  PA5,   1_CH5,  -,      -,       -,      1_SCK,   - -   D54,  PA6,   1_CH6,  3_CH1,  -,       -,      1_MISO,  - -   D55,  PA7,   1_CH7,  3_CH2,  -,       -,      1_MOSI,  - - -.. _maple-native-b-fsmc-map: - -**Right (FSMC) header** - -All of the following pins are 5V-tolerant.  Note that in the "FSMC" -column below, entries with a "Dn" value (D0, D1, etc.) don't refer to -pins; they refer to FSMC data lines.  See :ref:`RM0008 -<maple-native-b-stdocs>` for more information. - -.. warning:: Many of the pins on this header are used by the Maple -   Native's SRAM chip.  Don't use them as GPIOs unless you know what -   you're doing, or your program may crash.  :ref:`See above -   <maple-native-b-fsmc>` for more information. - -.. csv-table:: -   :header: Pin, :ref:`GPIO <gpio>`, :ref:`FSMC <fsmc>` - -   D56,  PF0,   A0 -   D57,  PD11,  A16 -   D58,  P14,   D0 -   D59,  PF1,   A1 -   D60,  PD12,  A17 -   D61,  PD15,  D1 -   D62,  PF2,   A2 -   D63,  PD13,  A18 -   D64,  PD0,   D2 -   D65,  PF3,   A3 -   D66,  PE3,   A19 -   D67,  PD1,   D3 -   D68,  PF4,   A4 -   D69,  PE4,   A20 -   D70,  PE7,   D4 -   D71,  PF5,   A5 -   D72,  PE5,   A21 -   D73,  PE8,   D8 -   D74,  PF12,  A6 -   D75,  PE6,   A22 -   D76,  PE9,   D6 -   D77,  PF13,  A7 -   D78,  PE10,  D7 -   D79,  PF14,  A8 -   D80,  PG9,   NE2/NCE3 -   D81,  PE11,  D8 -   D82,  PF15,  A9 -   D83,  PG10,  NCE4_1/NE3/NCE4_2 -   D84,  PE12,  D9 -   D85,  PG0,   A10 -   D86,  PD5,   NWE -   D87,  PE13,  D10 -   D88,  PG1,   A11 -   D89,  PD4,   NOE -   D90,  PE14,  D11 -   D91,  PG2,   A12 -   D92,  PE1,   NBL1 -   D93,  PE15,  D12 -   D94,  PG3,   A13 -   D95,  PE0,   NBL0 -   D96,  PD8,   D13 -   D97,  PG4,   A14 -   D98,  PD9,   D14 -   D99,  PG5,   A15 -   D100, PD10,  D15 - -**JTAG header pins** - -.. note:: See :ref:`above <maple-native-b-jtag>` for more information on -   these pins. - -.. csv-table:: -   :header: Pin, :ref:`GPIO <gpio>`, :ref:`SPI <spi>`, 5 V? - -   D101, PA13,  -,       Yes -   D102, PA14,  -,       Yes -   D103, PA15,  3_NSS,   Yes -   D104, PB3,   3_SCK,   Yes -   D105, PB4,   3_MISO,  Yes - -.. _maple-native-b-gpio-port-map: - -GPIO Port Pin Map -^^^^^^^^^^^^^^^^^ - -The following tables show what pins are associated with each -:ref:`GPIO port <gpio-ports>`. - -.. csv-table:: -   :header: GPIOA, GPIOB, GPIOC, GPIOD - -   PA0:  D48,     PB0:  D47,    PC0:  D7,    PD0: D64 -   PA1:  D49,     PB1:  D46,    PC1:  D8,    PD1: D67 -   PA2:  D50,     PB2:  -,      PC2:  D9,    PD2: D27 -   PA3:  D51,     PB3:  D104,   PC3:  D10,   PD3: D28 -   PA4:  D52,     PB4:  D105,   PC4:  D11,   PD4: D89 -   PA5:  D53,     PB5:  D37,    PC5:  D12,   PD5: D86 -   PA6:  D54,     PB6:  D38,    PC6:  D13,   PD6: D29 -   PA7:  D55,     PB7:  D39,    PC7:  D14,   PD7: - -   PA8:  D23,     PB8:  -,      PC8:  D15,   PD8: D96 -   PA9:  D24,     PB9:  D26,    PC9:  D16,   PD9: D98 -   PA10: D25,     PB10: D0,     PC10: D17,   PD10: D100 -   PA11: -,       PB11: D1,     PC11: D18,   PD11: D57 -   PA12: -,       PB12: D2,     PC12: D19,   PD12: D60 -   PA13: D101,    PB13: D3,     PC13: D20,   PD13: D63 -   PA14: D102,    PB14: D4,     PC14: D21,   PD14: D58 - -.. csv-table:: -   :header: GPIOE, GPIOF, GPIOG - -   PE0: D95,    PF0: D56,    PG0: D85 -   PE1: D92,    PF1: D59,    PG1: D88 -   PE2: -       PF2: D62,    PG2: D91, -   PE3: D66,    PF3: D65,    PG3: D94 -   PE4: D69,    PF4: D68,    PG4: D97 -   PE5: D72,    PF5: D71,    PG5: D99 -   PE6: D75,    PF6: D41,    PG6: D36 -   PE7: D70,    PF7: D42,    PG7: D35 -   PE8: D73,    PF8: D43,    PG8: D34 -   PE9: D76,    PF9: D44,    PG9: D80 -   PE10: D78,   PF10: D45,   PG10: D83 -   PE11: D81,   PF11: D40,   PG11: D30 -   PE12: D84,   PF12: D74,   PG12: D31 -   PE13: D87,   PF13: D77,   PG13: D32 -   PE14: D90,   PF14: D79,   PG14: D33 - -.. _maple-native-b-timer-map: - -Timer Pin Map -^^^^^^^^^^^^^ - -The following table shows what pins are associated with a particular -timer's capture/compare channels. - -There is no mistake between timers 2 and 5.  They really do share -those pins.  If you like, you can remap some of the timer 2 channels -to get extra PWM pins; see :ref:`afio_remap() (in gpio.h) -<gpio-h-afio-remap>`. - -.. csv-table:: -   :header: Timer, Ch. 1, Ch. 2, Ch. 3, Ch. 4 -   :delim: | - -   1 | D23 | D24 | D25 | -   2 | D48 | D49 | D50 | D51 -   3 | D54 | D55 | D47 | D46 -   4 | D38 | D39 |     | D26 -   5 | D48 | D49 | D50 | D51 -   8 | D13 | D14 | D15 | D16 - -.. _maple-native-b-exti-map: - -EXTI Line Pin Map -^^^^^^^^^^^^^^^^^ - -The following table shows which pins connect to which :ref:`EXTI lines -<external-interrupts-exti-line>`. - -.. list-table:: -   :widths: 1 3 -   :header-rows: 1 - -   * - EXTI Line -     - Pins -   * - EXTI0 -     - D7, D47, D48, D56, D64, D85, D95 -   * - EXTI1 -     - D8, D46, D49, D59, D67, D88, D92 -   * - EXTI2 -     - D9, D27, D50, D62, D91 -   * - EXTI3 -     - D10, D28, D51, D65, D66, D94, D104 -   * - EXTI4 -     - D11, D52, D68, D69, D89, D97, D105 -   * - EXTI5 -     - D12, D37, D53, D71, D72, D86, D99 -   * - EXTI6 -     - D13, D29, D36, D38, D41, D54, D75 -   * - EXTI7 -     - D14, D35, D39, D42, D55, D70 -   * - EXTI8 -     - D15, D23, D34, D43, D73, D96 -   * - EXTI9 -     - D16, D24, D26, D44, D76, D80, D98 -   * - EXTI10 -     - D0, D17, D25, D45, D78, D83, D100 -   * - EXTI11 -     - D1, D18, D30, D40, D57, D81 -   * - EXTI12 -     - D2, D19, D31, D60, D74, D84 -   * - EXTI13 -     - D3, D20, D32, D63, D77, D87, D101 -   * - EXTI14 -     - D4, D21, D33, D58, D79, D90, D102 -   * - EXTI15 -     - D5, D6, D22, D61, D82, D93, D103 - -.. _maple-native-b-usart-map: - -USART Pin Map -^^^^^^^^^^^^^ - -The Maple Native has 3 :ref:`USART <usart>` serial ports.  They -communicate using the pins given in the following table. - -.. csv-table:: -   :header: Serial port, TX, RX, CK, CTS, RTS -   :delim: | - -   ``Serial1`` | D24 | D25 | D23 |     | -   ``Serial2`` | D50 | D51 | D52 | D48 | D49 -   ``Serial3`` |  D0 |  D1 |  D2 |  D3 |  D4 - -The Maple Native also has 2 UART serial ports.  Unlike USARTS, these -only communicate asynchronously, and thus only have TX and RX pins. -These are given in the following table. - -.. csv-table:: -   :header: Serial port, TX, RX -   :delim: | - -   ``Serial4`` | D17 | D18 -   ``Serial5`` | D19 | D27 - -.. _maple-native-b-adc-bank: - -Low-Noise ADC Pins -^^^^^^^^^^^^^^^^^^ - -There are fifteen pins at the bottom right of the board (``D41`` — -``D55``) that generally offer lower-noise ADC performance than other -pins on the board. If you're concerned about getting good ADC -readings, we recommend using one of these pins to take your -measurements. - -Maple Native has an electrically isolated analog power plane with its -own regulator, and a geometrically isolated ground plane. Analog input -pins D41 — D55 are laid out to correspond with these analog planes, -and our measurements indicate that they generally ofer low noise ADC -performance.  However, analog performance may vary depending upon the -activity of other GPIOs.  In particular, using PWM on any of pins -``D46`` — ``D51``, ``D54``, and ``D55`` may cause digital noise. -Consult the :ref:`Maple Native beta hardware design files -<maple-native-b-hardware>` for more details. - -.. _maple-native-b-board-values: - -Board-Specific Values ---------------------- - -This section lists the Maple Native's :ref:`board-specific values -<lang-board-values>`. - -- ``CYCLES_PER_MICROSECOND``: 72 -- ``BOARD_BUTTON_PIN``: 6 -- ``BOARD_LED_PIN``: 22 -- ``BOARD_NR_GPIO_PINS``: 106 -- ``BOARD_NR_PWM_PINS``: 18 -- ``boardPWMPins``: 13, 14, 15, 16, 23, 24, 25, 26, 38, 39, 46, 47, -  48, 49, 50, 51, 54, 55 -- ``BOARD_NR_ADC_PINS``: 21 -- ``boardADCPins``: 7, 8, 9, 10, 11, 12, 41, 42, 43, 44, 45, 46, 47, -  48, 49, 50, 51, 52, 53, 54, 55 -- ``BOARD_NR_USED_PINS``: 43 -- ``boardUsedPins``: ``BOARD_LED_PIN``, ``BOARD_BUTTON_PIN``, -    ``BOARD_JTMS_SWDIO_PIN``, ``BOARD_JTCK_SWCLK_PIN``, -    ``BOARD_JTDI_PIN``, ``BOARD_JTDO_PIN``, ``BOARD_NJTRST_PIN``, and -    all pins on FSMC header except those mentioned :ref:`above -    <maple-native-b-fsmc>`. -- ``BOARD_NR_USARTS``: 5 -- ``BOARD_USART1_TX_PIN``: 24 -- ``BOARD_USART1_RX_PIN``: 25 -- ``BOARD_USART2_TX_PIN``: 50 -- ``BOARD_USART2_RX_PIN``: 51 -- ``BOARD_USART3_TX_PIN``: 0 -- ``BOARD_USART3_RX_PIN``: 1 -- ``BOARD_UART4_TX_PIN``: 17 -- ``BOARD_UART4_RX_PIN``: 18 -- ``BOARD_UART5_TX_PIN``: 19 -- ``BOARD_UART5_RX_PIN``: 27 -- ``BOARD_NR_SPI``: 3 -- ``BOARD_SPI1_NSS_PIN``: 52 -- ``BOARD_SPI1_MOSI_PIN``: 55 -- ``BOARD_SPI1_MISO_PIN``: 54 -- ``BOARD_SPI1_SCK_PIN``: 53 -- ``BOARD_SPI2_NSS_PIN``: 2 -- ``BOARD_SPI2_MOSI_PIN``: 5 -- ``BOARD_SPI2_MISO_PIN``: 4 -- ``BOARD_SPI2_SCK_PIN``: 3 -- ``BOARD_SPI3_NSS_PIN``: 103 (on :ref:`JTAG header <maple-native-b-jtag>`) -- ``BOARD_SPI3_MOSI_PIN``: 37 -- ``BOARD_SPI3_MISO_PIN``: 105 (JTAG header) -- ``BOARD_SPI3_SCK_PIN``: 104 (JTAG header) -- ``BOARD_JTMS_SWDIO_PIN``: :ref:`103 <maple-native-b-jtag>` -- ``BOARD_JTCK_SWCLK_PIN``: 102 -- ``BOARD_JTDI_PIN``: 103 -- ``BOARD_JTDO_PIN``: 104 -- ``BOARD_NJTRST_PIN``: 105 - -.. _maple-native-b-hardware: - -Hardware Design Files -^^^^^^^^^^^^^^^^^^^^^ - -The hardware schematics and board layout files are available in the -`Maple Native GitHub repository -<https://github.com/leaflabs/maplenative/>`_.  Download the `beta -version's hardware design files -<https://github.com/leaflabs/maplenative/tree/beta>`_ (ZIP format). - -If you're familiar with Git, you can clone the entire repository and -checkout the commit tagged "beta" using the following:: - -    $ git clone git://github.com/leaflabs/maplenative.git -    $ git checkout beta - -Failure Modes -------------- - -The following known failure modes apply to the Maple Native Beta.  The -failure modes aren't design errors, but are easy ways to break or -damage your board permanently. - -* **Reversing Vin and GND**: when powering the Maple Native Beta via -  the Vin and ground (GND) pins at the top left of the board, it is -  possible to carelessly cause a short or switch the connections, -  applying the high voltage to GND and ground to Vin. - -  If this happens, you will reverse bias the diode beneath these pins, -  most likely damaging it.  This may cause excess voltage to -  subsequently be delivered to the board once the reversed pins are -  connected properly. - -Errata ------- - -This section lists known issues and warnings for the Maple Native -Beta. - -* **PWM on pin 39**: PWM on pin 39 appears to be nonfunctional.  We -  are looking into this issue. - -* **VREF is nonfunctional**: Due to a routing error, VREF is -  permanently tied to 3.3V at VAA. - -Recommended Reading -------------------- - -.. _maple-native-b-stdocs: - -STMicro documentation for STM32F103ZE microcontroller: - -* `Datasheet -  <http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00191185.pdf>`_ -  (PDF); covers STM32F103xC, STM3F103xD, STM32F103xE. -* `Reference Manual RM0008 -  <http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/REFERENCE_MANUAL/CD00171190.pdf>`_ -  (PDF); definitive resource for peripherals on the STM32F1 line. -* `Programming Manual PM0056 -  <http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/PROGRAMMING_MANUAL/CD00228163.pdf>`_ -  (PDF); assembly language and register reference. -* `STM32F103RE <http://www.st.com/internet/mcu/product/164485.jsp>`_ -  overview page with links to further references. - -.. rubric:: Footnotes - -.. [#fusedpins] See :ref:`boardUsedPins <lang-board-values-used-pins>` -   for more information. diff --git a/docs/source/hardware/maple-native.rst b/docs/source/hardware/maple-native.rst deleted file mode 100644 index 79115fc..0000000 --- a/docs/source/hardware/maple-native.rst +++ /dev/null @@ -1,6 +0,0 @@ -.. _hardware-maple-native: - -Maple Native -============ - -Stub. diff --git a/docs/source/hardware/maple-ret6.rst b/docs/source/hardware/maple-ret6.rst deleted file mode 100644 index 3d2d037..0000000 --- a/docs/source/hardware/maple-ret6.rst +++ /dev/null @@ -1,466 +0,0 @@ -.. highlight:: sh - -.. _maple-ret6: - -Maple RET6 Edition -================== - -This page is a general resource for information specific to the Maple -RET6 Edition.  The Maple RET6 Edition is a "beta" board released as a -simple way to get a more powerful chip (the STM32F103\ **RET6**, hence -the name) than the one on the base Maple (the STM32F103\ **RBT6**) in -the hands of Maple developers. - -.. contents:: Contents -   :local: - -.. TODO [dma.rst] Ref to source/dma.rst in sequel instead of libmaple-dma -.. TODO [dac.rst] Ref to source/dac.rst in sequel instead of libmaple-dac -.. TODO [nvic.rst] Ref to source/nvic.rst in sequel - -Technical Specifications ------------------------- - -* MCU: :ref:`STM32F103RET6 <maple-ret6-stdocs>`, a 32-bit ARM Cortex -  M3 microprocessor -* Clock Speed: **72 MHz** -* **512 KB Flash** and **64 KB SRAM** -* 43 :ref:`digital I/O pins (GPIOs) <gpio>` -* 18 :ref:`PWM <pwm>` pins at 16 bit resolution -* 15 :ref:`analog input (ADC) <adc>` pins at 12 bit resolution -* Built-in, 2 channel **DAC** at 12 bit resolution (:ref:`libmaple-dac`). -* 2 :ref:`SPI <spi>` peripherals with **I2S** support -* 2 :ref:`I2C <i2c>` peripherals -* 12 Channels of Direct Memory Access (**DMA**) (:ref:`libmaple-dma`) -  with 2 DMA controllers -* 3 :ref:`USART (serial port) <usart>` peripherals -* 2 advanced, 4 general-purpose, and 2 basic :ref:`timers <timers>` -* Dedicated :ref:`USB <usb>` port for programming and communications -* :ref:`JTAG <jtag>` -* Nested Vectored Interrupt Controller (NVIC) (including -  :ref:`external interrupt <lang-attachinterrupt>` on GPIOs) -* Supplies up to 500 mA at 3.3 V, with :ref:`separate 250 mA digital -  and analog regulators <maple-ret6-adc-bank>` for low-noise analog -  performance -* :ref:`Open-source, four layer design <maple-ret6-hardware>` -* Support for low power, sleep, and standby modes (<500 μA) -* Operating Voltage: 3.3 V -* Input Voltage (recommended): 4 V — 12 V -* Dimensions are 2.05″ × 2.1″ - -.. _maple-ret6-powering: - -Powering the Maple RET6 Edition -------------------------------- - -The Maple RET6 Edition is powered in the :ref:`same way as the -standard Maple <maple-powering>`. - -.. warning:: The RET6 Edition silkscreen falsely indicates that the -   barrel jack accepts up to 18 V.  We recommend a barrel jack input -   voltage **no greater than 12V**, and potentially even lower -   depending upon the current draw requirements of the -   application. The same goes for powering off LiPo batteries. - -   Please see :ref:`Power Regulation on the Maple -   <maple-power-regulation>` for more information. - -.. _maple-ret6power-regulation: - -Power Regulation on the Maple RET6 ----------------------------------- - -Power regulation on the Maple RET6 works in the :ref:`same way as the -standard Maple <maple-power-regulation>`. - -Using the Built-in Battery Charger ----------------------------------- - -The RET6 Edition has a built-in LiPo battery charger.  In order to use -it, put a jumper across the CHRG header on the power selection header -and across the USB, or EXT selectors, depending on whether you're -charging the battery via USB cable or barrel jack connector.  The LED -labeled CHRG will light up while the battery is being charged.  When -the battery is finished charging, the LED labeled DONE will light up. - -.. _maple-ret6-gpios: - -GPIO Information ----------------- - -The RET6 Edition 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`` on the back of the RET6 -Edition's silkscreen) 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 - -.. _maple-ret6-pin-map-master: - -Master Pin Map -^^^^^^^^^^^^^^ - -This table shows a summary of the available functionality on every -GPIO pin, by peripheral type.  The "5 V?" column documents whether or -not the pin is :ref:`5 volt tolerant <gpio-5v-tolerant>`. - -Note that this table is not exhaustive; on some pins, more peripherals -are available than are listed here. - -.. csv-table:: -   :header: Pin, :ref:`GPIO <gpio>`, :ref:`ADC <adc>`, :ref:`Timer <timers>`, :ref:`I2C <i2c>`, :ref:`UART/USART <usart>`, :ref:`SPI <spi>`, 5 V? - -   D0,  PA3,  CH3,  2_CH4,     -,       2_RX,  -,      - -   D1,  PA2,  CH2,  2_CH3,     -,       2_TX,  -,      - -   D2,  PA0,  CH0,  2_CH1_ETR, -,       2_CTS, -,      - -   D3,  PA1,  CH1,  2_CH2,     -,       2_RTS, -,      - -   D4,  PB5,  -,    -,         1_SMBA,  -,     3_MOSI, - -   D5,  PB6,  -,    4_CH1,     1_SCL,   -,     -,      Yes -   D6,  PA8,  -,    1_CH1,     -,       1_CK,  -,      Yes -   D7,  PA9,  -,    1_CH2,     -,       1_TX,  -,      Yes -   D8,  PA10, -,    1_CH3,     -,       1_RX,  -,      Yes -   D9,  PB7,  -,    4_CH2,     1_SDA,   -,     -,      Yes -   D10, PA4,  CH4,  -,         -,       2_CK,  1_NSS,  - -   D11, PA7,  CH7,  3_CH2,     -,       -,     1_MOSI, - -   D12, PA6,  CH6,  3_CH1,     -,       -,     1_MISO, - -   D13, PA5,  CH5,  -,         -,       -,     1_SCK,  - -   D14, PB8,  -,    4_CH3,     -,       -,     -,      Yes -   D15, PC0,  CH10, -,         -,       -,     -,      - -   D16, PC1,  CH11, -,         -,       -,     -,      - -   D17, PC2,  CH12, -,         -,       -,     -,      - -   D18, PC3,  CH13, -,         -,       -,     -,      - -   D19, PC4,  CH14, -,         -,       -,     -,      - -   D20, PC5,  CH15, -,         -,       -,     -,      - -   D21, PC13, -,    -,         -,       -,     -,      - -   D22, PC14, -,    -,         -,       -,     -,      - -   D23, PC15, -,    -,         -,       -,     -,      - -   D24, PB9,  -,    4_CH4,     -,       -,     -,      Yes -   D25, PD2,  -,    3_ETR,     -,       -,     5_RX,   Yes -   D26, PC10, -,    -,         -,       -,     4_TX,   Yes -   D27, PB0,  CH8,  3_CH3,     -,       -,     -,      - -   D28, PB1,  CH9,  3_CH4,     -,       -,     -,      - -   D29, PB10, -,    -,         2_SCL,   3_TX,  -,      Yes -   D30, PB11, -,    -,         2_SDA,   3_RX,  -,      Yes -   D31, PB12, -,    1_BKIN,    2_SMBA,  3_CK,  2_NSS,  Yes -   D32, PB13, -,    1_CH1N,    -,       3_CTS, 2_SCK,  Yes -   D33, PB14, -,    1_CH2N,    -,       3_RTS, 2_MISO, Yes -   D34, PB15, -,    1_CH3N,    -,       -,     2_MOSI, Yes -   D35, PC6,  -,    8_CH1,     -,       -,     -,      Yes -   D36, PC7,  -,    8_CH2,     -,       -,     -,      Yes -   D37, PC8,  -,    8_CH3,     -,       -,     -,      Yes -   D38, PC9,  -,    8_CH4,     -,       -,     -,      Yes -   D39, PA13, -,    -,         -,       -,     -,      Yes -   D40, PA14, -,    -,         -,       -,     -,      Yes -   D41, PA15, -,    -,         -,       -,     3_NSS,  Yes -   D42, PB3,  -,    -,         -,       -,     3_SCK,  Yes - -.. _maple-ret6-gpio-port-map: - -GPIO Port Pin Map -^^^^^^^^^^^^^^^^^ - -The following table shows what pins are associated with each -:ref:`GPIO port <gpio-ports>`. - -.. csv-table:: -   :header: GPIOA, GPIOB, GPIOC - -   PA0: D2,   PB0:  D27, PC0: D15 -   PA1: D3,   PB1:  D28, PC1: D16 -   PA2: D1,   PB2:  -,   PC2: D17 -   PA3: D0,   PB3:  D42, PC3: D18 -   PA4: D10,  PB4:  D43, PC4: D19 -   PA5: D13,  PB5:  D4,  PC5: D20 -   PA6: D12,  PB6:  D5,  PC6: D35 -   PA7: D11,  PB7:  D9,  PC7: D36 -   PA8: D6,   PB8:  D14, PC8: D37 -   PA9: D7,   PB9:  D24, PC9: D38 -   PA10: D8,  PB10: D29, PC10: D26 -   PA11: -,   PB11: D30, PC11: - -   PA12: -,   PB12: D31, PC12: - -   PA13: D39, PB13: D32, PC13: D21 -   PA14: D40, PB14: D33, PC14: D22 -   PA15: D41, PB15: D34, PC15: D23 - -.. _maple-ret6-timer-map: - -Timer Pin Map -^^^^^^^^^^^^^ - -The following table shows what pins are associated with a particular -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 -   :delim: | - -   1 | D6  | D7  | D8  | - -   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: - -EXTI Line Pin Map -^^^^^^^^^^^^^^^^^ - -The following table shows which pins connect to which :ref:`EXTI lines -<external-interrupts-exti-line>` on the Maple RET6 Edition. - -.. list-table:: -   :widths: 1 1 -   :header-rows: 1 - -   * - EXTI Line -     - Pins -   * - EXTI0 -     - D2, D15, D27 -   * - EXTI1 -     - D3, D16, D28 -   * - EXTI2 -     - D1, D17, D25 -   * - EXTI3 -     - D0, D18, D42 -   * - EXTI4 -     - D10, D19 -   * - EXTI5 -     - D4, D13, D20 -   * - EXTI6 -     - D5, D12, D35 -   * - EXTI7 -     - D9, D11, D36 -   * - EXTI8 -     - D6, D14, D37 -   * - EXTI9 -     - D7, D24, D38 -   * - EXTI10 -     - D8, D26, D29 -   * - EXTI11 -     - D30 -   * - EXTI12 -     - D31 -   * - EXTI13 -     - D21, D32, D39 -   * - EXTI14 -     - D22, D33, D40 -   * - EXTI15 -     - D23, D34, D41 - -.. _maple-ret6-usart-map: - -USART Pin Map -^^^^^^^^^^^^^ - -The Maple RET6 Edition has three serial ports whose pins are broken -out to headers (also known as :ref:`USARTs <usart>`). They communicate -using the pins given in the following table. - -.. csv-table:: -   :header: Serial Port, TX, RX, CK, CTS, RTS -   :delim: | - -   ``Serial1`` | D7  | D8  | D6  |     | -   ``Serial2`` | D1  | D0  | D10 | D2  | D3 -   ``Serial3`` | D29 | D30 | D31 | D32 | D33 - -Unfortunately, :ref:`UART4 and UART5 aren't completely available -<maple-ret6-uarts>`. - -.. _maple-ret6-adc-bank: - -Low-Noise ADC Pins -^^^^^^^^^^^^^^^^^^ - -The six pins at the bottom right of the board (D15—D20) generally -offer lower-noise ADC performance than other pins on the board. If -you’re concerned about getting good ADC readings, we recommend using -one of these pins to take your measurements.  More details in the -:ref:`Maple hardware documentation <maple-adc-bank>`. - -Board-Specific Values ---------------------- - -This section lists the Maple RET6 Edition's :ref:`board-specific -values <lang-board-values>`. - -- ``CYCLES_PER_MICROSECOND``: 72 -- ``BOARD_BUTTON_PIN``: 38 -- ``BOARD_LED_PIN``: 13 -- ``BOARD_NR_GPIO_PINS``: 44 (however, :ref:`pin D43 is not usable -  <maple-nrst-pb4>`) -- ``BOARD_NR_PWM_PINS``: 18 -- ``boardPWMPins``: 0, 1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 14, 24, 27, 28, -  35, 36, 37 -- ``BOARD_NR_ADC_PINS``: 15 -- ``boardADCPins``: 0, 1, 2, 3, 10, 11, 12, 15, 16, 17, 18, 19, 20, 27, 28 -- ``BOARD_NR_USED_PINS``: 7 -- ``boardUsedPins``: ``BOARD_LED_PIN``, ``BOARD_BUTTON_PIN``, -  ``BOARD_JTMS_SWDIO_PIN``, ``BOARD_JTCK_SWCLK_PIN``, -  ``BOARD_JTDI_PIN``, ``BOARD_JTDO_PIN``, ``BOARD_NJTRST_PIN`` -- ``BOARD_NR_USARTS``: 3 (unfortunately, :ref:`due to the Maple Rev 5 -  design <maple-ret6-uarts>`, UARTs 4 and 5 have pins which are not -  broken out). -- ``BOARD_USART1_TX_PIN``: 7 -- ``BOARD_USART1_RX_PIN``: 8 -- ``BOARD_USART2_TX_PIN``: 1 -- ``BOARD_USART2_RX_PIN``: 0 -- ``BOARD_USART3_TX_PIN``: 29 -- ``BOARD_USART3_RX_PIN``: 30 -- ``BOARD_NR_SPI``: 2 (unfortunately, :ref:`due to the Maple Rev 5 -  design <maple-ret6-nrst-pb4>`, SPI3 is unavailable). -- ``BOARD_SPI1_NSS_PIN``: 10 -- ``BOARD_SPI1_MOSI_PIN``: 11 -- ``BOARD_SPI1_MISO_PIN``: 12 -- ``BOARD_SPI1_SCK_PIN``: 13 -- ``BOARD_SPI2_NSS_PIN``: 31 -- ``BOARD_SPI2_MOSI_PIN``: 34 -- ``BOARD_SPI2_MISO_PIN``: 33 -- ``BOARD_SPI2_SCK_PIN``: 32 -- ``BOARD_JTMS_SWDIO_PIN``: 39 -- ``BOARD_JTCK_SWCLK_PIN``: 40 -- ``BOARD_JTDI_PIN``: 41 -- ``BOARD_JTDO_PIN``: 42 -- ``BOARD_NJTRST_PIN``: :ref:`43 <maple-ret6-nrst-pb4>` - -.. _maple-ret6-hardware: - -Hardware Design Files ---------------------- - -The hardware schematics and board layout files are available in the -`Maple GitHub repository <https://github.com/leaflabs/maple>`_.  Other -than the processor used, the design files for the Maple RET6 edition -are identical to the Maple Rev 5, which are in the ``maple-r5`` -subdirectory of the Maple repository.  A schematic for a JTAG adapter -suitable for use with Maple is available in the ``jtagadapter`` -directory. - -From the GitHub repository main page, you can download the entire -repository by clicking the "Download" button.  If you are familiar -with `Git <http://git-scm.com/>`_, you can also clone the repository -at the command line with :: - -    $ git clone git://github.com/leaflabs/maple.git - -.. _maple-ret6-failure-modes: - -Failure Modes -------------- - -The following known failure modes apply to all Maple boards.  The -failure modes aren't design errors, but are easy ways to break or -damage your board permanently. - -* **High voltage on non-tolerant pins**: not all header pins are 5V -  compatible; so e.g. connecting certain serial devices in the wrong -  way could over-voltage the pins.  The :ref:`pin-mapping master table -  <maple-ret6-pin-map-master>` details which pins are -  :ref:`5V-tolerant <gpio-5v-tolerant>`. - -Errata ------- - -This section lists known issues and warnings for the Maple RET6 -Edition.  Some of these are simply due to the RET6 Edition using the -Maple's circuit board, which was not designed to accomodate extra -features only available on the STM32F103RET6. - -.. _maple-ret6-barrel-jack: - -* **Barrel jack power supply voltage mistake**: The acceptable voltage -  range given next to the barrel jack on the Maple RET6 is -  **incorrect**.  The given range is 7V — 18V.  In fact, **18V is too -  high** and should not be supplied to your board. The original -  voltage regulators used on the Maple were rated up to 18V.  However, -  the voltage regulators on current Maple Revs are rated up to only -  16V, and due to the current draw requirements of the board, operate -  properly only up to 12V.  The recommended maximum voltage you should -  apply is **12V**, and potentially even lower depending upon the -  current draw requirements of the application. Please see :ref:`Power -  Regulation on the Maple <maple-power-regulation>` for more -  information. - -* **Power supply marketing mistake**: We originally sold the Maple -  RET6 Edition advertising that it was capable of supplying up to 800 -  mA; the correct value is 500 mA. - -.. _maple-ret6-uarts: - -* **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).  This is due to the RET6 Edition's board layout -  being that of the Maple Rev 5, which was not designed with these -  RET6-specific features in mind. - -.. _maple-ret6-dac-ch2: - -* **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.  This is also due to the -  RET6 Edition's board layout being that of the Maple Rev 5.  The DAC -  output channel is still available, and (if you use the -  :ref:`standard libmaple DAC interface <libmaple-dac>`) its output is -  buffered by default, so this may not significantly interfere with -  its functionality. - -.. _maple-ret6-nrst-pb4: - -* **Reset and PB4 tied together**: The RET6 Edition'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 can 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. - -.. _maple-ret6-sdio: - -* **SDIO lines not broken out**: The RET6 Edition's SDIO peripheral is -  not usable, as some of its data lines are either not broken out or -  used for other purposes.  This is also due to the RET6 Edition's -  board layout being that of the Maple Rev 5. - -.. _maple-ret6-adc-led: - -* **ADC on BOARD_LED_PIN**: We originally sold the Maple RET6 Edition -  advertising 16 analog input lines.  However, one of them (the one on -  pin 13) is also connected to the built-in LED.  The voltage drop -  across the LED means that the analog to digital converter on that -  pin is not really useful.  While it is still usable, its readings -  will be incorrect. - -Recommended Reading -------------------- - -.. _maple-ret6-stdocs: - -STMicro documentation for STM32F103RE microcontroller: - -* `Datasheet -  <http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00191185.pdf>`_ -  (PDF); covers STM32F103xC, STM32F103xD, STM32F103xE. -* `Reference Manual RM0008 -  <http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/REFERENCE_MANUAL/CD00171190.pdf>`_ -  (PDF); definitive resource for peripherals on the STM32F1 line. -* `Programming Manual PM0056 -  <http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/PROGRAMMING_MANUAL/CD00228163.pdf>`_ -  (PDF); assembly language and register reference. -* `STM32F103RE <http://www.st.com/internet/mcu/product/164485.jsp>`_ -  overview page with links to further references. diff --git a/docs/source/hardware/maple.rst b/docs/source/hardware/maple.rst deleted file mode 100644 index b187115..0000000 --- a/docs/source/hardware/maple.rst +++ /dev/null @@ -1,618 +0,0 @@ -.. highlight:: sh - -.. _maple: - -Maple -===== - -This page is a general resource for information specific to the Maple. - -.. contents:: Contents -   :local: - -.. TODO [dma.rst] Ref to dma.rst in sequel instead of libmaple-dma -.. TODO [nvic.rst] Ref to nvic.rst in sequel - -Technical Specifications ------------------------- - -* MCU: :ref:`STM32F103RBT6 <maple-stdocs>`, a 32-bit ARM Cortex M3 -  microprocessor -* Clock Speed: **72 MHz** -* **128 KB Flash** and **20 KB SRAM** -* 43 :ref:`digital I/O pins (GPIOs) <gpio>` -* 15 :ref:`PWM <pwm>` pins at 16 bit resolution -* 15 :ref:`analog input (ADC) <adc>` pins at 12-bit resolution -* 2 :ref:`SPI <spi>` peripherals -* 2 :ref:`I2C <i2c>` peripherals -* 7 Channels of Direct Memory Access (**DMA**) (:ref:`libmaple-dma`) -* 3 :ref:`USART (serial port) <usart>` peripherals -* One advanced and three general-purpose :ref:`timers <timers>` -* Dedicated :ref:`USB <usb>` port for programming and communications -* :ref:`JTAG <jtag>` -* Nested Vectored Interrupt Controller (NVIC) (including -  :ref:`external interrupt <external-interrupts>` on GPIOs) -* Supplies up to 500 mA at 3.3 V, with separate 250 mA digital and -  analog regulators for low-noise analog performance -* :ref:`Open source, four layer design <maple-hardware>` -* Support for low power, sleep, and standby modes (<500 μA) -* Operating Voltage: 3.3 V -* Input Voltage (recommended): 4 V — 12 V -* Dimensions: 2.05″ × 2.1″ - -.. _maple-identify-rev: - -Identifying your Rev --------------------- - -We went through three versions ("Revs") of the Maple hardware: Rev 1, -Rev 3, and Rev 5 [#frev2_4]_; Rev 5, the final design, is currently on -sale.  The following sections will help you to help you identify your -Rev. - -Rev 5 -^^^^^ - -These boards went on sale in November 2010.  They have white buttons -and "r5" in small print near the "LeafLabs Maple" text next to the -"infinity leaf" logo.  The Maple Rev 5 repositioned the double header -on the right hand side to better fit 0.1 inch pitch breadboard.  This -necessitated the removal of pins 21 and 22 from the double header; -they are still available, but don't have any headers installed on -them. - -.. figure:: /_static/img/maple_rev5.png -   :align: center -   :alt: Maple Rev 5 - -Rev 3 -^^^^^ - -This batch of boards went on sale beginning in May 2010. They have a -darker red silkscreen and the "infinity leaf" logo.  The Maple Rev 3 -was the first version which includes the built-in button, labeled BUT. - -.. figure:: /_static/img/maple_rev3.png -   :align: center -   :alt: Maple Rev 3 - -Rev 1 -^^^^^ - -A small number of Maple Rev 1 boards went on sale in late 2009.  They -have a light red silkscreen and a single pixelated leaf as a logo. - -.. figure:: /_static/img/maple_rev1.png -   :align: center -   :alt: Maple Rev 1 - -.. _maple-powering: - -Powering the Maple ------------------- - -The Maple's power source is determined by the header to the left of -the "LeafLabs" label on the silkscreen.  All versions of the Maple can -be powered from the barrel jack connector, USB, or a LiPo battery.  We -ship the Maple with a jumper on the USB selector.  In order to power -it off of an alternative source, unplug the Maple, then move the -jumper to the desired selector before reconnecting power. - -You can also power the Maple via the pin labeled "Vin" on the lower -header.  This pin feeds into both the digital and analog voltage -regulators.  However, don't do this while simultaneously powering the -board from another source, or you could damage it. - -When powering the board from a barrel jack, **double check the -polarity of the barrel.** The appropriate polarity is noted on the -silkscreen right next to the connector. - -.. warning:: Silkscreens on Maples up through Rev 5s manufactured in -   Spring 2011 falsely indicated that the barrel jack could be -   supplied by up to 18V. (Rev5s manufactured after Spring 2011 may -   still have this error on the silk, but it has been marked over.) We -   recommend a barrel jack input voltage **no greater than 12V**, and -   potentially even lower depending upon the current draw requirements -   of the application. The same goes for powering off LiPo batteries. - -   Please see :ref:`Power Regulation on the Maple -   <maple-power-regulation>` for more information. - -.. _maple-power-regulation: - -Power Regulation on the Maple ------------------------------ - -Power regulation on the Maple is provided by two low dropout linear -voltage regulators. (The part is the MCP1703 from Microchip, in the -SOT-23A package. You can download the datasheet `here -<http://ww1.microchip.com/downloads/en/DeviceDoc/22049a.pdf>`_ ). One -of the regulators supplies power to the digital voltage plane; the -other supplies power to the analog voltage plane. - -These voltage regulators nominally take an input of up to 16V. In -addition, while the maximum continuous output current for the board is -250mA, if you are powering the board off higher voltages the current -it can supply goes down, due to the regulators needing to dissipate -the extra power. So if you are powering the board off 12V, the max -current is about 40mA at room temperature. In general (again, at room -temperature) the max power dissipation (PD) for the chip is about -.37W, and output current = PD/(Vin-Vout). For exact max current -calculations, please refer to the datasheet linked above. - -If you are planning to draw a lot of current from the Maple board, it -is necessary to provide input power as close to 3.3V as -possible. Powering the microcontroller circuitry and LEDs on the board -alone takes approximately 30mA, so if you are powering the board with -12V that leaves only 10mA (at best) available for powering any user -circuitry. Attempting to draw more than 10mA runs the risk of shorting -out the power regulators and bricking your board. - -Using the Built-in Battery Charger ----------------------------------- - -Maples Rev 3 and Rev 5 also have a built-in LiPo battery charger.  In -order to use it, put a jumper across the CHRG header on the power -selection header and across the USB, or EXT selectors, depending on -whether you're charging the battery via USB cable or barrel jack -connector.  The LED labeled CHRG will light up while the battery is -being charged.  When the battery is finished charging, the LED labeled -DONE will light up. - -.. _maple-gpios: - -GPIO Information ----------------- - -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`` on the back of the Maple's -silkscreen) 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 - -.. _maple-pin-map-master: - -Master Pin Map -^^^^^^^^^^^^^^ - -This table shows a summary of the available functionality on every -GPIO pin, by peripheral type.  The "5 V?" column documents whether or -not the pin is :ref:`5 volt tolerant <gpio-5v-tolerant>`. - -Note that this table is not exhaustive; on some pins, more peripherals -are available than are listed here. - -.. csv-table:: -   :header: Pin, :ref:`GPIO <gpio>`, :ref:`ADC <adc>`, :ref:`Timer <timers>`, :ref:`I2C <i2c>`, :ref:`UART <usart>`, :ref:`SPI <spi>`, 5 V? - -   D0,  PA3,  CH3,  2_CH4,     -,       2_RX,  -,      - -   D1,  PA2,  CH2,  2_CH3,     -,       2_TX,  -,      - -   D2,  PA0,  CH0,  2_CH1_ETR, -,       2_CTS, -,      - -   D3,  PA1,  CH1,  2_CH2,     -,       2_RTS, -,      - -   D4,  PB5,  -,    -,         1_SMBA,  -,     -,      - -   D5,  PB6,  -,    4_CH1,     1_SCL,   -,     -,      Yes -   D6,  PA8,  -,    1_CH1,     -,       1_CK,  -,      Yes -   D7,  PA9,  -,    1_CH2,     -,       1_TX,  -,      Yes -   D8,  PA10, -,    1_CH3,     -,       1_RX,  -,      Yes -   D9,  PB7,  -,    4_CH2,     1_SDA,   -,     -,      Yes -   D10, PA4,  CH4,  -,         -,       2_CK,  1_NSS,  - -   D11, PA7,  CH7,  3_CH2,     -,       -,     1_MOSI, - -   D12, PA6,  CH6,  3_CH1,     -,       -,     1_MISO, - -   D13, PA5,  CH5,  -,         -,       -,     1_SCK,  - -   D14, PB8,  -,    4_CH3,     -,       -,     -,      Yes -   D15, PC0,  CH10, -,         -,       -,     -,      - -   D16, PC1,  CH11, -,         -,       -,     -,      - -   D17, PC2,  CH12, -,         -,       -,     -,      - -   D18, PC3,  CH13, -,         -,       -,     -,      - -   D19, PC4,  CH14, -,         -,       -,     -,      - -   D20, PC5,  CH15, -,         -,       -,     -,      - -   D21, PC13, -,    -,         -,       -,     -,      - -   D22, PC14, -,    -,         -,       -,     -,      - -   D23, PC15, -,    -,         -,       -,     -,      - -   D24, PB9,  -,    4_CH4,     -,       -,     -,      Yes -   D25, PD2,  -,    3_ETR,     -,       -,     -,      Yes -   D26, PC10, -,    -,         -,       -,     -,      Yes -   D27, PB0,  CH8,  3_CH3,     -,       -,     -,      - -   D28, PB1,  CH9,  3_CH4,     -,       -,     -,      - -   D29, PB10, -,    -,         2_SCL,   3_TX,  -,      Yes -   D30, PB11, -,    -,         2_SDA,   3_RX,  -,      Yes -   D31, PB12, -,    -,         2_SMBA,  3_CK,  2_NSS,  Yes -   D32, PB13, -,    -,         -,       3_CTS, 2_SCK,  Yes -   D33, PB14, -,    -,         -,       3_RTS, 2_MISO, Yes -   D34, PB15, -,    -,         -,       -,     2_MOSI, Yes -   D35, PC6,  -,    -,         -,       -,     -,      Yes -   D36, PC7,  -,    -,         -,       -,     -,      Yes -   D37, PC8,  -,    -,         -,       -,     -,      Yes -   D38, PC9,  -,    -,         -,       -,     -,      Yes -   D39, PA13, -,    -,         -,       -,     -,      Yes -   D40, PA14, -,    -,         -,       -,     -,      Yes -   D41, PA15, -,    -,         -,       -,     -,      Yes -   D42, PB3,  -,    -,         -,       -,     -,      Yes - -.. _maple-gpio-port-map: - -GPIO Port Pin Map -^^^^^^^^^^^^^^^^^ - -The following table shows what pins are associated with each -:ref:`GPIO port <gpio-ports>`. - -.. csv-table:: -   :header: GPIOA, GPIOB, GPIOC - -   PA0: D2,   PB0:  D27, PC0: D15 -   PA1: D3,   PB1:  D28, PC1: D16 -   PA2: D1,   PB2:  -,   PC2: D17 -   PA3: D0,   PB3:  D42, PC3: D18 -   PA4: D10,  PB4:  D43, PC4: D19 -   PA5: D13,  PB5:  D4,  PC5: D20 -   PA6: D12,  PB6:  D5,  PC6: D35 -   PA7: D11,  PB7:  D9,  PC7: D36 -   PA8: D6,   PB8:  D14, PC8: D37 -   PA9: D7,   PB9:  D24, PC9: D38 -   PA10: D8,  PB10: D29, PC10: D26 -   PA11: -,   PB11: D30, PC11: - -   PA12: -,   PB12: D31, PC12: - -   PA13: D39, PB13: D32, PC13: D21 -   PA14: D40, PB14: D33, PC14: D22 -   PA15: D41, PB15: D34, PC15: D23 - -.. _maple-timer-map: - -Timer Pin Map -^^^^^^^^^^^^^ - -The following table shows what pins are associated with a particular -timer's capture/compare channels. - -.. csv-table:: -   :header: Timer, Ch. 1, Ch. 2, Ch. 3, Ch. 4 -   :delim: | - -   1 | D6  | D7  | D8  | - -   2 | D2  | D3  | D1  | D0 -   3 | D12 | D11 | D27 | D28 -   4 | D5  | D9  | D14 | D24 - -.. _maple-exti-map: - -EXTI Line Pin Map -^^^^^^^^^^^^^^^^^ - -The following table shows which pins connect to which :ref:`EXTI lines -<external-interrupts-exti-line>` on the Maple. - -.. list-table:: -   :widths: 1 1 -   :header-rows: 1 - -   * - EXTI Line -     - Pins -   * - EXTI0 -     - D2, D15, D27 -   * - EXTI1 -     - D3, D16, D28 -   * - EXTI2 -     - D1, D17, D25 -   * - EXTI3 -     - D0, D18, D42 -   * - EXTI4 -     - D10, D19 -   * - EXTI5 -     - D4, D13, D20 -   * - EXTI6 -     - D5, D12, D35 -   * - EXTI7 -     - D9, D11, D36 -   * - EXTI8 -     - D6, D14, D37 -   * - EXTI9 -     - D7, D24, D38 -   * - EXTI10 -     - D8, D26, D29 -   * - EXTI11 -     - D30 -   * - EXTI12 -     - D31 -   * - EXTI13 -     - D21, D32, D39 -   * - EXTI14 -     - D22, D33, D40 -   * - EXTI15 -     - D23, D34, D41 - -.. _maple-usart-map: - -USART Pin Map -^^^^^^^^^^^^^ - -The Maple has three serial ports (also known as :ref:`USARTs -<usart>`): ``Serial1``, ``Serial2``, and ``Serial3``. They communicate -using the pins given in the following table. - -.. csv-table:: -   :header: Serial Port, TX, RX, CK, CTS, RTS -   :delim: | - -   ``Serial1`` | D7  | D8  | D6  |     | -   ``Serial2`` | D1  | D0  | D10 | D2  | D3 -   ``Serial3`` | D29 | D30 | D31 | D32 | D33 - -.. _maple-adc-bank: - -Low-Noise ADC Pins -^^^^^^^^^^^^^^^^^^ - -The six pins at the bottom right of the board (D15—D20) generally -offer lower-noise ADC performance than other pins on the board. If -you’re concerned about getting good ADC readings, we recommend using -one of these pins to take your measurements. - -Maple has an electrically isolated analog power plane with its own -regulator, and a geometrically isolated ground plane. Pins D15—D20 are -laid out to correspond with these analog planes, and our measurements -indicate that they generally have the lowest noise of all the analog -lines.  However, analog performance may vary depending upon the -activity of the other GPIOs.  Consult the :ref:`Maple hardware design -files <maple-hardware>` for more details. - -Board-Specific Values ---------------------- - -This section lists the Maple's :ref:`board-specific values -<lang-board-values>`. - -- ``CYCLES_PER_MICROSECOND``: 72 -- ``BOARD_BUTTON_PIN``: 38 -- ``BOARD_LED_PIN``: 13 -- ``BOARD_NR_GPIO_PINS``: 44 (however, :ref:`pin D43 is not usable -  <maple-nrst-pb4>`) -- ``BOARD_NR_PWM_PINS``: 15 -- ``boardPWMPins``: 0, 1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 14, 24, 27, 28 -- ``BOARD_NR_ADC_PINS``: 15 -- ``boardADCPins``: 0, 1, 2, 3, 10, 11, 12, 15, 16, 17, 18, 19, 20, 27, 28 -- ``BOARD_NR_USED_PINS``: 7 -- ``boardUsedPins``: ``BOARD_LED_PIN``, ``BOARD_BUTTON_PIN``, -  ``BOARD_JTMS_SWDIO_PIN``, ``BOARD_JTCK_SWCLK_PIN``, -  ``BOARD_JTDI_PIN``, ``BOARD_JTDO_PIN``, ``BOARD_NJTRST_PIN`` -- ``BOARD_NR_USARTS``: 3 -- ``BOARD_USART1_TX_PIN``: 7 -- ``BOARD_USART1_RX_PIN``: 8 -- ``BOARD_USART2_TX_PIN``: 1 -- ``BOARD_USART2_RX_PIN``: 0 -- ``BOARD_USART3_TX_PIN``: 29 -- ``BOARD_USART3_RX_PIN``: 30 -- ``BOARD_NR_SPI``: 2 -- ``BOARD_SPI1_NSS_PIN``: 10 -- ``BOARD_SPI1_MOSI_PIN``: 11 -- ``BOARD_SPI1_MISO_PIN``: 12 -- ``BOARD_SPI1_SCK_PIN``: 13 -- ``BOARD_SPI2_NSS_PIN``: 31 -- ``BOARD_SPI2_MOSI_PIN``: 34 -- ``BOARD_SPI2_MISO_PIN``: 33 -- ``BOARD_SPI2_SCK_PIN``: 32 -- ``BOARD_JTMS_SWDIO_PIN``: 39 -- ``BOARD_JTCK_SWCLK_PIN``: 40 -- ``BOARD_JTDI_PIN``: 41 -- ``BOARD_JTDO_PIN``: 42 -- ``BOARD_NJTRST_PIN``: :ref:`43 <maple-nrst-pb4>` - -.. _maple-hardware: - -Hardware Design Files ---------------------- - -The hardware schematics and board layout files are available in the -`Maple GitHub repository <https://github.com/leaflabs/maple>`_.  The -design files for Rev 1, Rev 3, and Rev 5 are respectively in the -``maple-r1``, ``maple-r3``, and ``maple-r5`` subdirectories.  A -schematic for a JTAG adapter suitable for use with Maple is available -in the ``jtagadapter`` directory. - -From the GitHub repository main page, you can download the entire -repository by clicking the "Download" button.  If you are familiar -with `Git <http://git-scm.com/>`_, you can also clone the repository -at the command line with :: - -    $ git clone git://github.com/leaflabs/maple.git - -.. _maple-failure-modes: - -Failure Modes -------------- - -The following are known failure modes.  The failure modes aren't -design errors, but are easy ways to break or damage your board -permanently. - -* **High voltage on non-tolerant pins**: not all header pins are 5V -  compatible; so e.g. connecting certain serial devices in the wrong -  way could over-voltage the pins.  The :ref:`pin-mapping master table -  <maple-pin-map-master>` details which pins are :ref:`5 V tolerant -  <gpio-5v-tolerant>`. - -Errata ------- - -This section documents design flaws and other errors. - -General -^^^^^^^ - -.. _maple-barrel-jack: - -* **Barrel jack power supply voltage mistake**: The acceptable voltage -  range given next to the barrel jack on the Maple through Rev 5s -  manufactured in Spring 2011 is **incorrect**.  The given range is 7V -  — 18V.  In fact, **18V is too high** and should not be supplied to -  your board. The original voltage regulators used on the Maple were -  rated up to 18V.  However, the voltage regulators on current Maple -  Revs are rated up to only 16V, and due to the current draw -  requirements of the board, operate properly only up to 12V.  The -  recommended maximum voltage you should apply is **12V**, and -  potentially even lower depending upon the current draw requirements -  of the application. Please see :ref:`Power Regulation on the Maple -  <maple-power-regulation>` for more information. - -.. _maple-nrst-pb4: - -* **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 can 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. - -.. _maple-power-supply: - -* **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. - -.. _maple-pwm-marketing: - -* **PWM marketing mistake**: We originally advertised the Maple as -  having 22 PWM-capable pins; the correct number is 15. - -.. _maple-adc-marketing: - -* **ADC marketing mistake**: We originally advertised the Maple as -  having 16 analog input pins.  Due to :ref:`the following issue -  <maple-adc-led>`, the correct number is 15. - -.. _maple-adc-led: - -* **ADC on BOARD_LED_PIN**: We originally sold the Maple RET6 Edition -  advertising 16 analog input lines.  However, one of them (the one on -  pin 13) is also connected to the built-in LED.  The voltage drop -  across the LED means that the analog to digital converter on that -  pin is not really useful.  While it is still usable, its readings -  will be incorrect. - - -By Rev -^^^^^^ - -The following subsections lists known issues and warnings for each -revision of the Maple board. - -Rev 5 -~~~~~ - -* **Pin 3 AIN missing**: Pin 3 is capable of analog input, but on Rev -  5s manufactured during Fall 2010, the corresponding "AIN" is missing -  from its silkscreen.  This mistake was fixed in later manufacturing -  runs. - -Rev 3 -~~~~~ - -* **Pin 3 AIN missing**: Pin 3 is capable of analog input, but the -  corresponding "AIN" is missing from the Rev 3 silkscreen. - -.. _maple-rev3-bad-buttons: - -* **Bad/Sticky Buttons**: a number of Rev 3 boards sold in May-June 2010 -  have questionable RESET and BUT buttons. - -  What seems to have happened is that the flux remover we used to -  clean the boards before shipping eroded the plastic internals, which -  resulted in intermittent functionality. All buttons on all shipped -  boards did function in testing, but some may have been unreliable in -  regular use. - -  If you have this problem, we will be happy to ship you new buttons -  if you think you can re-solder them yourself, or you can ship us -  your board and we will swap out that part. - -  For reference, the button part number is KMR211GLFS and the flux -  remover we used is "Precision Electronics Cleaner" from RadioShack, -  which is "Safe on most plastics" and contains: dipropylene glycol -  monomethyl ether, hydrotreated heavy naphtha, dipropylene glycol -  methyl ether acetate (say that three times fast!), and carbon -  dioxide. - -* **Resistors on pins 0 and 1**: these header pins, which are RX/TX on -  USART2 (:ref:`Serial2 <lang-serial>`), have resistors in-line -  between the STM32 and the headers. These resistors increase the -  impedance of the lines for ADC reads and affect the open drain GPIO -  functionality of the pins. - -  These resistors were accidentally copied over from older Arduino USB -  designs, where they appear to protect the USB-Serial converter from -  TTL voltage on the headers. - -* **Silkscreen Errors**: the silkscreen on the bottom indicated PWM -  functionality on pin 25 and listen the external header GND pin as -  number 38 (actually 38 is connected to the BUT button). We manually -  sharpied over both of these mistakes. - -Rev 1 -~~~~~ - -* **ADC noise**: generally very high, in particular when the USB port -  is being used for communications (including keep-alive pings when -  connected to a computer). - -  This issue was resolved in Rev 3 with a 4-layer design and a -  :ref:`geometrically isolated ADC Vref plane <maple-adc-bank>`. - -* **Resistors on pins 0 and 1**: these header pins, which are RX/TX on -  USART2 (:ref:`Serial2 <lang-serial>`), have resistors in-line -  between the STM32 and the headers. These resistors increase the -  impedance of the lines for ADC reads and affect the open drain GPIO -  functionality of the pins. - -  These resistors were accidentally copied over from older Arduino USB -  designs, where they appear to protect the USB-Serial converter from -  TTL voltage on the headers. - -* **Silkscreen Differences**: the pin numbering scheme on Rev 1 is -  different from Rev 3, and thus Rev 3 software is difficult to use -  with Rev 1 boards. Notably, the analog input bank is labeled A0-A4 -  on Rev 1 but 15-20 on Rev 3, and the extra header bank does not have -  a pinout table on the bottom. - -* **No BUT Button**: the BUT button, useful for serial bootloading, -  was only added in Rev 3. As a workaround, you can directly short the -  appropriate MCU pin to Vcc; see `this forum posting -  <http://forums.leaflabs.com/topic.php?id=32#post-126>`_. - -Recommended Reading -------------------- - -.. _maple-stdocs: - -STMicro documentation for STM32F103RB microcontroller: - -* `Datasheet -  <http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00161566.pdf>`_ -  (PDF); covers STM32F103x8, STM32F103xB. -* `Reference Manual RM0008 -  <http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/REFERENCE_MANUAL/CD00171190.pdf>`_ -  (PDF); definitive resource for peripherals on the STM32F1 line. -* `Programming Manual PM0056 -  <http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/PROGRAMMING_MANUAL/CD00228163.pdf>`_ -  (PDF); assembly language and register reference. -* `STM32F103RB <http://www.st.com/internet/mcu/product/164487.jsp>`_ -  overview page with links to further references. - -.. rubric:: Footnotes - -.. [#frev2_4] Revs 2 and 4 were prototypes that didn't pass internal -   testing.  | 
