|
PSoC遊び(IQ信号発生器)
|
|
|
◆IQ信号と計測器 趣味で電子工作を行う者にはとても手が出ない高級なLC(やLCR)メータのほとんどは位相差を持った信号を利用しています。安価な計測器はフランクリン回路の実験ページでもご紹介したLCメータのキットのように共振を利用したものが殆どです。今は販売しておりませんが、秋月で以前販売していたLメータキットは位相信号を利用した回路で貴重な存在だったと思います。自力で復刻された方がおります。回路を見ると作りたくなる気持ち分かりますねぇ。 ◆PSoCと出会う 高精度な部品を使わなくてもお手軽に計測できないものかと考えていたところPSoCと出会いました。手始めにIQ信号を作ってみようと自力で作業し始めたのですがなかなかスマートに作ることができません。そんなある日、こんなアプリケーションノート(Simple Method to Generate Digital Signals with Variable Phase Shift Between AN2345)を発見したので動作確認してみることにしました。 ◆裏技じゃないの このアプリケーションノートでは2つの8ビットカウンターを使って任意の位相差を作っています。
たったコレだけの定義で任意の位相差ができるってどういうことでしょうか?そのカラクリは8ビットカウンター特有の動作を利用した裏技のようなものでした。両カウンターのEnable端子がRI0[3]に接続されており、GIE3経由でGOE3に接続されています。更に、何もつながっていないRO0[3]がGOE3に接続され、LogicTableSelectorがFALSEに設定されています。この奇妙な接続が位相差を出す工夫です。 この接続で普通に8ビットカウンターをスタートしても何も出力されません。プログラムを使ってLogicTableSelectorをTRUEにする必要があります。肝心の位相差を生み出す仕掛けは8ビットカウンターの初期化手順にあります。
この関数は8ビットカウンターに位相差を与える初期化関数です。両カウンターをスタートする手前でカウンター2にシフトするカウント値を設定し、スタート後にカウンター1と同じ周期と比較値を設定します。設定後にLogicTableSelectorをTRUEにします。この操作で2つのカウンターに位相差が発生するんです。なんと! 普通じゃ思いつかないよなぁ・・・ ボソッ ◆やってみる 手持ちのCY8C27443を使ってやってみました。
ちゃんとずれています。すごい! ◆日本のPSoC自作人口 PICと比較すると日本におけるPSoCの情報は少ないと感じられます。唯一の教本だった「はじめてのPSoCマイコン」は2007/2/8に絶版になってしまいました。作者のHPにCY8C27443の日本語データシートが公開されています。これはありがたい。 |
|
Latest update at 2007/10/30 |