PIC12F675を使ってI2C接続のAQM0802Aに文字を表示するテスト。
I2Cの機能の搭載されていないPIC12F675だが、すでにI2C接続のEEPROMに書き込むことはできているので、同じI2C接続のAQM0802Aも扱えるはずだということで試してみた。
結論から書くと、まだ細かな点でしっくり行っていないところもあるが、とりあえず「Hello」と表示できた。
基本は秋月のサイトからもらえるデータシートだが、ポイントだけかいつまんだものを下に貼っておく。
EEPROMのとき同様、参考にさせていただいたのはPIC12F675 i2c (bit banging) code + Proteus simulationというサイトの記事だ。
基本的にこのサイトで紹介されているコードの中の関数を使う。
上の図のSはI2C_Start();を、PはI2C_Stop();を実行することを意味し、AはAcknowredgeが返ってくることをあらわしている。
先頭のslave addressとしては、コントローラであるST7032に割り当てられている「0111110」の最後に書き込みを意味する0(図中のR/W)を付け加えた「01111100」( = 0x7C )を必ず書き込む。
control byteとある部分のCoはコントロールが続くなら1、データなら0のようだが、いまひとつ理解できていない。
RSはインストラクションなら0、データなら1のようだ。
書いてる本人がピンと来ていないので、というかデータ・シートを丹念に読み込んでいないので実にあいまいだが、実際に、インストラクション・コードの前には0x00(0b00000000)、データの前には0x40(0b01000000)を送ったらちゃんと表示はされている。
初期の頃に買い込んだPIC12F675の活用の幅がこれでまた広がったわけだが、何かの拍子にクロックの補正用のデータが消えちゃったのが1つ、デジタル・アナライザーでI2Cのデータの確認に気を取られて電源を逆につないでこんがり焼きあがったのが1つという具合で、いろいろ出来るようになる頃には肝心のチップは1つも残ってなかったりするかも。
でも、汎用のデータ・ピンで出来ることが増えればその分を他の用途に使えるわけで、やってみる価値はあるだろう。