*目次 [#ka11bece] #contents(); *コメント [#p8914ad5] #pcomment(reply); *6月29日(金) - AMP-BPF パラメータ最適化 [#gdc76643] ピエゾ素子による音波到達の検知回路。~ 構成は[Bias]-[PGA]-[BPF]-[COMP]-[DigBuf]。~ 大枠は作ったので各モジュールのパラメータ最適化を図る。~ ~ ピエゾ素子で得られた波形をFFTしてみた。~ (1)波源の元信号のFFT~ (2)ピエゾで得た信号のFFT~ &ref(img12062902.gif); &ref(img12062903.gif);~ BPFのバンド幅はとりあえず50[Hz]にすることにした。~ ~ PGAとBPFの増幅率。~ (1)PGAx48 BPFx1~ (2)PGAx48 BPFx10~ &ref(img12062904.gif); &ref(img12062905.gif);~ ~ コンパレータの出力を見る。~ (1)PGAx48 BPFx100~ (2)PGAx46 BPFx141~ &ref(img12062907.gif); &ref(img12062908.gif);~ 増幅率を上げるほど早いタイミングで立ち上がりを検知する。~ ~ 現状のパラメータ。~ -PGA Gain x48(最大)~ -BPF Gain x141(43dB) (最大(43dB付近からBPFの増幅率頭打ち))~ -BPF CenterFrequency 700[Hz] (理想値は700[Hz]だが実測値は630[Hz]程度 内蔵なのでそれほど精確に設定できない)~ -BPF Bandwidth 50[Hz]~ -COMP Threshold 0.562Vdd(2.81[V]) (2.5[V]から最も近い最小の設定値)~ PSoCで設定できるパラメータ値のうち最大最小とかを取っている。~ SN比に余裕もありそうなので、外付け回路で増幅率をより大きくしたり、閾値を細かくすることで高精度化ができそう。~ ~ 次はコンパレータに2値の閾値を設定する。~ ~ *6月25日(月) - BPF2モジュール [#z3e9de7b] 周波数をフィルタリングするためにBPF2モジュールを使った。~ BPF2 Wizardを使うと、ピーク周波数やバンド幅などを入力するだけで適当なCの値を算出してくれる。~ しかし、ピーク周波数1k[Hz]のフィルタを設計したのに実測したら20k[Hz]あたりにピークがあった。~ ピーク周波数500[Hz]の場合では8k[Hz]あたりにピークがあった。~ 現在原因は不明。~ ~ (6月26日追記)~ アナログブロックに与える周波数が違っていたのが原因。~ ~ *6月25日(月) - AGNDを出力する [#a370d4b4] 圧電素子のベースラインをAGNDにするために、PSoCのピンからAGNDを出したくなった。~ AGNDを入力したGain=0[db]のPGAを使うことで実現できるが、アナログブロックを1個消費してしまう。~ しかし、レジスタを少しいじるとアナログブロックを消費せずに(厳密には併用的に)AGNDを外部へ出力することができる。~ ~ アナログブロックからの出力は、①他のアナログブロックに接続する線と②アナログバスに接続する線がある。~ そこで、①で通常(PGAやCOMPなど)の出力をしつつ、②からAGNDを出力する。~ (1)ブロックを起動する。~ PGAなどを置いている場合はStart()のAPIを呼ぶ。~ もしくはレジスタをいじって起動させる。~ (2)ブロック内部のMUXの選択を変更する。~ MUXのレジスタを変更する。~ ACBxxCR2 |= 0b00010100;~ ACBxxCR2 &= 0b11110111;~ 詳しくは「はじめてのPSoCマイコン」(桑野雅彦、CQ出版社)のp.102を参照。~ ~ 実は29466にはAGNDをPort2_4から出すという便利設定があった。~ #ref(img12062501.gif) これ使うとすぐできる。~ *5月24日(木) - 音波遅延実験 [#s37cc8ea] ■遅延無し(音源の直上にセンサを置いた場合) 黄 : ファンクションジェネレータ出力~ 青 : アンプ出力~ 紫 : センサ出力~ #ref(img12052401.gif) ~ ■遅延あり 黄 : アンプ出力~ 青 : 直上のセンサ出力~ 紫 : 遠方のセンサ出力~ □5cm #ref(img12052402.gif) □10cm #ref(img12052403.gif) □15cm #ref(img12052404.gif) □20cm #ref(img12052405.gif) □25cm #ref(img12052406.gif) □30cm #ref(img12052407.gif) *5月23日(水) - ファンクションジェネレータで信号生成 [#z9858143] ■AM信号 [#d6ead835] #ref(img12052301.gif) (1)搬送波の周波数や振幅などを選択~ (2)[Shift] + [AM] : AMイネーブルにする~ (3)[Shift] + [Recall Menu] : AM変調のオプションメニュー~ (4)"AM Shape"を選択し[↓]~ (5)変調波の選択(正弦波や三角波など)~ (6)[Enter]~ (7)[Shift]+[Freq] : 変調波の周波数を選択~ ■バースト信号 [#b03f8380] #ref(img12052302.gif) (1)バースト波形の周波数や振幅などを選択~ (2)[Shift] + [Burst] : バーストをイネーブルにする~ (3)[Shift] + [Recall Menu] : バーストのオプションメニュー~ (4)"Burst Count"を選択し[↓]~ (5)バースト時の周期数を選択~ (6)[Enter]~ (7)[Shift] + [Recall Menu] : バーストのオプションメニュー~ (8)"Burst Rate"を選択し[↓]~ (9)バーストの周波数を選択~ (10)[Enter]~ *5月11日(金) - Phenitecチップ試作 [#vb75ffcd] ■インバータバッファ回路図~ ■インバータレイアウト~ ■行デコーダ・列セレクタレイアウト~