制作のついてでに,手元にあるI2CインターフェースのLCD
をケースに入れて動作を確認しました。
PICのプログラムを組んでももかったのですが,デバック等
多少手こずりそうだったので,諸兄のHPにあったaruduino
をパクりで,動作を確認しました。
諸兄の作られたaruduinoのACM1602用のライブラリーも
そのまま使わせていただきました。あっけなく完動いたしまし
た。
諸兄の配線図では,ACM1602とaruduinoを直接つないで
いるようでしたが,念のため,間にレベル変換の基板をいれ
て,接続しました。これ必要ないのかもですね。
諸兄の配線図では,A4とA5を3.3Vにプルアップして,LCD
に直接つないでいるようでした。このへんの詳細がちょっと
分かりません。
とりあえず動きましたので,これから,ボチボチPICの方も,
プログラム見ていきたいと思います。
AGENT: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
> 変換基板(5V→3.3V)等は,入れなくて
そうです。5V出力はしないので必要ありませんし、3.3VはHIGHと認識しますから入れる必要はありません。
2.5Vとかで吊った場合は入力時に確定しませんからあ変換が必要になります。
AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0
猛牛ロックさん,アドバイスありがとうございます。
アドバイスですっきりしました。
LCDは内部で,プルアップしてあります。
そうすると,5V出力の機器でも,3.3Vでプルアップすれば,
変換基板(5V→3.3V)等は,入れなくても大丈夫なのでしょうか。
AGENT: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
書き込みしたのちょっと忘れていました(;’∀’)
> 出力は,highで5Vだと思うのですが
I2Cは多数のデバイスが接続されるので、HIGH出力は吊った電圧になります。
で5VデバイスでもHIGHは出力せずにHi-Z(入力状態)で表現します。
つまり、通常、LOW出力しかしません。
(LCDがプルアップしてあるかどうかは知りません。)
5Vで吊ったなら3.3Vデバイス(5V入力トレラント無)は、電圧変換が必要になります。
3.3Vで吊ったなら、Arduino(5V駆動品)は3.3VでHIGHと認識しますから接続はそのままでいいです。
※3.3Vのラインに5V出力は駄目です→入力Hi-Zにする。
AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0
猛牛ロックさん,おはようございます。
書き込みならびに,アドバイスありがとうございます。
私が疑問だったのは,出力を3.3Vでプルアップしてあるところです。
出力は,hightで5Vだと思うのですが,3.3Vでプルアップすると,結果的には,どうなるのかな,と思いました。
LCDの内部で,ご指摘のように,プルアップしてあります。
AGENT: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
I2Cですから、プルアップ抵抗は必要です。
勿論、LCDモジュール内等、ラインに1つ組み込まれていれば問題ありません。
信号はLOW出力すれば当然LOWですけど、HIGHの場合は、入力にして外部プルアップ電圧でのHIGHになります。
つまり、PICで言えばPORTレジスタは0にして、TRISレジスタを切り替えます
(ソフトI2C処理なら。ハードでも同じ様にやってくれているはずです。)