替わりのアイデアで実験します。i2cスレーブお勉強と言う事で、作りかけになっていたPIC16F88使用LCDモジュールのバグつぶしを行います。2ヶ月ぐらいほったらかしだったので、初心に返りソースコードを見直しました。
スタートコンディション、アドレス、データのシーケンス管理がうまく行ってなかったんですが、今回SSPSTATにD/〜Aというビットがあるのを発見。これにより、アドレスは切り離され、その後にはコマンドが2バイト単位でしか来ないということにしたら(LCDの接続ではRSビット、コマンドバイトの組み合わせになる)動き出しました。ストロベリーリナックスi2c液晶の文字表示関してコンパチになりました。(拡張コマンドとか、液晶輝度などのコマンドは無視)
今回RTC実験で当初使用予定i2c液晶に替わりピンチヒッター起用のSC2402液晶をPIC16F88で制御するソフトです。I2cインターフェイスのスレーブ側をSSP(同期直列ポート)で動かします。液晶は4ビットパラレル接続です。
http://chitose6thplant.web.fc2.com/exp/i2c_slave/main_slave_c.pdf
http://chitose6thplant.web.fc2.com/exp/i2c_slave/lcd_c.pdf
http://chitose6thplant.web.fc2.com/exp/i2c_slave/lcd_h.pdf
http://chitose6thplant.web.fc2.com/exp/i2c_slave/delay_h.pdf
HI-TECH Cの参考書としてこの本使ってます。ちょいフルですが、手軽に使えます。