Seeeduino XIAOは、Arduino互換機ですがCPUがSAMD21G18で,ATmega系のArduinoとは違っています。
そのためもあってか,XIAOのSPI通信は新しくなった設定方法を使わないと見事にフリーズしました(^^;;;;;;;。
Webを探ってやっと分かった設定のSPIで,シリアルパラレル変換のI/Oエキスパンダーを動かしてLチカしているところです。
![](https://stat.ameba.jp/user_images/20201015/21/pta55/40/ef/j/o2112076814835393727.jpg?caw=800)
設定の参考にしたというか教えてもらったページです。
・Arduino Reference SPI library (Last revision 2019/12/24)
・Arduino MKR ZEROでSPIを使う際の注意点まとめ
今回のキモの設定方法です。
SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));
これを使って設定した,試行錯誤のコメントアウト満載のプログラムです(^^;;;;;
![](https://stat.ameba.jp/user_images/20201015/21/pta55/44/a5/j/o1200087614835393725.jpg?caw=800)
スレイブセレクタ(SS)のHIGH/LOWにポートコントロールを使っていますが,これは速くしたいだけです(^^)。
loop部では白と緑のLEDを交互に点滅させているだけです。
![](https://stat.ameba.jp/user_images/20201015/21/pta55/f3/0d/j/o1200084614835393724.jpg?caw=800)
ロジアナでみると1byteのデータを送るのに,8uSぐらいかかっているので,スピードが要求されるものには向かないですね。
![](https://stat.ameba.jp/user_images/20201015/21/pta55/29/bb/j/o1200048614835393721.jpg?caw=800)
うむ,SPIのクロックを8MHzに設定しても5MHzぐらいしか出ていないのも一因です,,。どうしてなのかまだ分かっていません(^^;;;;;;;。
そのためもあってか,XIAOのSPI通信は新しくなった設定方法を使わないと見事にフリーズしました(^^;;;;;;;。
Webを探ってやっと分かった設定のSPIで,シリアルパラレル変換のI/Oエキスパンダーを動かしてLチカしているところです。
![](https://stat.ameba.jp/user_images/20201015/21/pta55/40/ef/j/o2112076814835393727.jpg?caw=800)
設定の参考にしたというか教えてもらったページです。
・Arduino Reference SPI library (Last revision 2019/12/24)
・Arduino MKR ZEROでSPIを使う際の注意点まとめ
今回のキモの設定方法です。
SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));
これを使って設定した,試行錯誤のコメントアウト満載のプログラムです(^^;;;;;
![](https://stat.ameba.jp/user_images/20201015/21/pta55/44/a5/j/o1200087614835393725.jpg?caw=800)
スレイブセレクタ(SS)のHIGH/LOWにポートコントロールを使っていますが,これは速くしたいだけです(^^)。
loop部では白と緑のLEDを交互に点滅させているだけです。
![](https://stat.ameba.jp/user_images/20201015/21/pta55/f3/0d/j/o1200084614835393724.jpg?caw=800)
ロジアナでみると1byteのデータを送るのに,8uSぐらいかかっているので,スピードが要求されるものには向かないですね。
![](https://stat.ameba.jp/user_images/20201015/21/pta55/29/bb/j/o1200048614835393721.jpg?caw=800)
うむ,SPIのクロックを8MHzに設定しても5MHzぐらいしか出ていないのも一因です,,。どうしてなのかまだ分かっていません(^^;;;;;;;。