2016年2月15日月曜日

オーディオ用DACを使ったファンクションジェネレータ UI系のテスト

配線図


やったこと


  • PSoC 5LPを外付け水晶振動子(12MHz)で駆動
  • I2C LCD(AQM0802@秋月)
  • キーパッド
  • ロータリーエンコーダ

Github
https://github.com/ryood/I2S_FG/tree/master/PSoC/I2S_FG/UI_Test.cydsn

外付け水晶振動子


P15[0]とP15[1]につなげる。P15[2]とP15[3]はkHzクロック用。「PSoC 5LP Prototyping Kitを外付けクリスタルで動作させる

I2Sを32bit/382kHzにするとビットレートは24.448MHz。PSoCのI2Sコンポーネントの仕様により、2倍の48.896MHzのクロックを入れないといけないが、PSoC 5LPのクロックの最大値は80MHzなので48.896MHzで駆動する必要ありそう。

今回は12MHzの水晶でPLLで逓倍して48MHzで駆動。

48MHzでは駆動周波数が低くて演算が追い付かない場合、80MHz駆動にするためには20MHzの水晶で4倍で駆動、2倍の40MHzをI2Sコンポーネントに入力するとI2Sのサンプリングレートは312.5kHz。


I2C LCD(AQM0802)


I2CのPullUpはPSoCの内部プルアップを使用。内部PullUpした場合、抵抗値はおそらく5.6kΩ
http://www.cypress.com/knowledge-base-article/tolerance-internal-gpio-pull-updown-resistance-psoc-135

RST線をHにするのを忘れていて最初動かなかった。AQM1602で動作確認して気づいた。


キーパッド


Row×4、Col×4なのでGPIOのでポート1個でちょうど8個。Port3では動作しなかった。P3[2]があやしい。PSoC 5LP Prototyping Kit、3枚で試したがいずれもP3[2]がおかしいようだ。

Port2に変更したら動作した。

パラレルLCD(HD44780)でテストした時の使えるポートと関係あるかも?
PSoC 5LP Prototyping KitでChar LCD(HD44780)を使う まとめ

キーパッドの入力系のPullDownもPSoCのPinの設定でPullDownしている。


ロータリーエンコーダ


秋月の「ロータリーエンコーダ(24クリックタイプ)」はPanasonicのEVERやaitendoのRE1111とはAB相の遷移の仕様が違ったのでコードを変更。1デテントで2個進む感じ。