Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

PIC16F1823 -> I2C(Bit Banging) -> AQM0802A and AT24C256B

I2Cは1組のラインに複数のI2C機器をぶら下げることが出来る。
知ってはいてもやったことが無かったが、LCDのAQM0802AとEEPROMのAT24C256Bを接続してどうやら問題なく駆動出来ているようだ。
20140707020900
変更点は特に無し。
それぞれのコードをコピーしてきてペーストしただけですぐに動いた。
そういう仕組みなんだからそうなんだろうけど、ちょっと感動した。

そもそも「PIC12F675 + I2C + AT24C256B」あたりからI2CをBit bangingで実装するってのをはじめ、「PIC16F1823 -> I2C(Bit Banging) -> AQM0802A」でAQM0802Aでの実装も試していたので、それらのコードの集合というわけだ。

要は、Slave AddressとかDevice Addressとか書かれているもので区別するわけだが、
EEPROM AT24C256B の場合は

The device address word consists of a mandatory “1”, “0” sequence for the first four most significant bits as shown. This is common to all two-wire EEPROM devices.

と書いてあって
20140707020900-1
先頭の4ビット「1010」がEEPROMをあらわし、その後の3ビットが複数のEEPROMを使う場合にそれを区別するためのもの、
AQM0802Aの場合は

Only one 7-bit slave addresses (0111110) is reserved for the ST7032.

と書いてあって
20140707020900-2
「0111110」が固有の識別符号のようだ。
こちらはAQM0802を複数使用するケースは想定されていないってことかな。

いやあ、データ線2本で表示の出来るI2C接続のLCDってのは、私のような行き当たりばったりのコーディングをするものには救いの神だ。
そういう意味でも、Bit bangingで実現できるのは大きいと思う。

このエントリーをはてなブックマークに追加

Posted under: AQM0802A, I2C, PIC その他, PIC16F1823


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.