Atmel Studio入門:SPI

Atmel Studioで、AVRマイコンのSPI通信プログラムを作成する方法について説明したいと思います。

SPI Masterのサンプル・コード

SPI Masterの簡単なサンプル・コードで基本的な制御方法を見ていく事にします。

9行-17行
SPIに使用するMOSIとSCKのポートを出力にします。この例ではDDRBを設定して、PB3とPB5を出力にします。次に、SPCRレジスタで、SPIを有効、SPIマスター、周波数をFosc/16に設定します。なおSPSRの_SPI2Xを”1″に設定すれば、周波数を2倍に設定できます。

19行-24行
SPDRにデータを入力すると、MOSIからデータを送る事ができます。SPSRのSPIFが”1″になると送信完了です。

26行-36行
この例では、SPDRにダミーの”0″を入力してSCKを発生させます。SPSRのSPIFのビットが”1″になると送信完了で、この部分は19行から24行のデータ送信の例と同じです。SPDRは入出力のレジスタで送信完了後は、受信したデータが格納されているので、これをデータとして戻します。

38行-48行
送信と受信の例を組み合せて、送受信の構成にしています。

まとめ

SPI通信の制御は、初期設定さえしてしまえば、SPDRのデータの出し入れだけなので非常に簡単です。

→その他のAtmelマイコン関連情報

Sponsored Link