Arduino Due とは
- 2012年発売
- ARM系のCPU
---- Atmel SAM3X8E (Cortex-M3, 84MHz) - Arduino MEGA のフォームファクタ
公式では初のATMEGA系以外のCPUを使ったArduino。
それまでは、開発環境はATMEGA系しか対応していなかったがバージョン 1.6.2 以降でこれ用のバイナリが作成できるようになった。
ARMだし、32bitだし、 パワフル! ということで大いに注目を浴びたが・・・今はなんだかぱっとしないねえ。
これで、SPIを使うにはどうしたらいいかな・・・デジタルポートに配線しようとしたらハマったのでDue以外のSPI接続も調べてメモ。
SPI
以下の3線を使う。
MOSI
MISO
SCLK
必要に応じ、マスタースレーブ切替の信号としてSSを使う。
Arduino UNO のSPI接続
Arduino UNO とか Pro なんかはデジタルポートとICSPポート両方で使用できる。
D10 SS
D11 MOSI
D12 MISO
D13 SCK
ICSPコネクタ
1 MISO
3 SCK
4 MOSI
ATMEGA16用のICSPコネクタ
1 MISO2
3 SCK2
4 MOSI2
Dueも同じようにして、D10-D13に接続したらいいんじゃないの???・・・あれ?
Arduino MEGA 2540 の SPI
Arduino Due のピン配置は Arduino MEGA 2540。なのでこれと同じかな?
Arduino MEGA 2540のSPI配置は
D50 MISK
D51 MOSI
D52 SCK
D53 SS
ICSPコネクタ
1 MISO
3 SCK
4 MOSI
ATMEGA16用のICSPコネクタ
1 MISO2
3 SCK2
4 MOSI2
だけれどもSPI接続についてはDueとMEGAは異なっているらしい。
Arduino Due の SPI
SPIに関しては、DueはメインCPUのICSP機能は無くなり、JTAGポートが別に搭載されている。
メインICSPコネクタだったものはSPI用途だけになっている。
SPIコネクタ
1 MISO
3 SCK
4 MOSI
ATMEGA16用のICSPコネクタ
1 MISO2
3 SCK2
4 MOSI2
デジタルポートには出ていない。そうだったのか。デジタルポートがピンソケットなので、簡単にオスオスジャンパーでブレッドボードにつなげようと思ったけど、ちょいめんどいなあ。
Arduino Leonardo
調べると、デジタルポートに出てないヤツはこれもそうらしい。
ICSPコネクタ
1 MISO
3 SCK
4 MOSI
だけ。デジタルポートには出ていない。
Dueの拡張API
Extended SPI library usage with the Due
https://www.arduino.cc/en/Reference/DueExtendedSPI
これを使うと、CSピンとして4番ピン、10番ピン、52番ピンを使うことができるらしい。