製作モジュール一覧

ラベル SPLC792-I2C の投稿を表示しています。 すべての投稿を表示
ラベル SPLC792-I2C の投稿を表示しています。 すべての投稿を表示

2015年11月10日火曜日

PSoC 5LPでI2C LCDをテスト

CQ出版のPSoC 5LP PMB基板とPSoC 5LP Prototyping Kitで秋月のAQM1602AとaitendoのSPLC792-I2C-Mの動作をチェックしてみた。

PSoC Creatorのプロジェクト
https://github.com/ryood/I2C_LCD_Test_PSoC5LP

秋月のAQM1602


CQ出版のPSoC 5LP PMB基板(3.3V駆動)

ブレッドボード図




I2Cの波形


ch1: SDA ch2: SCL

SDAとSCLは10kΩのRでプルアップした。1kΩだと動作せず。ACKがLに引っ張り切れてなかった。LCDコントローラーの駆動力不足?

PSoC 5LP Prototyping Kit



I2Cの波形(5V駆動)


PSoC 5LP Prototyping KitをUSBの5Vで駆動。5VでプルアップしているのにSDAが3Vぐらいになっている。(原因不明)


I2Cの波形(3.3V駆動)


PSoC 5LP Prototyping Kitに自作の5V/3.3V安定化電源で3.3Vを供給

秋月のAQM1602はどれも動作させることができた。

aitendoのSPLC792-I2C-M


こちらは動作できなかった。

SCLとSDAは基板上で10kΩ(たぶん)でプルアップされている。

CQ出版のPSoC 5LP PMB基板のI2Cの波形(3.3V駆動)


ch1: SDA ch2: SCL

9bit目のACKがLに全然ひっぱれていない。

PSoC 5LP Prototyping KitのI2Cの波形(3.3V駆動)


Arduino(びんぼうでいいの)


念のためaitenodのびんぼーでいいの(Arduino Uno互換)で動作させてみた。こちらは動く。



バックライトはないけど秋月のでやろうかな。う~ん

2015年4月16日木曜日

I2Cバス用双方向電圧レベル変換モジュール(PCA9306)を使ってみた


5V側


赤色がI2CのSCL、黄色がI2CのSDA

3.3V側


I2C LCDにSPLC792-I2Cを使ったが何も表示されなかった


プリントアウトして手書きでコマンドの状態を調べた

ロジックアナライザーがないので手作業のロジック・アナライジングだ(^q^;

AVRからの出力はきっちり0x7Cを出力しているが、9bit目がNACKになっている

波形的にはとてもきれいだが9bit目のLCDからの応答がNACKだ

9bit目のNACKの後に証文の出し遅れみたいにSDAが一瞬Lになっている

なんだこれ?

レベルシフトをしないでやってみる

経験的にSPLC792-I2Cは3.3V駆動、MPUは5V駆動にするとうまくいくのが分かっているので
PCA9306を入れないで動作させてみた



波形はグダグダだが3.3V MaxでACKがきた

LCDもちゃんと表示された

aitendoのSPLC792-I2Cに関してはMPUを5V駆動させてレベルシフトしない方がうまく動くようだ

秋月のAQM0802もStrawberry LinuxのI2C LCDも壊してしまって(?)実験できないが
部品数が減るのでこれは幸いということで

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%ぐらい)

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

2015年4月10日金曜日

ぴゅんぴゅん3号 3次VCVS LPF版シールドの設計

ぴゅんぴゅん3号のシールドをはんだ付けする前にブレッドボードでもう少し実験してみた




aitendoのI2C LCD(SPLC792-I2C)

今まで使っていたStrawberry LinuxのI2C LCDのピンヘッダが細いタイプで
ブレッドボードならいいが、ピンソケットに差すとぐらつくので交換しようと思ったが
作業途中でプリント・パターンを破壊してしまった(^q^;

aitendoのSPLC792-I2Cはなんか在庫が補充されているみたいなのでこっちを使うことにした
(1回の注文で2個までしか買えないが)

PSoC 4 Pioneer Kitはジャンパの設定で5V駆動、3.3V駆動が切り替えられるが
3.3V駆動にすると動作開始後しばらくするとI2Cの通信エラーが起こる

5V駆動なら正常動作する

PSoC 4 Pioneer Kitを5V駆動してもSPLC792-I2Cの電源は3.3V供給だし
I2CのプルアップはSPLC792-I2Cの基板上でされているので3.3Vだ

問題となりそうなのはRSTのレベルが普通の信号線なので5.0Vになる
→起動時に1回だけRSTしているので1回だけ仕様外

<追記:2015.04.18>RST信号は負論理(通常時はVDD)なのでRESET時以外は常に仕様外でした</>

I2Cの信号線が3.3Vレベルになるので5V駆動のPSoC 4 Pioneer KitのI2Cの入力が仕様外(だと思う)

本来なら3.3V駆動で正常動作するはずだが、原因は不明(@@;

深追いしないで、PSoC版のぴゅんぴゅん3号は5V駆動でいくことにする
(といってもPSoC 4 Pionner Kitのジャンパを切り替えるだけだが)

3次VCVS LPFの定数決め

シールド上でもピンソケットを使ってCRを交換できるようにするつもりだが
ブレッドボードでももう少し実験

OKAWA Electric Designさんのフィルター計算ツールを使って
http://sim.okawa-denshi.jp/Sallenkey3Lowkeisan.htm
バターワース特性でカットオフ周波数が2kHz、10kHz、50kHzになるようにして
できるだけ手持ちの部品で近い値のCRに置き換えてLTSpiceでシミュレーションした

そのあと実際にぴゅんぴゅん3号で波形を生成してオシロで見てみた

カットオフ周波数2kHz

シミュレーション

AC分析

<追記:2015.04.13>
このRCLフィルタで出る∧∨みたいなピークはなんだ?共振の発振を後段の2次LPFで抑えてるっていうことか?位相はOPAMPのフィルターで考えると信じられないぐらい回ってるし

終わりよければすべてよしみたいなものなのだろうか

そういえばLPFで進み位相になったのが何故なんだと思ってたが
タブレットのファンクションジェネレータ出力用のLPF でけた&いろいろ測定(http://dad8893.blogspot.jp/2015/04/lpf_6.html
一瞬でこんだけ位相が回されると元に戻るのか

気が付けば360度

2kHzは普通に可聴帯域で計測できそうだし調べてみる価値はあるかな
</追記>

オシロで観測: 2kHz矩形波

赤色がIDAC8からの出力、黄色がフィルターの出力

回路の後段に容量成分があるのでIDAC8からの出力もなまってるが
後段の回路を切り離すとこのようにちゃんとした矩形波が出力される


2kHzの矩形波は相当なまっているので、ちょっとこれはフィルターが効きすぎだ
三角波やノコギリ波もほとんどサイン波に近くなってしまった

カットオフ周波数10kHz

シミュレーション

AC分析

オシロで観測: 2kHz矩形波

なまっているがまあ矩形っぽい原型をとどめている

オシロで観測: 2kHzノコギリ波

これもなまっているがノコギリ波っぽい。

アナログシンセの波形ってこんな感じになまっているのでむしろ好都合かも(^q^/

カットオフ周波数50kHz

オシロで観測: 2kHzサイン波

LPFが効かな過ぎてDACからの出力のガタガタが取れなくなってしまった

フィルターとしてはどうかと思うが、デジタルとアナログの中間みたいでこれはこれで面白いかもしれない

ジッター

DDSの宿命なのかジッターはやはり出ているが
ピュンピュンマシンはもともと波形をLFOで揺らす作りなのでこれは問題ない

基板設計


1日ぐらいではんだ付けできるかな?

2015年2月21日土曜日

aitendoのSPLC792-I2CをArduinoで使う方法

テスト用に使っていたモジュールを壊してしまったようなので
ストックしていたものを新たにはんだ付けして使ってみたので、使い方をまとめておきます

基板のはんだ付け


SHLとVDD、DIRCとGNDをショート
9PINのピンヘッダをはんだ付け

Arduinoのスケッチ
Sim's Blogさんのところで公開されているストロベリーリナックスのI2C LCD用のスケッチ
http://blog.goo.ne.jp/sim00/e/ab138be751d447bcdb0eecaaca232214)がそのまま使えるが
3.3V駆動するのでコントラストの値を増やすように変更
byte contrast = 63; // 0-63 5V系だとかなり少なくする
Arduinoとの配線

<修正: 2015.04.15>ブレッドボード図のSCLとSCLの配線が逆だったので修正しました

</修正>

LCDのVCCはArduinoの3.3Vから給電する
I2CのSDA、SCLは基板上でVCCにPULL UPされているのでPULL UP用の抵抗は不要 (ストロベリーリナックスのLCDでは必要です)

RESET線は不要だが念のためにつないでおいたほうが無難

バックライトはブレッドボードで実験するときは点灯させない方が無難
→間違えてLEDに過電流を流して壊してしまうと泣ける(^q^;




使ったスケッチは初期化時に1回だけコマンドを流すので
オシロのSingleモードでSCLとSDAの波形を補足

SDAの9bit目がACK(L)になればI2C通信は成功!

コントラストの調整をコマンドでやるのでI2Cの100kHzの波形が見れないと
動作しないときの原因特定は困難かも(@@;

2014年11月16日日曜日

aitendoのI2C-LCD SPLC792-I2C

表示の上下が反転される現象は解決できた



液晶モジュールにSHL、DIRCというPINがあって
ここをHかLに固定しないといけないらしい

それぞれ「COM direction selection input」 「SEG direction selection input」となっている

結局のところ

aitendoさんの基板では、SHLとVDDをショート、DIRCとGNDをショート
で、バックライト用のアノードはVDDとショートしてはいけない(電流制限用のRをいれる)

ということらしい



まだバックライトを1コ壊しただけなので、動かない基板とモジュールのセットのやつも
余裕があったら調べてみたいと思う

ドキュメントはわざと混乱させようとしてるのではないかと勘ぐりたくなる(^q^;;;;

2014年10月16日木曜日

I2C LCDをAVRで試す

LCDを3.3V駆動、AVRを5V駆動することにしてテストしてみた
AVR: ATMega328P
LCD: SPLC792-I2C (aitendo)


電池なので電源電圧はきっちりしていないが、表示はOK
LCDの電源 2.90V
AVRの電源 4.63V
消費電流も測ってみた
LCDの電源 5V OFF時: 0.20mA | 5V ON時: 70uA~15uA
AVRの電源 12mA → 8.8mA に減る
LCDのバックライトに5V/5mA程度流すとすると、ざっくり20mA程度は必要だ

余裕をみると、やっぱり5Vの三端子レギュレータからは50mA程度流せる余裕が必要そうだ

I2Cを使った場合のVAMeterの回路図


ATMega328Pの周辺機器のI2Cを使うとADCで使えるPINは残り4本
ギリギリセーフ(^q^/

ファームウェアも『昼夜逆転』工作室さん(http://jsdiy.web.fc2.com/vameter/)の
ところからからかなり手を加えないといけない

AVRでのADCは今まで使ったことがないのでいろいろ調べたりテストしたりが必要になりそうです

aitendoさんのLCDはなかなか使いこなすのが難しい


SPLC792-I2Cの基板セットで別の製品を買っておいたが
LCDと基板でハーフピッチハンダ付けが必要になるので寝かしておいた

ハンダゴテのコテ先とフラックスを新調したので思い切ってハンダ付けしてみた



ハンダ付けはうまくいった気がするが(テスタで導通/絶縁を調べて)
うまく表示されない

LCD本体と端子はフラットケーブルで隔離されてるので
そうそう熱で破壊されることは考えられない

資料があまり親切ではないので、tozさんみたいに基板もHackするつもりでやらないとダメかもしれない

幸いバックライトのテストは出来たので、バックライトを破壊したLCDとニコイチしようかな

aitendoさんに在庫もあまり無いようなので
ぴゅんぴゅん3号のシールドにはstrawberry linuxさんのを使うことも考える
http://strawberry-linux.com/catalog/items?code=27021

aitendoさんのに比べると高いけど、資料も丁寧だし、在庫もたっぷり

2014年9月10日水曜日

I2C LCDではまりまくる

Arduinoで表示できたのでAVRでもいけるかもと思ったので実験してみた

こないだArduinoで表示出来た時のソースを公開されてくださってた

http://blog.goo.ne.jp/sim00/e/ab138be751d447bcdb0eecaaca232214さんの

移植元の

Strawberry Linuxさんが公開されているサンプル(http://strawberry-linux.com/catalog/items?code=27021)をそのまま書き込んだが

なんも表示されない



Arduinoでもう一度試したら、こっちは大丈夫

なのでモジュール自体は大丈夫っぽい

配線がまちがってるのか

普通のHDなんちゃら互換のLCDなら今のままでもAVRで使えるんだが
できればコンパクトに実装したい

でもLCDの実装面積よりも、負電源の電流電圧の測定のほうが大事なことなので

かなり悩ましい


ついでにaitendoで仕入れたI2CのLCD(SPLC792-I2C-M http://www.aitendo.com/product/6287)
の実験をしてみたが

shortしろって書いてる「C]のところをshortさせたら

「ちゅん!」

といってお亡くなりになられた

仕様を無視して5V印加したのが悪かったのか思ったが、Webで調べてみると
このモジュール、バックライトの電流制限抵抗がなかったのかもしれない

どっちかわからないけど、もう一個あるので今度は用心深くやってみることにします

バックライトはつかないけど表示はされてるみたいだ


16桁2行BL付きで300円台っていうのは、多少火傷しても飼い慣らしたいとこである

(2014.09.11追記)
AVR - I2C LED、電源入れっぱなしで放置していおいたら
気がついたら表示されるようになっていた


わからん時はしばらく放置するのも手だ(^q^;