1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Arduino の SPI接続

Posted at

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番ピンを使うことができるらしい。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?