2015年4月15日水曜日

3.3VでATMega328PとI2C LCDを動かす

9V電池を電源としてリニアレギュレーターで3.3Vに降圧&安定化して動かしてみた


8桁×2で十分なので
去年の夏コミの帰り、秋葉原の秋月で買ったAQM0802(http://akizukidenshi.com/catalog/g/gK-06795/)を使うつもりでいた

このLCDはいわくつきだ

デカップリング用の表面実装タイプのCを不注意で外してしまっている
I2C LCDではまりまくる(http://dad8893.blogspot.jp/2014/09/i2c-lcd.html
今回もいろいろぐちゃぐちゃやってるうちに3.3V電源では表示できなくなってしまった

自作の可変安定化電源でテストしてみるとVDDが4.0Vあたりで表示が薄くなって消えてしまう

プログラムのミスかもしれないが1行目も表示されなくなってしまった

ブレッドボードで実験しているうちに9V電池を直にVDDに入れてしまったので心配

LCD ControllerのST7032iにある「Bon」というパラメーター(VDDの3.3VをLCD用に内部で昇圧するらしいです)をいじったりすれば3.3Vでも動くかもしれないがストックが1個しかないので
手持ちにいくつかあるaitendoのSPLC792-I2Cを使うように作戦変更

AQM0802は余裕があればもう少し調べてみたいと思う

SPLC792-I2Cで実験続行


※以前書いた「aitendoのSPLC792-I2CをArduinoで使う方法」
http://dad8893.blogspot.jp/2015/02/aitendosplc792-i2carduino.html)の
ブレッドボード図の配線が間違っていたので修正しました


I2CのSCL、SDAはSPLC792-I2Cの基板上で10kΩのRでプルアップされているのでそのまま使った

ファームウェアはStrawberry Linuxで公開されているST7032i用のものを多少変更して使った
http://strawberry-linux.com/catalog/items?code=27021

I2CのSCL、SDAで使うPORTCレジスタが内部プルアップされているようなのでこれをコメントアウト
//PORTC = _BV(4) | _BV(5); // SCL, SDA内蔵プルアップを有効
SPLC792-I2Cも基板上でプルアップされてるし
I2Cの3.3V<->5Vのレベルシフトに使う予定の秋月の「PCA9306」(http://akizukidenshi.com/catalog/g/gM-05452/)はデフォルトだと基板上で1kΩでプルアップされているようなので、AVRの内蔵プルアップは外すことにした

二重でプルアップするとそれぞれのRの並列になってプルアップ抵抗の合計抵抗値が下がるのかな?わかんないけど(^q^;

クロック源を内蔵のRCオシレーターにしてこの際3.3Vに統一してしまえばしまえばI2Cのレベルシフトをしなくて済むかなと思ったが

ヒューズビットでCKOUTを有効にしてクロックの状態をオシロで計測すると


(1)F:8.333MHzとかなり誤差がある(+4.2%ぐらい)

ファンクションジェネレータとして使うのでこの誤差はでかすぎるので
クロック源は外部クリスタルで行くことにします

0 件のコメント:

コメントを投稿