1)有名な秋月の低価格液晶(LCD)であるSC1602をつなぐ |
|
MSP430は電源が3.3Vでいいとして、 LCDは5Vと取説にかいてある どうしよう! 初めはMSP430のVOH、VOLとLCDのVIH、VILからを直接つなげるのではないかと思っていました。お世話になっているkumanさんの掲示板に書き込んだところ、LCDの初期化前にLCDのDBが出力になっていることもあり危険だとの情報があり、MSP430が壊れるのは避けたいので直結はやめました。 |
|
kumanさんのアドバイスでLCDの電源に3.3Vを入れてVo(コントラスト電圧)にマイナス電圧を入れれば直結できることを知りました。(感謝) MSP430もLCDも電源3.3VでOK! グッジョブ!(謎) |
|
ネットでマイナス電圧の作り方を調べました 方法は3つあり 1)別電源を用意する 2)DC-DCコンバーターを用意する 3)チャージポンプで作成する(直流を交流に直してから別の直流電圧に変換する) チャージポンプはマイナスの電圧も得られることが判明! でもマイナスの電圧って不思議ですよね。0Vが電圧が無いのに、それより低い電圧だなんて。 要するに今回のLCDは5Vの電位差があれば表示できるので、GNDより低い電圧が必要になったわけです。 マイナス電圧はチャージポンプ式で作ることにしましたが、RS232C用のMAX232互換のICがその回路なので、手持ちの基板で確認したところ電源が5Vで、GND端子とV-端子間にて-10Vを出力していました。これは使えそうです。今回は3.3V電源でも動くADM3202ANという互換ICを使いGND端子とV-端子間(無負荷時)からは−6.6V出力していました。これを380オームと1Kオームの抵抗で分圧してLCDのVoへ入れました。分圧計算は−6.6Vではなく、V-端子に抵抗負荷のあるときの電圧−5.5Vから計算しました。 GND --- 380オーム --a-- 1Kオーム --- V-端子(−5.5V) 中間点aが分圧電圧 分圧電圧は−1.51Vとなり、ちょうどいいコントラストが付いていました。 ご注意)LCDの電源が3.3VではVoを−1.7Vより大きい負電圧(−2Vとか−3V等)を入れるとLCDが壊れると思われます。くれぐれも、ご注意を!LCDを繋ぐ前にGNDと中間点a間の電圧をテスターで測り、−1.5±0.1Vであることを確認してください。 |
|
上図 右上にチャージポンプ用のIC 上図 左下は電源用の3.3Vレギュレーター
|
|
お約束の Hello world!
|
|
Hello worldのプログラム |
|
TI MSP430用 IAR Embedded Workbench KickStart(略称EW430-KS) バージョン3.41にて作成しました。 lcd.hおよびlcd.cのオリジナルはkusunokiさんからいただきました。また kumanさんの修正が追加されています。お二人に感謝します。 私はMSP430用に改造しました。MSP430は内部クロックを可変できるので他のソースに組み込む際は、lcd.cのダミーウエイトを調節する必要があります。このバージョンはMSP430からLCDへの書き込みだけになっています。後日LCDのBusyを見る機能を追加したものを作る予定です。 ダウンロード(zipファイル) Ver1.0 2007.1.12
|
|
完成版 LCDのBusyを見るように修正しました。コマンド発行前に前のコマンドのBusyを見るようにしたかったのですが、IOポートの入力と出力を切り替えるタイミングがわるくなりやめました。結局コマンド発行後にBusyをみるようにしています。 なお初期化中はBusyが見れないので、初期化が終わるまで使用するダミーウエイトを調節する必要があります。具体的にはMSP430のクロックが早ければlcd_delay()の数値を長くしてください。約1msec以上にするとよいと思います。 これで一応完成とします。もしバグ等があればご自分で修正していただけると幸いです。 ダウンロード(zipファイル) Ver1.1a 2007.1.23 追記2007.1.16 LCDへClear Displayコマンドを出した際のBusyのおおよその時間をオシロで計測したところ1.72msecでした。秋月で買ったときに付いてくる資料には1.64msecとあるのでVDDを5Vから3.3Vにした際の影響はそんなにないのかもしれません。なおすべてのコマンドに当てはまるかは未調査です。どちらにせよBusyを見ているのでコマンドの処理時間が長くなっても影響ないと思います。 |