Maple miniでの1対1のSPI通信

1対1でならmaple miniでSPI通信ができるようになりました!

ただSSピンが機能していなくてデバイスの切り替えが全くできない状況です。

たまにやり取りする値が2倍になったり4倍になったりする(ビットシフト)する問題は、通信の前に毎回データレジスタ(通信する値を格納する場所)をクリアすれば解決すると教えてもらいました。

コードはこちら

リンク先のコードで使っているSPI_init()という関数はデータレジスタ以外にもコントロールレジスタやステータスレジスタもクリアしてしまいます。なので、通信するたびに設定をリセットして、また設定し直すというかなり無駄なことをしてしまいます。データレジスタだけをクリアする方法が見つからなかったので、妥協してこの関数を使っています。

mapleでslaveが複数あるSPI通信に成功した人がいたら色々教えてください!お願いします!

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中