LCD/SC1602BBWB-XA-LB-G

はじめに

OpenI2CRadio では、液晶表示機と4x4のキーマトリクスで殆どの操作と表示を行えるようにします。
現在秋月電子通商で売られている、 SC1602BBWB-XA-LB-G(Sunlike社製・パラレルバス・3.3V駆動) をターゲットに開発を進めています。

http://akizukidenshi.com/catalog/g/gP-04794/

これはどういう物か

  • 16桁x2行のキャラクター表示器です
  • 3.3V駆動です
  • パラレルバスで、データバスには4bitモードと8bitモードがあります。今回は、4bitバスにします。
  • コントローラは、HD44780 http://elm-chan.org/docs/lcd/hd44780_j.html 互換のようです。

回路

 詳細は、ここらへん http://www.oct.zaq.ne.jp/i-garage/trbl/lcd4bit.htm がしっかりしています(後で回路図書きます)。

  • D0-D3 はオープン
  • D7-D4 は PICのRD7-RD4につなぐ
  • Eだけプルダウン。
  • E はRD2,RWはRD1,RSはRD0につなぐ
  • バックライトについては、RD3から2SC2712 http://akizukidenshi.com/catalog/g/gI-00761/ http://www.semicon.toshiba.co.jp/info/lookup.jsp?pid=2SC2712&lang=ja をかましてドライブする。このトランジスタは50mA以上流せてそこそこスイッチング出来るNPNならなんでもいいので、2SC1815とかでも大丈夫でしょう。
  • 但し、最終的にはバックライトはPWMドライブするので、端子をRD3から変更するかもしれない

ソフトウェア

 アセンブラコードなら沢山転がってます ;-)が、sdccで書かれてるのがあまり無いようなので、 リポジトリのacm1602.c を参考にして下さい。

 ST7032iのようにHD44780互換でI2Cなコントローラにも対応させていきますが、今は未だテストできてない。

TIPS

4ビットデータバスモードで初期化した場合、まず SETADDR($0) (ソースコードではacm1602_locate(0,0)) → acm1602_putchar(' ')などとしてDDRAMの$00アドレスに何か書き込まないと、その後の表示が見えなくなることが多々あります。  これを解決するのに3日以上かかりました(>_<)