|
| 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. |
0 commit comments