ラズベリーパイ3で、IIC通信式キャラクターLCDの「AE-AQM1602A」(コントローラIC:st7032)
を動かしていたところ、
本来、0x00番地のレジスタにコマンドを、0x40番地のレジスタに表示データを書き込むはずが、
勘違いで0x80番地のアドレスにデータを送ってしまい、そのあといろいろなサイトのやり方等をいくら試しても全く動かなくなってしまいました。
原因は何なんでしょうか?
因みに、IIC通信自体は成り立っていて、プログラム実行の際に特にエラーはありませんでした。アクノリッヂもきちんと返信されていたようです。
それと、自分は以下のCG用レジスタ(の0x80番地)が上書きされて狂ってしまったと思うのですが、実際にあらかじめ入っていたレジスタが上書きされることはあるのでしょうか?
配線
V+ = 1番ピン(3.3v)
SDA SCL = ラズパイIIC通信用ピン
(プルアップ内蔵)
GND = GND
プログラム
Python
1 2import smbus 3import sys 4from time import sleep 5 6#addres 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 7# 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 8 9#to the next line = Write_com(0xc0) 10 11def Write_data(data): 12 bus.write_i2c_block_data(addr, display, [data]) 13 14def Write_com(command): 15 bus.write_i2c_block_data(addr, com, [command]) 16 17def setup(): 18 bus.write_i2c_block_data(addr, com, [0x38,0x39,0x14,0x73,0x56,0x6C]) 19 sleep(0.2) 20 bus.write_i2c_block_data(addr, com, [0x38,0x01,0x0c,0x06,0x01]) 21 sleep(0.001) 22 23def clear(): 24 Write_com(0x01) 25 26bus = smbus.SMBus(1) 27addr = 0x3E 28com = 0x00 29display = 0x40 30 31setup() 32Write_data(ord("a")) 33bus.write_i2c_block_data(addr, 0x80, [ord("a")]) 34