2015年8月4日火曜日

PSoC 4 Pionner Kitで秋月のI2C LCDのAQM1602を動かす

ぴゅんぴゅんコントローラー2号のテストも兼ねてPSoC 4 Pioneer Kitで秋月のAQM1602(http://akizukidenshi.com/catalog/g/gK-08896/)を動作させてみた


AQM1602

8桁2行のAQM0802と同じくLCDコントローラーはST7032なのに、こちらは5V電源にも対応している。

なのでArduino Unoでも気軽に試せる。

バックライトなしでサイズもでかいのでシールドに載せるには躊躇してしまうが、実験(入門)用にはいいと思う。

Strawberry LinuxのI2C-LCD(http://strawberry-linux.com/catalog/items?code=27021)とコントローラーは一緒だし、aitendoの「SPLC792」(http://www.aitendo.com/product/6287)のコントローラーもコンパチの様なので同じコードで動作した。

AQM1602のキットはDIP化基板にRESETが引き出されていないので、ArduinoやPSoCを再起動するときにリセットボタンを押すだけでは動作がおかしくなることがあったが、USBを引っこ抜いて挿し直したらちゃんと動いた。

RESET Pinを引き出していない理由は不明。5V対応のためかな?と思ったけど、LCDモジュール本体も5V対応になっているし謎。

AQM1602も基板上のプルアップは有効化していないのでブレッドボード上で10kΩのRでプルアップした。

PSoCでの動かし方

PSoC Creatorのプロジェクトはgithubにあげました。
https://github.com/ryood/Pyun2Controller2_ST7032_Test

I2C LCD(ST7032)用のコードは<ST7032.c>と<ST7032.h>に分割した。

もともとのコードがPSoCのI2Cコンポーネントに依存しているので分離しきれていないですが(^q^;

こだわりだすと時間がかかりそうなので今回は妥協

PSoC 4 Pionner KitのPower Supply設定ジャンパーを3.3Vにして、LCDのV+にも3.3V給電して全体として3.3V系で動作させた。

テスタでの測定値
LCD VDD:3.41V
オシロでI2Cの信号を計測

赤色がSDA、黄色がSCL

オシロのカーソルで調べるとHで3.40V程度だった。

PSoC、LCDともに5V系にしてやってみたが5V系でもちゃんと動作した。

PSoCの「I2C LCD」コンポーネント

このコンポーネントは「NXP PCF2119x」対応のコンポーネントだが、コマンドをざっと見るとST7032と似た感じなので、Exampleの「I2C_LCD_Example_PSoC4」をやってみたが、うまく動かせなかった。

I2C AddressをST7032の0x7cに変更して(main.cで定義されている)オシロでSCL、SDAの見るとACKが返ってきていたのでI2Cの通信はうまく行ってそうだが、LCDには何も表示されない。

カスタマイズすれば動かせそうだが、ベタ書きの方がわかりやすいので今回は諦めた。

PSoC Prototyping Kit

5V駆動で大丈夫ならPSoC Prototyping Kitでも動作できそうなので、Prototyping Kit用に改変してやってみた。
PSoC 4 Prototyping Kitの使い方
http://dad8893.blogspot.jp/2015/01/psoc-4-prototyping-kit.html

が、「Bootloder Host」で書き込もうと思っても
Communication port reported error 'Unable to read data from the target device'
というエラーメッセージが出て書き込めなくなった。

調べるとBootloaderが壊れてしまったようだ。

http://www.cypress.com/forum/psoc-4-architecture/psoc4-unable-read-data-target-device

このスレッドを見るとPrototyping Kitを2枚使いしてBootloderを復活させる方法もあるようなので

http://www.cypress.com/knowledge-base-article/using-cy8ckit-049-program-another-psoc-4-kba93541

Prototyping Kitをあと2,3枚仕入れようかな

600円だし(^q^;