[][mobile][Homepage][BBS][Blog][YouTube][asablo]

過去の記事の検索が簡単にできるよ (・∀・) 例 ランチャー9
カスタム検索

有名I2CのキャラクターLCDの互換品を個別部品で作る2012/09/28 16:35:48



I2Cで制御できるキャラクターLCDがメジャーな物といえば、ストロベリーリナックスのSB1602BSB1602E、そして最近出てきたのが秋月電子通商から発売されているACM1602NIが有名だ。
ACM1602NIは既に解析を済ませ、互換ファームまで製作した。

ACM1602NI単体で利用しても面白いのだが、せっかくなので個別部品による構成で、ハードウェア互換を作ってみようと思う。

使用するマイコンはPIC16F689pdf)。当初は16F1827なども考えたのだが、互換モードで動かすにはLCDに接続するのに8ビット必要である事と、ACM1602NIに同じPICマイコンが搭載されているので、これを採用。値段も130円と手頃で手に入りやすいPICである。

LCDは一般的な5V駆動のキャラクターLCDを使う。これは500円で手に入る。PICで発振部分を設け、負電圧を生成することで、3.3Vでも対応できる。5VのキャラクターLCDを簡単に3.3Vに改造もできるので、3.3V専用で実験程度ならこれでも良いだろう

回路図構成はPIC、LCD、ダイオードが2つに0.1uFコンデンサが4つ、半固定抵抗10KΩ、あとは抵抗2本。電子工作をやっている人なら手持ちの物が代用できる。I2Cの抵抗は、状況に応じて取り付ける。



プログラムの作成を開始。最近出てきたMPLABXの勉強がてらにプログラムを組んでいく。新しいツールは最初は何でも煩わしいものだが、慣れてくるとその便利な特徴が見えてくる。

負電圧用の発振は、いつもであればTIMER1を使用してCCPピンに出力させるだけなのだが、今回は互換を保つ事が優先なので、TIMER0によるソフトウェア割り込みで約6KHzの発振を出力とした。カウンターオーバーフローを利用するので、割り込み処理時のオーバーヘッドが出て誤差とか出るだろうが、この用途では問題ない。


I2CキャラクタLCD互換

ある程度プログラムが出来上がったので、ブレッドボードでチマチマ回路を作っていく。配線が混雑しているが、使用している部品は実に少ない。arduinoで動くストリナ駆動のプログラムを利用してデバッグをしている。



LCDとPICでは自作のリボンケーブル治具で接続。リボンケーブルを利用する時、よく間違えてしまうのだが、数え方が2,1,4,3,6,5,・・・と2本ずつ奇数と偶数がひっくり返るので注意して行なっている。先端はヘッダーピンをはんだづけして熱収縮チューブで処理。これを一つ作っておくと、こういう実験には便利である。



他のストリナI2C LCDにも繋いでみる。前に作ったインターネットラジオ(前半後半)。これに繋いでみる。



3.3Vでなんの違和感もなく普通に表示。これで動作的に互換品が出来上がった。



互換品であるが、最初の電源投入時はこういう表示になっている。種別とI2Cのアドレス表示を行った。私がデバッグで混乱しないようにという事もあるのだが、外部からLCDが初期化されると消えるので大きな問題にはならないだろう。色々なカスタマイズは、ソースを公開しているので、printfの記述をREMしてビルドすれば良い。

I2Cアドレスについては、空きピンであるRB5の部分をGNDに落として電源を落とせば、別のアドレスに定義される。ACM1602のアドレスが0x50とEEPROMと被ってしまっているが、アドレスが変更できるのでACM1602NIのファームウェアを入れ替える価値はあるだろう。







Google
www Blog HP BBS


air_variableサイトをまとめて検索 
カスタム検索
[][admin][mobile][Homepage][BBS][Blog][YouTube][asablo]