最終的には動作したが、またまた、かなりハマりまくった(^q^;
ブレッドボード図
<修正: 2015.10.25> 配線が間違っていたので図を差し替えました。
</修正>
何にハマったかと言うと、I2Cの信号線のプルアップ用のRの抵抗値だ。
AE-AQM1602Aの場合、整理すると
- 1kΩでプルアップ
シーケンサー基板動作OK、AQM1602表示されず(I2C通信エラー) - 4.7kΩでプルアップ
シーケンサー基板動作OK、AQM1602の動作もOKだが、数分後にシーケンサー基板がエラー(I2C通信エラー) - 10kΩでプルアップ
シーケンサー基板動作OK、AQM1602の動作もOK。(1時間程度動作させているがまだ大丈夫そう。)
という結果になった。
オシロで波形を確認 (LCDの初期化コマンド)
1kΩでプルアップ
ch1:SDA ch2:SCL
途中でエラーになって終了しているようだ。
4.7kΩでプルアップ
10kΩでプルアップ
拡大
1kΩでプルアップ先頭はAE-AQM1602Aのスレーブアドレスのはずなので、0111:1100(0x7c)のはずだが、なんかおかしいなぁ(^q^;
4.7kΩでプルアップ
10kΩでプルアップ
AE-AQM1602Aで動作確認済みのPSoC Creatorのプロジェクト
https://github.com/ryood/PSoC4_sequencer_master/tree/master/Sequencer_Master_AQM1602.cydsn
シーケンサー基板のAtmel Studioのプロジェクト
https://github.com/ryood/RhythmMachine/tree/master/Atmel%20Stduio/Sequencer_I2C_Slave
SPL792-I2C
AE-AQM1602Aではなんとか動かせたが、最初aitendoのSPL792-I2Cでテストしていてなかなか動かなかった。Rをいろんな値に変えてやってみたが、
- 4.7kΩでプルアップ
シーケンサー基板動作NG(I2C通信エラー)、LCD動作OK - 3.3kΩでプルアップ
シーケンサー基板動作OK、LCD表示されず(I2C通信エラー)
と、4.7kΩと3.3kΩの間でどちらかが動作しなくなる。
I2Cはかれこれ1年ぐらい格闘しているがいまだに謎が多すぎてよくわからない。
0 件のコメント:
コメントを投稿