*目次 [#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]
■インバータバッファ回路図~
■インバータレイアウト~
■行デコーダ・列セレクタレイアウト~