Skip to content

Commit 11910e2

Browse files
robert-hhdpgeorge
authored andcommitted
docs/samd: Add documentation for the samd port.
Includes a general overview, a quickref, pinout tables, and the beginnings of a tutorial.
1 parent 64af916 commit 11910e2

File tree

7 files changed

+1496
-0
lines changed

7 files changed

+1496
-0
lines changed

docs/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@ MicroPython documentation and references
1717
unix/quickref.rst
1818
zephyr/quickref.rst
1919
renesas-ra/quickref.rst
20+
samd/quickref.rst

docs/samd/general.rst

+88
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
.. _samd_general:
2+
3+
General information about the SAMD port
4+
=======================================
5+
6+
The SAMD21/SAMD51 MCU family is a high performance family of devices made by MicroChip.
7+
The SAMD21 devices are based on an ARM M0+ core, the SAMD51 device on ARM Cortex M4 core.
8+
They provide many on-chip I/O units for building small to medium sized devices.
9+
10+
Multitude of boards
11+
-------------------
12+
13+
There is a multitude of modules and boards from different sources which carry
14+
an SAMD21/SAMD51 chip. MicroPython aims to provide a generic port which runs on
15+
as many boards/modules as possible, but there may be limitations. The
16+
Adafruit ItsyBitsy M0 Express, Adafruit Feather M4 Express and the Adafruit ItsyBitsy M4 Express
17+
development boards are taken as reference for the port (for example, testing is performed on them).
18+
For any board you are using please make sure you have a data sheet, schematics
19+
and other reference materials so you can look up any board-specific functions.
20+
21+
The following boards are at the moment supported by the port:
22+
23+
- ADAFRUIT FEATHER M0 EXPRESS
24+
- ADAFRUIT FEATHER M4 EXPRESS
25+
- ADAFRUIT ITSYBITSY M0 EXPRESS
26+
- ADAFRUIT ITSYBITSY M4 EXPRESS
27+
- ADAFRUIT TRINKET M0
28+
- MINISAM M4
29+
- SAMD21 XPLAINED PRO
30+
- SEEED WIO TERMINAL
31+
- SEEED XIAO
32+
33+
To make a generic SAMD port and support as many boards as possible the
34+
following design and implementation decision were made:
35+
36+
* GPIO pin numbering is based on the board numbering.
37+
Please have the manual/pin diagram of your board at hand
38+
to find correspondence between your board pins and actual SAMD21/SAMD51 pins.
39+
For the boards listed above, the relation between the board pin number and
40+
the GPIO number can be found at :ref:`samd_pinout`.
41+
* The pins that can be used by MicroPython are limited to those listed
42+
in the board definition files.
43+
44+
Technical specifications and SoC data sheets
45+
--------------------------------------------
46+
47+
The data sheets and other reference material for SAMD21/SAMD51 chip are available
48+
from the vendor site: https://www.microchip.com/en-us/products/microcontrollers-and-microprocessors/32-bit-mcus/sam-32-bit-mcus
49+
They are the primary reference for the chip technical specifications, capabilities,
50+
operating modes, internal functioning, etc.
51+
52+
For your convenience, a few technical specifications are provided below:
53+
54+
SAMD21:
55+
56+
* Architecture: ARM Cortex M0+
57+
* CPU frequency: up to 48MHz
58+
* Total RAM available: up to 32 kB (see table)
59+
* Internal FlashROM: up to 256 kB
60+
Some boards provide additional external SPI flash.
61+
* GPIO: up to 52 (GPIOs are multiplexed with other functions, including
62+
external FlashROM, UART, etc.)
63+
* UART: up to 6 serial devices, which can used for UART, SPI or I2C.
64+
* I2S: 1 I2S interfaces
65+
* ADC: One 12-bit SAR ADC converter with 16 channels.
66+
* Programming: using BootROM bootloader from USB.
67+
68+
SAMD51:
69+
70+
* Architecture: ARM Cortex M4
71+
* CPU frequency: up to 120MHz
72+
* Total RAM available: up to 256 kB
73+
* Internal FlashROM: up to 1 MB
74+
Some boards provide additional external SPI flash.
75+
* GPIO: up to 99 (GPIOs are multiplexed with other functions, including
76+
external FlashROM, UART, etc.)
77+
* UART: up to 8 serial devices, which can used for UART, SPI or I2C.
78+
* I2S: 1 I2S interfaces
79+
* ADC: Dual 12-bit SAR ADC converter with 16 channels.
80+
* Programming: using BootROM bootloader from USB.
81+
82+
83+
For more information see the excellent SAMD21/SAMD51 data sheets or reference manuals.
84+
85+
At the moment, the SAM21 port of MicroPython requires 256kB flash, of which 64kB is used
86+
for a small file system. The SAM51 port requires 512 kB of flash, of which all flash beyond
87+
384kB is used for a file system. Some boards have additional flash memory, which can be used
88+
as additional file space.
148 KB
Loading

0 commit comments

Comments
 (0)