2018年4月20日金曜日

ArduinoLFOをBSM02にかけてみた&ArduinoLFOに使うOPAMPを比較

ArduinoLFOでBSM02のCutoff、Resonance、Pulse Widthを変調してみました。フィルターモジュールはSVF DCFです。

XSplitで録音、録画しています(Audioはたぶん96bpsです)。面白味はありません(^q^;


もともとのPOTと並列にLFOを入れましたがまずまず効いています。

ArduinoLFOのOPAMPを交換


ArduinoLFOのOutput Boardに使っているOPAMPを、NJM13404、NJM2732、NJU7032に交換して比較しました。(単電源もしくはGNDまで使えるフルスイングOPAMP)

NJM13404

NJM2732

NJU7032

NJM13404は波形の下側がクリップしています。これはオーディオ・インターフェイスの入力のACカップリングの影響の様です。

ArduinoLFOの出力をACカップリングしない場合/した場合をオシロで測定しました。

NJM13404 ACカップリングなし RL=10kΩ

NJM13404 10uFでACカップリング、RL=10kΩ

NJM2732とNJU7032を比較すると、高調波歪の出方が違うので悩むところですが、WaveSpectraの表示値を信用してTHD+Nの小さいNJU7032を使うことにしました。

2018年4月18日水曜日

Blog 4周年記念: 製作物のまとめ(2017/05~2018/04)

この1年はマイコンからアナログ回路にシフトしつつあった1年だったと思います。

このBlogを始めたころはデバイスの限界、自分の技術や知識の限界がよくわからず暗中模索でしたが、このデバイスならこれぐらいはできそう、逆にこれは無理だろうという線引きがある程度できるようになってきたと思います。

アナログ回路は頭ではこういうことだろうなと理解できても、自分で回路を組んで挙動を見ないことには使いこなすことはできません。

ひとつひとつはしょーもなさそうに見える回路でも、自分の手で組み上げることによって、より大きな回路を考えるときに応用が効くようになると思います。囲碁や将棋でいうと詰碁、詰将棋です。しょーもないと思っていた回路が実は非常に深い意味を持っていることに気づかされることがよくあります。

一言でいうと、「一筋縄ではいかない」です。

ソフトウェアでも規模が大きくなると大変なことになりますが、アナログ回路の場合は選択肢が二値ではないため理屈で考えてもダメなことが多く(もしくは小難しい計算をしないと導き出せない)、複雑さはソフトウェアの比ではありません。体育会系的に「体で覚えろ」という世界なのかもしれません。

設計するのは大変ですが、アナログ回路はソフトウェアとは違って全体の構成が「目で見てなんとなくわかる」メリットがあると思います。

ベースマシン



2016年に製作したSPI制御のモノ・シンセです。モジュラー・シンセのように基板を取り換えて拡張できるようにしています。各モジュールのパラメーターはすべてシーケンサーからSPI経由で設定できるようにしています。

アナログ・シンセがVoltage Controlなのに対して、ベースマシンはSPI Controlのハイブリッド・シンセです。

目下の課題はシーケンサーのSPIコマンド送出周期が1kHzが上限のために発生するノイズ対策です。

詳細は「ベースマシン まとめ 2」にまとめています。

今後はBSM02として開発を続ける予定です。

KIK01



Sonic AcademyのKICK 2というソフト・シンセにインスパイアされて作ったDrumシンセです。

KICK音に特化していますが、設定によってはSNARE、TOMっぽい音にもなります。

基本的に808 KICKのぬくさを踏襲して、アナログ回路で音色のバリエーションを出せるようにしています。KICK音にゴーストっぽい音を足せるようにノイズ発生回路も入れています。

ベースマシンと同じように各モジュールはSPI制御していて、POTの設定値をADCで拾い、デジタル的に音をリアルタイムに変化させられるようにしています。

詳細は「KIK01 まとめ」でまとめています。

両電源IC(LT1054とMAU106)


ベースマシンはLT1054で単電源のACアダプタから両電源をつくりましたが、KIK01はMAU106で両電源をつくりました。今のところ両方ともちゃんと動作しています。値段はMAU106の方が若干高くパッケージサイズも大きいですが、出力波形はMAU106の方がきれいだと思います。

またLT1054は非絶縁なので入力側と出力側でGNDを共通にする必要がありますが、MAU106は絶縁タイプのためGNDレベルをずらす用途でも使えると思います。(KIK01ではMAU106でもGNDを入出力で共通にしています)

オーバードライブ TS-OD1



Propellerhead ReasonにScream 4という「ディストーション」エフェクタがあります。これに「Tube」という設定があって、掛けてみても別に真空管ぽくないな~と思っていたのですが、どうやらこの設定はIbanezのTube Screamerを模したものだと思います。つまり真空管によるディストーションではなく、「真空管アンプを叫ばせる」エフェクターという意味です。

ギターはかつて練習してみたものの指が痛くなるのにどうしても慣れないのと、世の中にはギターが上手すぎる人がいることがいることがわかって嫌気がさしてやめてしまいました。

当時は残念ながら、エフェクターがどうのこうのというレベルまでには達しなかったのですが、今回、Tube ScreamerやRolandのOD-1、Proco RATの回路を調べてみてわかりました。

オーバードライブ・エフェクタと呼ばれるものの本質が、どうやらダイオードによるリミッターなのではないか。

そこで、ギターではなく自作のベースマシンにかけてみて良くなる具合を探りつつ、オーバードライブ・エフェクタを「TS-OD1」と名付けて製作しました。

作ってみて思ったのですが、歪系のエフェクトをシンセにかける場合は、ギター用のエフェクターよりVCFやVCAなどシンセそれ自体で歪ませた方が面白い気がします。

タグ:TS-OD1

AD9833ファンクションジェネレータ



Amazonで売っているAD9833を使ったDDS信号発生器モジュールを利用して実用的なファンクションジェネレータを作りました。



AD9833の出力用のDACが10bitなので可聴帯域では自作のPCM5102Aファンクションジェネレータと比べると波形は汚いですが、5MHz程度までサイン波を出力できます。

AD9833の仕様では12.5MHzまで出力できるとなっていますが、サンプリングレート付近になってくるとサイン波とは呼べない波形になってしまうので5MHz程度までで使用しています。

何と言ってもコアになる部分がAnalog DevicesのICなので安心感があり、アナログ回路を高周波数で評価する用途では大活躍しています。

AD9833ファンクションジェネレータ でけた。

可変電流源


電圧を加えればそれに比例した電流が出てくる回路です。

可変電圧源はキットでもよくあるのですが、可変電流源はなかなか無いので製作してみました。

なんとなく誤算気味な気もしますが使いどころがあればいいなあと思っています。

可変電流源 でけた&リードベンダでジャンパ線の加工

Arduino LFO


まだ評価中ですが、Arduino NANOとSPI DACのMCP4922を使ってLFOを作りました。

基本的にはArduinoを使ったデジタル低周波発振器ですが、Arduinoしばりをかけつつアナログ回路にも使えるようにできるだけきれいな波形を出せるようにしました。

KIK01やBSM02の変調に使いたいと思っています。

Arduino LFOでけた。

Tr回路の実験


「定本 トランジスタ回路の設計」を読みながら、ブレッドボードで実験しました。



冒頭でも述べた通り、最初は「なるほど!なるほど!」と理解したつもりでむさぼりついて読んだ記憶があるのですが、いざ自分で回路を組んでみると、これは周到に用意された道しるべなのだと思いました。

よく考えずにやみくもに定数を変えて実験すると途端にひずみまくります。

今となっては、アキュフェーズの中の人の著作ならなるほどなあ~と思うところもありますが、やはり名著だと思います。

まだまだわからないことばかりですが、「定本 続・トランジスタ回路の設計」も読みながら実験していきたいと思います。

タグ:Tr回路の実験

木工


木工にもチャレンジしました。大きなサイズの市販のケースは価格が高いので、材料をおもに100均で調達して低コストで筐体を製作する方策を探りました。MDFは100均で調達していますが、サイズを考えるとホームセンターでも値段はあまり変わらないと思います。

木材は価格、加工のしやすさではMDF一択だとおもいますが、いかんせん木ねじが効かないしすぐに割れてしまうのが弱点だと思います。

MDFの工作は木ねじじゃなく木工用ボンドで接着することを基本として考えて構造を考える必要があると思います。

塗装はまだ試行錯誤中ですが、そのうちKIK01のフレームの塗装もやってみたいと思っています。

塗装の見栄えを気にしだすと、MDFではなく、単板を使うと木目がきれいに出ます。

単板材で安いと言えばSPFですが、SPFは薄くても1x4で板厚が19mmあります。

ホームセンターで10mm厚程度の単板材を探したら、アガチスという安くも高くもない単板が売っていたのを見つけて、ベースマシンの側板はアガチス材にニスを塗装して木目を生かして仕上げました。

単板のニス塗装は見た目や手触りがいいのでモチベーションアップにつながります。ギターのボディー程ではないすが、シンセもやはり楽器なのです(^q^/

タグ:木工
タグ:プラスチック加工

運用の結果


この1年に限らず、運用中の製作物について気づいた点をまとめておきます。

LME49600ヘッドホンアンプ



最初は電池電源で使っていて、猛烈にノイズが乗っていて愕然としたのですが、「±9V安定化電源」を使うようになってノイズは気にならなくなりました。電池電源はそれ自体が発するノイズは少ないですが、商用電源を使うと大地へのアースがされることになるのでノイズを低減できるのかもしれません。

定量的に調べる気力はありませんが順調に爆音でいけます。

もう少し音量が欲しい気もしますが、さらに爆音再生するにはLME49600のバッファ回路の前段に入れているDCキャンセル回路の増幅率をもう少し上げたほうがいいかも。

タグ:LME49600
トランスを使った±9V安定化電源 でけた(気がする)

ミニ・ミキサー



仮想GNDの取り扱いに問題がありますが、電池電源では運用できています。電源を他の装置と共有するとやばいことになります(^q^;


画像の青〇で囲ったあたりに問題があります。

Mini Mixerでけた
SVF DCF 出力のGNDを修正 仮想GNDの扱いには注意するべし

2018年4月15日日曜日

Tr回路の実験 カレントミラー回路

「定本 トランジスタ回路の設計」では、カレントミラーは差動増幅回路のコレクタ負荷の置き換えとして紹介されていますが、差動増幅回路はブレッドボードでの実験が難しいので単体で実験してみました。


シミュレーション回路図

電流源のI1の電流がコピーされてR1に流れます。実際の回路では電流は測定しにくいので、R1を100Ω、1kΩ、10kΩにしてパラメーター解析しました。R1の値を変えても電流は変わらないので、R1の値によって電圧降下が変化します。

I1をDC解析の「Source to Sweep」としてR1の電圧降下(VCC-OUT)をDC解析しました。

DC解析

RL=1kΩのとき(青色の線)を見ると、おおよそ V(VCC,OUT) = 1k * I1 で比例しています。RL=10kΩのとき(赤色の線)では、おおよそV(VCC,OUT) = 10k * I1 です。

I = E / R なのでR1に流れる電流はI1と同じことになります。

ブレッドボード配線


電流源には自作の可変電流源を使いました。入力電圧に比例した電流が出力されます。出力電流(mA) = 入力電圧(V)となるように調整しています。

0V~2Vの電圧を入力すると0mA~2mAの電流源になります。

入力電圧は5V電源を10kΩのPOTで分圧して作っています。

入出力の測定(DC)


可変電流源への入力電圧とQ2のコレクタ電圧をテスタで測定してグラフ化しました。

負荷抵抗1kΩ、電源電圧5.052V

ほぼ比例していますが、少し傾きが大きくなっています。←入力電流より出力電流の方が大きくなっている。

負荷抵抗10kΩ、電源電圧5.052V

横軸の300mV、400mVあたりの縦軸を見るとこちらも傾きが少し大きなっています。VCC付近になると出力がなだらかに頭打ちになるのはシミュレーションと同様です。

RLの値を変えてもほぼI1と同じ値の電流が流れていると言えます。

測定データ

RL=1kΩ(0.9994kΩ@DE-5000(DCR))
PWR(mV) 5052
IN(mV) OUT(mV) PWR-OUT(mV)
0 5055 -3
200.2 4844 208
398.2 4632 420
603 4406 646
804 4185 867
997 3966 1086
1201 3732 1320
1400 3494 1558
1599 3241 1811
1797 3010 2042
2001 2751 2301

RL=10kΩ(9.980kΩ@DE-5000(DCR))
PWR(mV) 5052
IN(mV) OUT(mV) PWR-OUT(mV)
0 5022 30
49.5 4517 535
100 3982 1070
151.1 3392 1660
199.3 2950 2102
251.2 2410 2642
302.4 1723 3329
350.6 1278 3774
401.8 820 4232
450.6 336 4716
498.7 119.5 4932.5
551.1 85.9 4966.1
600 72.2 4979.8

RL=10kΩの時、IN=400mV(可変電流源によって0.4mAに変換される)以上になると出力電圧の測定値がふらついてなかなか定まらないようなので、この間買ったロギング機能付きテスタのOWON B35を使って変動を見てみました。(Sampling Interval: 0.5s)

IN=485.2mV

最大値 183.4 mV
最小値 162.2 mV
平均 169.9599646 mV
標準偏差 3.689718804 mV

IN=100.7mV

最大値 4009 mV
最小値 3994 mV
平均 3998.055014 mV
標準偏差 1.591573913 mV

標準偏差を見ると、IN=485.2mVの方が大きくなっています。発熱の影響なのかテスタの読み取り精度の影響なのか(@@?

入出力の測定(AC)


シミュレーション回路図


過渡解析

1mAp-pのサイン波を入力して、V(OUT)(Q2のコレクタ電位)を測定しています。V(OUT)はおおよそ4.0V~5.0Vの1Vp-pで、入力に対して反転しています。

ブレッドボードで実験


AD9833ファンクションジェネレータで1kHz/1Vp-pのサイン波を出力して入出力をオシロで測定しました。

ブレッドボード配線


ch1:可変電流源への入力電圧 ch2:OUT

オシロの表示値をみると、OUTは3.960V~5.040Vで入力に対して反転。歪も見られないようです。

Q1、Q2のベース電流をTrで駆動


EDN Japanの「電流信号をコピーする! カレントミラー回路をマスターしよう (1/3) 」にTrを1つ追加してベース電流を供給する回路が紹介されています。

シミュレーション回路図

DC解析

過渡解析

シミュレーションだとTr 2個バージョンとほとんど差がないようです。

ブレッドボードで実験


前述の入出力の測定(AC)だけ行いました。

ブレッドボード配線



ch1:可変電流源への入力電圧 ch2:OUT

実験でもほとんど差がありません。

入力するサイン波の周波数を上げてみる


300kHzまで周波数を上げると波形に歪が出ました。

Tr 2個バージョン

ch1:可変電流源への入力電圧 ch2:OUT

Tr 3個バージョン

ch1:可変電流源への入力電圧 ch2:OUT

ただし、これは使っている可変電流源の歪です

可変電流源の出力負荷を単に1kΩの抵抗にして、抵抗の両端の電圧を測定すると下のようになります。


ch1:可変電流源への入力電圧 ch2:負荷抵抗の両端の電圧

※可変電流源のOPAMPにはAD8532を使用

参考:「可変電流源 AD9833ファンクションジェネレータでOPAMPを評価

実験に使ったTrの特性

Q1: 2SC1815Y B=164 Vf=706mV
Q2: 2SC1815Y B=157 Vf=706mV
Q3: 2SC1815Y B=169 Vf=708mV

AVRトランジスタテスタで測定