2007年11月24日

BASICでI2C スレーブ実験

DSC00346.jpg
実験の様子

今日は、途中で投げ出していたI2Cのスレーブ側のプログラムを
再度挑戦していました。
これまで、割り込みやら、シフト命令やら、ポート入力やら、色々
な方法で試していたのですが、どれもうまく行っていませんでした。
今回は、本当にマスター側からちゃんとした信号が出ているかなど
を、PCでのロジックアナライザを駆使しながら、一歩ずつやって
みました。
結果として、使用しているBASICのマスター命令での信号の出方
にも癖があり、それらを認識した上でスレーブ側(受信側)の
プログラムを作ればいいことがわかりました。
今回のテストプログラムは、割り込みなど使用せず、データと
クロックのポートをメインルーチンで監視しながら1ビットずつ
取り込む方法でスレーブ機能を実現しました。
受信したデータはアドレスとデータのそれぞれ8ビットずつです
が、設定したアドレスを認識し、送られたデータをLCDに表示でき
ています。

DSC00344.jpg
1行目がアドレス、2行目がデータ

I2CのパラレルI/O ICであるPCA9555と並列接続し、PCA9555用の
アドレスとデータ、今回作ったATTiny2313スレーブのアドレスと
データを送り、きちんと識別してデータの取り込みを行っています。
今回は、旨く行ったようです。

DSC00341.jpg
ATTiny2313に送られたデータの様子

posted by jn3xby at 19:31| Comment(0) | TrackBack(0) | AVR&BASIC
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/7137554

この記事へのトラックバック