PICで正弦波 (3)

By kmgs | 5 月 29, 2009

前回の続き(その1その2)。
自力でI/Oピンの出力をタイマー制御で上げ下げしていたのですが、SPIで連続データを送信すれば実装が格段に楽になることに気づきました。調子に乗って、74HC164 (8ビットシフトレジスタ)にデータとクロックを送り込み、8タップの移動平均を取ってみました。下図では各ビットはつぶれていますが、意図した動作はしているようです。



これを簡単なRCフィルタ(カットオフ1.06kHz)によるLPFに通すと、こんな感じになります。



LPFによってずいぶん変わりますが、上記のカットオフ1.06kHzでは依然として高調波が出ています。


また、4.096MHzの水晶振動子を付け、内蔵PLLで32.768MHzの動作としています。

[ 続き ]

Topics: PIC24HJ12GP202 | No Comments »

PICで正弦波 (2)

By kmgs | 5 月 25, 2009

ここの続き。
Rで2値量子化1次デルタシグマ変調の計算を行い、1周期の正弦波を1024bitのビット列に落とし込みました。これを77.2MHz (33.6MIPS)で動かしているPIC24HJ12GP202にプログラミングし、タイマーで約1マイクロ秒ごとに出力ピンの状態を変化させました。WaveSpectraで見ると、こんな感じ。



信号が1012Hzで-6dB、高調波は軒並み-60dBとなっていますので、SN比は先日の512bitの場合からは10dB程度改善しています。これはRでシミュレートした結果(未掲)とほぼ一致します。
これ以上SN比を稼ぐためには、オーバーサンプリングの周波数を増やす、多値量子化する、デルタシグマ変換の次数を上げる、といったことが必要そうです。

[ 続き ]

Topics: PIC24HJ12GP202 | No Comments »

PICで正弦波 (デルタシグマ変調器)

By kmgs | 5 月 23, 2009

久々にPICをいじっています。
2009年4月号のトラ技で、dsPICを用いてデルタシグマ変換により正弦波を生成する記事がありました。普通のPICでもできないかと考え、以前オシロもどきの実験(このへん)に使っていたPIC24HJ12GP202の環境を解体し、作製を進めています。
現在1ビットD-A変換を検討しており、あらかじめR上で正弦波を512ビット程度に変換したデータを作製しておき、これをプログラムに埋め込んでPICに焼いています。


右がPIC、左はフラッシュROM書き込み兼UART通信用のFT232Rです。勝手に作ったPIC開発環境ですが、それなりに使えます。

続いてオシロの波形。CH2(青)がPICからの出力、CH1(黄)がLPF通過後の波形です。適当なRCフィルタを噛ませているのですが、位相がずれていますね。


まだまだ完成には程遠いものの、XR-2206に近いくらいの歪み率には追い込めそうです。


[ 続き ]

Topics: PIC24HJ12GP202 | No Comments »

オシロの自動校正

By kmgs | 5 月 19, 2009

そういえば、最近気温が上がってきたので、オシロの自動校正を掛けておきました。
Rigol DS1202CAを使っているのですが、校正終了時にトリガや画面表示等の設定が工場出荷時の状態に戻ってしまうのが難点です。
波形取り込みソフトでPC側に設定を吸い上げておき、校正が終わったら書き戻せばよいのだろうか。

Topics: オシロスコープ | No Comments »

汎用ロジックICでD級アンプ (3)

By kmgs | 5 月 19, 2009

この辺(その1その2)の続き。
74AC04が出す100MHz程度のリンギングが、スパイクノイズの原因であることが分かりました。RCスナバ(10Ω+1000pF)やフェライトビーズを入れて対処しようとしたものの、なかなか改善せずに困っています。ここ2週間以上解決できません...。
とりあえずBTL化を試した波形です。また元に戻してスパイクノイズと格闘します。

Topics: 雑記 | No Comments »

ダイオード2つで三角波から正弦波を近似

By kmgs | 5 月 12, 2009

XR-2206の後段にあるsine wave shaperに興味を持ち、似たようなものを作れないかと考えて調べていたら、ダブリン工科大学の講義資料を発見。XR-2206に近いものはスライド26にある差動増幅器ですが、スライド29にあるようにダイオードのV-I特性を利用しても正弦波の近似を行えるようです。

早速実験。まず5V単電源で動作するよう、ボルテージフォロアでオフセット用2.5V (Vcc/2)を作ります。WaveGeneで1kHzの三角波を作ってオペアンプに入力し、2.5V (Vcc/2)のオフセットを加えます。これは反転増幅回路。

さらに1kΩの可変抵抗を経由して、ダイオードのペアそれぞれの先端を2.5Vに繋げ、対数的な振る舞いを持つ非線形シェイパーとします。このままではインピーダンスが高いので、最後にボルテージフォロアで受けて出力。



いつものことながら、これじゃ何だか分からないですね...。リクエストがあれば回路図を作ります。
ちなみにオペアンプは、秋月で買ったNJM3414です(値段で選んだだけ)。波形はこんな感じ。CH2(青)がオフセット2.5Vを加えたシェーピング前の三角波、CH1(黄)がシェーピング後の正弦波です。いずれもAC結合で測定しています。



WaveSpectraで歪み率を測定すると、THD+Nで2%弱程度となりました。


Topics: 雑記 | No Comments »

« Previous Entries Next Entries »
ホットワード padding margin 統計 処理 PICマイコン
割引クーポンまとめ情報 - クー割