Seeeduino XIAOは、Arduino互換機ですがCPUがSAMD21G18で,ATmega系のArduinoとは違っています。

そのためもあってか,XIAOのSPI通信は新しくなった設定方法を使わないと見事にフリーズしました(^^;;;;;;;。

Webを探ってやっと分かった設定のSPIで,シリアルパラレル変換のI/Oエキスパンダーを動かしてLチカしているところです。




設定の参考にしたというか教えてもらったページです。
Arduino Reference SPI library (Last revision 2019/12/24)
Arduino MKR ZEROでSPIを使う際の注意点まとめ


今回のキモの設定方法です。
SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));

これを使って設定した,試行錯誤のコメントアウト満載のプログラムです(^^;;;;;




スレイブセレクタ(SS)のHIGH/LOWにポートコントロールを使っていますが,これは速くしたいだけです(^^)。

loop部では白と緑のLEDを交互に点滅させているだけです。




ロジアナでみると1byteのデータを送るのに,8uSぐらいかかっているので,スピードが要求されるものには向かないですね。



うむ,SPIのクロックを8MHzに設定しても5MHzぐらいしか出ていないのも一因です,,。どうしてなのかまだ分かっていません(^^;;;;;;;。