VCO考 三角波から鋸歯状波 ~シンセやろうぜ~
オリジナルのサイトが果てしなく読みにくいので、勝手にカット&コピーしています。
シンセのVCOは三角波、鋸歯状波(ノコギリ波)、方形波・PWMなどの出力を持ちます。よく見かけるのは、鋸歯状波をベースに三角波を合成する回路です。山下シンセとかもそうですね。MoogのVCOとかもそうなのかもしれません。
三角波の発振回路
鋸歯状波をベースにすると、(実用上は問題ないのかもしれませんが)、波形のリセット期間の影響で周波数の高い領域でリニアリティに問題が出てくるような気がします。
そこで三角波をベースに鋸歯状波を合成することを考えてみます。なお、三角波をベースにした場合でも、波形の折り返し部分が不連続点(時間0にできない)となり、高音域でのリニアリティを完全に払しょくすることはできません。状態遷移型の発振回路ならば、回路の動作に不連続点がなくなるので、良い結果がでるかもしれません。まあ、Anti-Logをはじめとして誤差の原因になるところはいたるところにあるので、まずは三角波の発振回路で考えます。
回路図と波形を下に示します
この回路は、積分器とヒステリシス・コンパレータで構成されたVCO(アンチログなし)です。この発振回路は、コンパレータのアプリケーションノートなどでもよく見る回路です。三角波と同時に方形波が得られます。発信周波数を電圧制御できるようにアナログスイッチを利用しています。
![]() |
tri.asc |
三角波(方形波)からのこぎり波
鋸歯状波→三角波の変換は、鋸歯状波の半分くらいを折り返す(-1倍する)ことで作りますので、ここではその反対を行います。ただ、三角波単体では難しいので、方形波を利用します。
tri2sawその1
方形波がLowレベル(約0v)の時は、三角波をそのまま利用し、Hiレベル(約3.3v)の時は三角波を-1倍して、オフセット電圧をかけるようにします。(TRI2SAW_01.asc)
Lowレベルの時とHighレベルの時の切り替えを行うためにアナログスイッチをもう一つ使用しています。この方法では、オフセット電圧の調整を厳密に行う必要があります。波形SAW1赤色の斜面の真ん中あたりにノイズが乗っているのは、オフセット調整が完全ではないためです。
![]() |
tri2saw_01.asc |
tri2sawその2
もう一つ別の方法を考えました。積分器をもう一つ追加して、方形波の立下りエッジで追加した方の積分器をリセットする方法です。厳密には三角波→鋸歯状波ではなくて、方形波→鋸歯状波の合成となります。(TRI2SAW_02.asc)
この場合は、鋸歯状波のリセット期間は、発信周波数における問題にはなりませんが、ジッタが乗る可能性があります。
![]() |
tri2saw_02.asc |
----
おまけ LT-spice用のファイル(tri2saw.zip)。ダウンロードしたら、ファイル名の末尾「_ZIP.TXT」を「.zip」に変更してあとはzipファイルとして解凍してください。
LTspice解析
添付ファイルを解凍すると、つぎのLTspiceファイルが得られます。
Name
----
tri.asc
tri.plt
tri2saw_01.asc
tri2saw_01.plt
tri2saw_02.asc
tri2saw_02.plt
tri2saw_both.asc
tri2saw_both_with1219-optimal.asc
tri2saw_both_with419mod.asc
これらの解析では、アナログスイッチはLTspiceデフォルトのADG1219を使っています。実際に回路を組もうとしたときに、ADG1219の入手はできないので、入手性のあるCD4053を使うシミュレーションを行いました。
CD4053を使うときのTip’s
なかなかLTspiceが走らず、1日ほど苦労しました。
① .param VCC=5 vel=0.5
CD4053のspice model には、これを書くように記述があります。書かなければ、LTspiceが動きません。
② 負電源はモデルのVEEに定義する。
データーシートによると、VEEが負電源、VSSはGNDのようなので、そのように書き換えたら動くようになりました。
元ファイルの負電源符号がVSSとなってる。VEEとすべきだと思います。