nobcha23の日記

PICマイコンやArduinoを使う電子回路遊びを紹介します

SPIは難しそう  お相手生かすのが

i2cの時もMSSPの使い方の中にプロトコルに踏み込んだ説明がありました。出版されている本に書かれているのもチップ取り説を
ベースに実験などでの取り組み方や経験上の注意事項を書かれているのではないでしょうか。そういうことなら、まずはドキュメ
ントを読むことにします。

処理の肝はSSPSRとSSPBUFでの出し入れに間に合うようにやれということのように思います。そして、そのためには割込み方式か、SSPSTATのBF(bit0のバッファフルステイタスビット)かをポーリングし、BFがたてば、SSPBUからRXDATAをRAMに写し、次のTXDATA
を書き込んでやるという処理です。

でもって、ポートのアドレスも決めていかねばならないので、チップを決める必要アリです。FTAなどの難しい処理は後回しにして、SDカードの内容をダンプする実験からすることにして、チップはPIC16F1933で考えると、APFCONは使わずデフォールトで、
SCK1がRB4,SDI1がRB1,SDO1がRB2となります。マスターなのでSSは不要。RBが虫食い指定になったので、RA0-3をLCDの4ビット接続にして、RB5,RB6をRS、ENにすればよいか・・。

読出しデバッグのスイッチ指定は設定とアップ、ダウンにして、それらはRBのあきに割り当てることにします。それから、SPI接続のモジュールはマイクロチップ社のADCが、秋月で売られていることに気が付きました。今度買って来ることにします。今日はここまで。

ここまで考えて、簡単にやるならSPIのADCを買ってきて、まずは精密電圧計電流計ですか。それなら、PICFUNにもあるし、PIC16F1823のi2cスレーブLCDを改造すればよいですし。

その次にSDカード、更にFATですね。

ということでSPIはSDカードを後回しにして、まずはアキバチャブクロADC待ち。
それまでに今までやった機能のマージに取り組みます。このあたりがCを使ったメリットを生かし、リーダビリティが良さを背景に、nobchaジャンク箱に常備して、使い回しできる関数にしていく道筋かもしれません。