Arduino

シグマデルタ変調 PWM (7)

これまで ΣDM PWM のリニアリティの測定をしていなかったので、整数部 1 LSB の間の小数部 32 レベルについて実測してみました。 結果のグラフを下に示します。 赤の線が 2 次で、青の線が 1 次です。

シグマデルタ変調 PWM (6)

これまでのところで ΣDM PWM 出力の様子は概要が分かったので、今度は実際に VCO につないでみることにします。 と言っても、アナログ・シンセの VCO モジュールとして機能する回路は手許にないので、PX-150 のテスト用基板に作成した LM331/NJM4151 使用の…

シグマデルタ変調 PWM (5)

2 次 ΣDM では 1 次 ΣDM に比べて内部状態の数が増えるため、出力系列の周期が大きくなることが予想されます。 といっても、MASH 方式では 1 段目の ΣDM の動作自体は 2 段目の ΣDM の影響を受けないので、全体としての周期は 1 段目の周期の 2、4、8、16、3…

シグマデルタ変調 PWM (4)

前回の補足として、外部入力が一定値を取る場合の小数部 f の値と、1次 ΣDM 出力波形に含まれる周期変動の基本波の周波数の表を示します。 まず、f が 2 のべき (および 32 からそれを引いたもの) である場合の表を下に示します。 この場合は、基本波と高調…

シグマデルタ変調 PWM (3)

具体的な実験の手順としては、 Pakurino (Arduino) 用に ΣDM への入力として DC (直流) 出力だけでなく、各種の波形を重畳して出力できるスケッチを作成 その出力の時間波形とスペクトルを、「efu」氏作のフリーソフトウェア「WaveSpectra」で観測 という方…

シグマデルタ変調 PWM (2)

普通の PWM では、いったんパルス・デューティー値を設定してしまえば、再びその値を変更するタイミングまでは何もする必要がありません。 それに対し、ここでは、PWM デューティーを細かく変化させて分解能を向上させるため、 PWM 周期ごとに処理をする必要…

シグマデルタ変調 PWM (1)

「FMmelody」のプログラムの説明を書くのをサボって、主に「MIDI2CV」用途を目的とした、シグマデルタ変調 (以下「ΣΔM」、「ΣDM」あるいは「SDM」と略記) により PWM 出力の分解能を上げる実験をしています。 PC 上でプログラムによるシミュレーションを行う…

Pakurino (6)

「FMmelody」で、DAC に μPD6376 (NEC) を使った場合にも正常に動作することを確認しました。 確認方法はハンダごても使わず、非常に横着な方法を取りました。

Pakurino (5)

少し間があいてしまいましたが、スケッチ「FMmelody」のプログラムの説明に入りたいと思います。 まずは、ファイル構成と、各ファイルの簡単な説明からです。

Pakurino (4)

6/29 日付けの記事のコメントにあるように、ATmega168P や ATmega328 などの「新しい」チップでエラーが出てコンパイルがうまくいかないという問題に対応して、修正を施したものを 2009/07/01 版として Web 上のファイルを置き換えました。 修正したのは「No…

Pakurino (3)

9 ビット Fast PWM モードを使った 2009/6/26 版の FMmelody スケッチでは、出力波形のひずみが大きくなるという問題があったので、8 ビット Phase Correct PWM モードに変更し、 2009/6/29 版としてリリースしました。 6/26 日付けの記事と、Web 上のスケッ…

Pakurino (2)

Arduino IDE 付属のサンプル・スケッチ「Melody」を FM 音源版にしたスケッチ「FMmelody」を (→こちら) におきました。 解凍してできた「FMmelody」フォルダ (とそれに含まれるファイル) をご使用中の「スケッチ・ブック」のフォルダにコピーしてご利用くだ…

Pakurino (1)

急に思い立って、FM音源プログラム用の自作 ATmega168 ボードを改造して、Arduino 互換ボードとして動作させることにしました。 改造版ボードの名前は、例によって Pakurino (パクリーノ) としました。 Arduino とは、(a u i o) という母音の並びだけは一…