ArduinoのSERCOMについて調べたところ、日本語の情報がほとんどなかったので、調べたことを備忘録として書き留めておきます。 ※ 簡単に調べただけなので、内容に誤りがある可能性があります SERCOMとは何か Serial communication moduleの略であり、MCUが用意しているシリアル通信モジュールのことである。 MCUのPinをどのシリアル通信(I2C、UART、SPI)で使用するのかを定義している。 以下はArduino MKR WAN 1310のMCUであるATSAMD21のデータシートを抜粋した画像です。 このMCUには6つのSERCOMが用意されていると書いてあります。 ArduinoのPinに紐づけられているSERCOMを確認する ArduinoのPinとSERCOMが紐づけられているので、シリアル通信を使うことができます。 以下はArduino MKR WAN 1310のPin配列図ですが、どこにもSERCOMの記述はありません。 より詳細なPin配列を「 Download the full pinout diagram as PDF here. 」から確認できます。 先ほどは無かった「Sercom」が表示されています。 例えば、UARTで使用するD13とD14には「SC5」と書いてあるので、SERCOMの5番と紐づいていることが分かります。 SERCOMでシリアル通信用のPinを増やせる ArduinoはMCUのSERCOMを全て利用しているとは限らないため、未使用のSERCOMがあります。 そのため、シリアル通信以外に割り振られているArduinoのPinと未使用のSERCOMを紐づけることで、シリアル通信用のPinを増やすことができます。 例えば、Arduino MKR WAN 1310のUARTは1つ(D13とD14)しか存在しませんが、他のPinを使ってUART用のPinを増やすことができます。