アナログシンセ掲示板ログ閲覧所
Library of BBS for DIYers of Analog Synth

[ トップページへ / 一覧表示 / 最新記事 / 管理用 ]
[ to Top Page / Title List ]


雑談 ローコストLFO実装
#8903
この記事の投稿者にメールを送信 takeda (2008年04月21日23時11分)
やすだ(や)さん、毎度フォローありがとうございますー。
早速拝見しました。分解能が6ビット程度、もうひと超え欲しいかもとか思いつつ、取り出すスピードは速くないけど、鋸歯状波やめて三角波でスキャンする式に変更してみました。なんかうごくっぽいぞと、外から可変のパラメーターを食わせられるということで、今年の初めに、アルゴリズムの確認で書くだけ書いて放置してたソフトLFOをTiny2313に実装してみました。

スキャンの三角波のリップルのせいで、毎回、それっぽいけど違う値が帰ってきたりしてます。0から255の値が取れるはずなんだけどリップルが凶悪にでかくなる、64-180ぐらいの間では、プルプル毎度違う値が帰ってきてしまい、LFOのスピードの変化に使おうとすると誤差が0にリセットされちゃって、思ったとおり動きません。折り返しポイントでスピードを変えるかどうかをチェックする式に書き換えました。
しかも分解能下げて、ADコンバートのノイズ(というか、誤差)を吸収してたりして、8ビットの分解能全部使い切れてません。

外付けの発振器なし、内蔵CRの8Mでうごかしてます。LFOを動かす、最高速16Hzぐらいを実現するための、ポーリングタイミングの124uSは、8Mのクロックをプリスケーラなしでカウントする10ビットのPWMの桁あふれ割り込みが、大体そんなところかと適当に使ってます。

最速は、8M/1024/255/2=15.3Hz(最後の2は、傾き1の線が上がって下がって1サイクルになるので..)。まだ、初期化のミスが残っていて、電源入れた直後は最速で走るのでちゃんと15Hzでてます。ただ、その後、ADコンバーターで得た数字をスピードに突っ込むと、13Hzぐらいまでしかあがりません。(下のほうは0.3Hzのはずなんだけど、遅すぎて読めない...)たぶん、0周辺とか、255周辺がちゃんと読めてねーのかな、簡易ADコンバーターの限界かなーとか、想像してます。

やすださんのご紹介くださった技法、ハードはちょっと変えると(まだ、ブレボなので)試せるし、こっちも試してみなくちゃだわ。分解能はともかく、直線性よさげ。僕のやつが、結局、7ビット分ぐらいしか使えてないことを考えると6ビットもとれりゃ十分なのかな、という気もそこはかとなく...ただよっって見たり。

http://briefcase.yahoo.co.jp/bc/motohiko_takeda/lst?.dir=/1d81
LFO-test2.c


[この記事の元になった記事]

A-D変換 : やすだ(や) (2008年04月19日14時22分)

[この記事に対する返事]

Re:ローコストLFO実装 : takeda (2008年04月23日22時02分)