2013/02/24からのアクセス回数 6321
今週も大野さんの本に8章を勉強します。 簡単だと高をくくっていたのですが、アナログブロックとカウンターの接続にはまりました。
8章のレッスン2には、以下の図*1のブザーの音をAM変調を使って再現する例が紹介されています。
本文には記載されていませんが、このブザーのsin波の様な外形が50Hzのようです。
最初はよく分からなかったのですが、元の信号に変調信号を反転増幅するとAM変調した波形が、 出力されるのことが以下の図をみて理解できました。
AM変調を意識してなのか分からないのですが、SCブロック(タイプC)の内部構造*2 が以下の様になっています。
AM変調を使った串団子のような波形は、元の信号として50Hzのsin波、変調信号として1kHzを使用します。
オリジナルは、BPF2を2個使ったBPF4を使ってsin波を生成していますが、 ここでは練習としてBPF2を1個だけでsin波を出力してみます。
PSoCのFilter DesignフォルダーのBPF2 Design.xlsを起動して
ユーザモジュールの「BPF2_V5R5_2 ポール バンドパス フィルタのデータシート.pdf」によるとクロック周波数は、サンプルレートの4倍と記載されているので、フィルター設計で求められた2000Hzの4倍の8000Hzがフィルターの入力クロックの周波数となります。*3
例題のブロック図
&ref(): File not found: "fig8_3.png" at page "PSoC1/音に挑戦";
でBPF4_1をBPF2_1に変更してプロジェクトを作成します。
最初にグローバルセッティングを以下の様にセットします。
グローバルセッティングについては、桑野さんが ユーザモジュールの配置とグローバルリソースの設定 に説明があって助かりました。
大野さんのプロジェクトの設定では、
となっていましたが、デフォルトのままでも動作しました。しかし、レッスン3のスピーカーへの出力ではこの設定が必要になるのかも知れません。
次にユーザブロックを配置します。
Counter8を3個デジタルブロックを以下の様に配置します。
同様にアナログブロックに、PGAを3個、BPF2、SCBlockを以下の様に配置します。
BPF2は、先のフィルター設計の値を以下の様にセットします。
アナログの配線では、BPF2_1のクロックをDBB00から取ります。
デジタル回路のカウンターの接続を間違えて、正しいクロックを供給できていませんでした。
クロックはピンに出力しておけば、テスターで簡単に確認できるので次回からはチェックしながら進めたいと思います。
PGAのパラメータ設定で「未設定」項目があったのに気づかず、アナログ回路から出力がでなくて悩みました。
ユーザブロックのStartコマンドをmain関数に入れ忘れてどうして、動かないのか悩みました。