ということでLCDが動きました
ということでLCDが動きました
ATtiny2313からキャラクタLCDをドライブする件。
コメントに書いたように、Procyon AVRlibでは、I/Oポートを入力にするときにpull-upも有効にしていて、これが悪く働いていたようです。これを修整し各種時間待ちを見直して、初期化に失敗することなく立ち上がるようになりました(内蔵RCオシレータ 1MHz動作)。4MHz、8MHzでも動くようにもうちょっと手を入れるかも。
今後はI2Cからどういうコマンド体系で表示させるかを決めて実装しようと思います。
タイムアウト
あちこちウェブサイトを見ていたらこちらの資料に行き当たりました。
I2C I/Fの温度センサですが、これの、
■LM73とLM75の違い
まずLM75BはLM75CのI2CBus(SDA,SCL)のノイズ耐性を改善し、更にタイム・アウト機能を追加した製品です。
注)バス・フォールト・タイムアウト機能とは
SMBDAT(SDA) シリアルバスがTIMEOUT (最小15/75ms 、最大45/325ms)を超えた時間Low に保持されると、シリアルバスをIDLE(電源投入時と同一状態) にリセットし、SMBDAT(SDA) はハイ・インピーダンスとなり、新しいスタート条件を待ちます。
なるほど、参考にしようと思いました。