SAMD ポートに関する一般的なこと¶
SAMD21/SAMD51 MCU ファミリーは、MicroChip社製の高性能デバイスファミリーです。SAMD21 デバイスは ARM M0+ コアを、SAMD51 デバイスは ARM Cortex M4 コアをベースにしています。これらのデバイスは、中小規模のデバイスを構築するために多くのオンチップ I/O ユニットを提供します。
豊富なボード¶
SAMD21/SAMD51 チップを搭載したモジュールやボードは、様々なところから多数提供されています。MicroPython は、できるだけ多くのボードやモジュールで動作する汎用ポートの提供を目指していますが、制限がある場合があります。Adafruit ItsyBitsy M0 Express、Adafruit Feather M4 Express、Adafruit ItsyBitsy M4 Express 開発ボードが、ポートリファレンスのボードとして使われています(たとえば、テストはこれらのボードで行っています)。利用するボードについては、データシート、回路図、その他の参考資料を用意し、ボード固有の機能を調べられるようにしておいてください。
現在のところ、ポートでサポートしているボードは次のとおりです:
ADAFRUIT FEATHER M0 EXPRESS
ADAFRUIT FEATHER M4 EXPRESS
ADAFRUIT ITSYBITSY M0 EXPRESS
ADAFRUIT ITSYBITSY M4 EXPRESS
ADAFRUIT TRINKET M0
MINISAM M4
SAMD21 XPLAINED PRO
SEEED WIO TERMINAL
SEEED XIAO
一般的な SAMD ポートを作成し、可能な限り多くのボードをサポートするために、次の設計と実装の決定が行われました。
GPIO ピン番号はボードがつけている番号に基づいています。ボードのピンと実際の SAMD21/SAMD51 ピンの対応を見つけるには、ボードのマニュアル/ピン図を用意してください。上記のボードについて、ボードのピン番号とGPIO番号の関係は、 SAMD の machine モジュールにおけるピン配列 で確認できます。
MicroPython で使えるピンは、ボード定義ファイルに記載されているものに限定されます。
技術仕様および SoC データシート¶
SAMD21/SAMD51 チップのデータシートおよびその他の参考資料は、ベンダーのサイト https://www.microchip.com/en-us/products/microcontrollers-and-microprocessors/32-bit-mcus/sam-32-bit-mcus から入手できます。これらは、チップの技術仕様、機能、動作モード、内部機能などの主要な参考資料となっています。
便宜上、いくつかの技術仕様を以下に示します。
SAMD21:
アーキテクチャ: ARM Cortex M0+
CPU 周波数: 最大 48MHz
使用可能なRAMの合計: 最大 32kB
内部フラッシュROM: 最大 256kB (ボードによっては追加の外部 SPI フラッシュがあります
GPIO: 最大 52 (GPIO は外部フラッシュROM、UART など、他の機能と多重化されています)
UART: 最大6つのシリアルデバイス(UART、SPI、I2C として利用可能)
I2S: 1つの I2S インタフェース
ADC: 1 (16 チャンネルの 12 ビット SAR ADC)
プログラミング: USB から BootROM ブートローダーを使用。
SAMD51:
アーキテクチャ: ARM Cortex M4
CPU 周波数: 最大 120MHz
使用可能なRAMの合計: 最大 256kB
内部フラッシュROM: 最大 1MB (ボードによっては追加の外部 SPI フラッシュがあります
GPIO: 最大 99 (GPIO は外部フラッシュROM、UART など、他の機能と多重化されています)
UART: 最大8つのシリアルデバイス(UART、SPI、I2C として利用可能)
I2S: 1つの I2S インタフェース
ADC: 2 (16 チャンネルの 12 ビット SAR ADC)
プログラミング: USB から BootROM ブートローダーを使用。
詳細については SAMD21/SAMD51 データシートまたはリファレンスマニュアルを参照してください。
現時点で、MicroPython の SAM21 ポートは 256kB のフラッシュを必要とし、そのうち 64kB は小さなファイルシステムに使います。SAM51 ポートは 512kB のフラッシュを必要とし、そのうち 384kB を超える残りすべてのフラッシュはファイルシステムに使います。いくつかのボードには追加のフラッシュメモリがあり、追加のファイルスペースとして使えます。