SG12864Aを使ってみましたの続きになります。
書いてみた回路図です(クリックで拡大します)。
Voがコントラストの入力です。Voutから-10Vくらいが出ているので、GNDとの間で分圧して-4Vくらいを入力します。
以前試したときは、busy待ちをしないで適当に待つとうまく動きませんでした。busy待ちのために入力と出力を頻繁に切り替えるので、途中浮いた状態になります。データラインはプルアップした方がいいかもしれません。
リセットだけプルダウンしてます。
バックライト用の電流制限抵抗はないので、外部に抵抗をつないでやる必要があります。正確にはR8の0Ωがつながっています。10Ωで100mAちょい流れています。バックライトを使うときは、パスコンを増強してやらないとうまく動きませんでした(C2の100uF)。
書いてみた回路図です(クリックで拡大します)。
Voがコントラストの入力です。Voutから-10Vくらいが出ているので、GNDとの間で分圧して-4Vくらいを入力します。
以前試したときは、busy待ちをしないで適当に待つとうまく動きませんでした。busy待ちのために入力と出力を頻繁に切り替えるので、途中浮いた状態になります。データラインはプルアップした方がいいかもしれません。
リセットだけプルダウンしてます。
バックライト用の電流制限抵抗はないので、外部に抵抗をつないでやる必要があります。正確にはR8の0Ωがつながっています。10Ωで100mAちょい流れています。バックライトを使うときは、パスコンを増強してやらないとうまく動きませんでした(C2の100uF)。
sunlike社のデータシートによると、このモジュールに使用されているコントローラは、おなじみの(KS0107 OR EQUIVALENT)とされています。ということは、クロック入力以外のポートにはすでにプルアップが付いているはずです。
> リセットだけプルダウンしてます。
/RSTは、負論理じゃありませんか?
プルアップは調べてみることにします。RSTをプルアップ、EとRWをプルダウンにして、テスターを当ててみようかと思います。でもRWをEの立ち上がりでラッチしてたら、モードが切り替わらないですね。マイコン側で、RW切り替えを一発だけしてやる必要があるかもしれません。
はい、/RSTは負論理です。本来なら、ノイズとかに負けないようにプルアップしておいて、必要なときだけ吊り下げるのだと思いますが、データシートを見ていると立ち上がりでリセットするみたいだったので、プルダウンしておいて、吊り上げることにしました。なので電源投入直後とか、マイコン側でリセットをかけるまでは、初期状態というか不定状態のままです。って書きながら、やっぱりまずいかなという気がしてきました。
どこで見かけたのか分からなくなりましたが、この液晶のリセットはプルアップだけしておいて、マイコンにつながないというのを見かけた覚えがあります。これって、たぶん電源投入時に電圧が上がるところで自動的にリセットがかかることを期待しているのだと思うのですが、ちゃんとリセットに必要な時間を稼げてるのか不安です。
混乱させてしまいました。
なお、入力設定時にマイコン側のプルアップが有効に出来るのであれば、外付けのプルアップは必要ないと思います。
> 電源投入時に電圧が上がるところで自動的にリセットがかかる
このための専用ICがいわゆる「リセットIC」です。え~と、たくさんお持ちでしたよね。
他には、PICのMCLR端子でよく使われているコンデンサと抵抗を使った回路があります。抵抗を介してコンデンサが充電されるまではリセット状態を保ちます。抵抗と並列にダイオードを追加すると電源が落ちたときにコンデンサの電荷を積極的に引き抜いてくれるので完璧です。
リセットをプルアップ、Eをプルダウンしてテスターで計ってみました。おっしゃられる通り、D0~D7はプルアップにはなっていませんでした。プルアップだと5Vが読めると思うのですが、5Vでも0Vでもない変な数値が読めました。デジタルテスターで数値が収束しないで、ずっとパラパラ動いていたので、ハイインピーダンスの状態じゃないかと思いました。制御線は全て似たような状況でした。
制御線節約のために、リセットICつけるか、プルアップでリセット省略したくなります。