2019年2月25日月曜日

KIK01のSyncInをKIKとNOSの2系統に分離

久しぶりにKIK01のファームウェアをいじりました。本体のKick音とゴーストとして使うNoise音を同期して出力していたのを、それぞれ別のGATE信号で出音できるようにしました。


mbed Repository
https://os.mbed.com/users/ryood/code/KIK01/ (Files at revision 41:ac576c48eace)

接続図

MIDI信号をMIDI_CV_CONVでGATE信号に変換してKIK01に入力しています。KIKとNOSは、TR-808/909のBDとOH/CHみたいな感じです。

32kHz付近のピークが気になるので、サンプリングレートを上げたかったのですが不可でした。

操作できるパラメータが多すぎて、自分で作っておきながら使い方がよくわかっていません(^q^;

NOS01はWhite/Pink/Blue Noise(PinkとBlueは疑似)を出力していますが、KIK01の箱の中の配線を変えないといけないのでリアルタイムに変更するのは無理です。

2019年2月21日木曜日

ACアダプター分配器を作りました。

たいしたものではないですが、ACアダプター分配器を作りました。

Arduino_LFOArduino_EGMIX0401など個別筐体のモジュールは電池(単3)で運用していますが、つけっぱなしにしているとさすがに電池の消耗が激しく、電池の廃棄量が増えてしまいます。

どれも電源電流は数10mA程度なので、1AクラスのやっすいACアダプターを源流に分配して使おうと思います。

ケース内部

安定化電源につないでテスト

MIX0401MIDI_CV_CONVArduino_EGに接続


電源電流

72mA~90mA程度

DC9VのACアダプタのGF12-US0913(定格1.3A)から電源を取っているので余裕そうです。

メモ:


ユニバーサル基板ではなく、平ラグ板で実装してもよかったかも?←ずっと使ってなくて余ってるのがある。

2019年2月17日日曜日

±12V_+5V電源 はんだ付け完了

Github
https://github.com/ryood/DASS01/tree/master/%C2%B112V_%2B5V%E9%9B%BB%E6%BA%90

Github(eagle)
https://github.com/ryood/DASS01/tree/master/eagle/%2B-12V_PSU

回路図

基板図

※Eagleのライブラリで7912の縦挿入のモデルが見つからなかったので平置きのモデルで代用しています。

OSコンは耐圧が16Vなので、ディレーティングのためデカップリングコンデンサはOSコンではなくアルミ電解にしました。

今回使用したアルミ電解は

C1,C2: ルビコンLZH 100uF 35V 105℃
C3,C4: ニチコンMUSE UKZ 470uF 25V 85℃

です。

部品面

ハンダ面

VT-60と接続

出力ノイズの測定


負荷抵抗を220Ω×2として出力ノイズを測定しました。

出力電圧
+12V +12.17V
-12V -12.07V


ch1:+12V ch2:-12V

ブレッドボードでの実験でOSコンで測定した時よりノイズレベルが大きくなってしまいました。なにか間違えてる気もしますが、ま、しょうがないかな。

メモ:


ブレッドボードでの実験中、100uFのアルミ電解を正負逆に接続したら「ボン!」という音とともにお亡くなりになりました。9V程度では逆接続しても一瞬で壊れることは経験したことがなかったのですが、15Vあたりになると即死するようです。(耐圧35V品を使用)

2019年2月16日土曜日

ピンセットを新調。 ホーザンP-894

はんだ付けに使っているピンセットがへたってきたので新調しました。


写真の上からホーザンP-88、へたったピンセット(詳細不明)、新調したホーザンP-894です。

へたったピンセットはいつ買ったかもわからないものですが、はんだ付けするときにハンダ面でリード線やすずめっき線を折り曲げるときに使っていたものです。

ホーザンのP-88は合わせは精密ですが、導線を曲げる軸として使うには少々やわで、ほとんど使っていません。やわいというかなんというか。

ホーザンのP-894は強力型と銘打っているだけあって、精密さを維持しつつたわまないと思います。

ピンセットを新調するにあたって候補としてあげたのは

  • エンジニア: 鉄腕ピンセット(のどれか)
  • ホーザン: ステンレス強力型(のどれか)
  • ANEX: No.200(近くのホムセンで売ってた)

です。

スペック的にはどれも変わらなさそうですが、ホーザンの工具の使いやすさ(精密さ、強度、軽さ、耐久性、サポートの良さの総合判断)には信頼を置いているので、今回はホーザンにしました。

どのみち1000円前後ですが、エンジニアの鉄腕ピンセットのAmazonのレビューを見ると「鼻の角栓抜きにちょうどいい」とか、用途が少し違う感じがしました。←ほんとか?

強力さ。



この100milのブレッドボード用ジャンパ線を抜くとき、普通のピンセットでは弾き飛ばされます。ピンセットで抜いて何本行方不明になったかわからないので、ミニチュアラジオペンチで抜くようにしていました。

が、P-894はしっかり保持できていて弾き飛ばされません。

ホーザンのピンセットは近くのホムセンには置いていなかったので、ヨドバシの通販で入手しました。ヨドバシの通販では翌日到着と書いてあったのですが、本当に注文翌日に到着しました(12時間ぐらいしかかかっていない)。クロネコヤマトさんご苦労様でした。

2019年2月13日水曜日

コモンモード・チョークとデカップリング・コンデンサ(メモ)

回路図

コモンモード・チョークも片側だけ見ればただのコイルです。L1とC1で2次ローパスフィルタになります。

コモンモード・チョークとコンデンサの仕様を見てLTSpiceでシミュレーションしてみました。

コモンモード・チョーク: SCHAFFNER EV20-1.0-02-3M9
デカップリング・コンデンサ: ルビコン・アルミ電解 LZH 100uF

シミュレーション回路図

L1はコモンモード・チョークの片側、C1はデカップリングコンデンサです。

Rslはコモンモード・チョークの内部抵抗(168mΩ)、Rclはデカップリング・コンデンサの内部抵抗(94mΩ)です。

R1はダンピング抵抗としてシミュレーションのために入れました。L1とC1の2次LPFのQをコントロールします。

RLは負荷抵抗で、RLの値によって出力電流が変化します。電源電圧が15Vなので、RLが10Ωだと1.5A、100Ωだと150mAの出力になります。

AC解析

ダンピング抵抗4.7Ω

青色の線が出力電圧です。

ダンピング抵抗R1が4.7ΩのときのAC解析です。カットオフ周波数fcはL1とC1の値から計算すると
fc = 1 / ( 2 * π * √(L1 * C1)) ≒ 255Hz
で、AC解析のグラフの肩のあたりと合致します。

ダンピング抵抗を入れないものとしてR1=0.1としてシミュレーションすると

ダンピング抵抗なし(0.1Ω)

Qがあがってカットオフ周波数でピークが発生します。

過渡解析


入力を+15Vで500kHz/1Vの矩形波のノイズを加えて過渡解析しました。

ダンピング抵抗ありR1=4.7Ω

ダンピング抵抗なしR1=0.1Ω

当たり前の話ですが、ダンピング抵抗(4.7Ω)を入れると出力が低下します。

低抵抗の世界は高周波の世界と並んで闇が深いと思いました。

無駄なことをしてしまいましたが、寄り道するのも楽しい。

<追記:2019.02.16>

ダンピング抵抗を入れるか入れないかを比較しやすいようにLTSpiceの過渡解析のグラフの縮尺を同じにしてシミュレーションしました。

ダンピング抵抗ありR1=4.7Ω

ダンピング抵抗なしR1=0.1Ω

比較すると、ダンピング抵抗を入れた場合(R1=4.7Ω)は振動が抑えられますが出力電流(赤色の線)が大きくなると出力電圧(青色の線)が低下します。

ダンピング抵抗を入れない場合(R1=0.1Ω)は、出力電流が小さい場合は初期の振動が大きく出ますが、出力電流が大きくなっても出力電圧はほとんど下がりません。

定常状態になるまでの時間がかかりますが、やはり電源ラインには無駄に抵抗を入れないほうが良いと思います。

</追記>

2019年2月11日月曜日

±12V_+5V電源の設計

DASS01では+5Vの電源は使わないので、±12Vの電源として製作することにしました。

DASS01のブロック図

回路図

基板図

※配線まだ

部品並べ

メモ:


16V定格の100uFOSコンに15V食わせるのはやめたほうが良いかも。出力段の470uFのOSコンも16V定格で12V。

普通のアルミ電解で定格の大きいものにすげ替えてどうなるか見てみる。

2019年2月10日日曜日

±12V_+5V電源の構想

DASS01用に電源を製作します。Eurorackの電源は±12Vと+5Vなのでこれに習って作りたいと思います。

スイッチング電源 VT-60 


ジャンク品で買ったDESNSEI-LAMBDA VT-60を温存してあるのでこれを使います。

VT-60の仕様

出力電圧 最大出力電流
+5V: 5A
+15V: 1.6A
-15V: 0.5A


±15Vなので、これを3端子レギュレータを使って±12V電源とします。+5Vの方はそのまま。

スイッチング電源ユニット(DESNSEI-LAMBDA VT-60)のノイズ測定」で測定したように、出力に結構ノイズが乗っています。

スイッチングノイズの周波数は、5V出力が625kHz、±15出力が180kHz程度で可聴帯域外なので放置しても良さそうですが、スイッチング方式のACアダプタにコモンモード・チョークを入れるとノイズが改善されたことがあったので(参考「コモンモード・チョーク・フィルターをACアダプタにかけてみる実験。」)、VT-60にも入れてみてノイズが改善されるかどうかブレッドボードで実験してみました。

コモンモード・チョーク(SCHAFFNER EV20-1.0-02-3M9)の仕様

L nominal(±30%) 3.9mH
DC resistance R 168mΩ
Rated current I(50℃) 1.0A
Weight 10g

±15V出力


正負電源それぞれに220Ωの負荷抵抗を入れてノイズを測定しました。


出力電圧

+15V +15.01V
-15V -14.97V


ch1:+15V ch2:-15V

ノイズの振幅は、+15Vが280mVp-p程度、-15Vが560mVp-p程度です。

±12Vの3端子レギュレータを通す


3端子レギュレーターの7812(ST/L7812)と7912(NJM7912FA)を入れて±12Vを出力しました。

ブレッドボード図

出力電圧

+12V +12.18V (誤差:+1.5%)
-12V -11.85V (誤差:+1.25%)

出力電圧に少し誤差が出ています。


ch1:+12V ch2:-12V

3端子レギュレータを入れただけでもノイズがかなり改善されています。縦軸を拡大(20mV/div)すると


ch1:+12V ch2:-12V

+12V、-12Vともノイズの振幅は50mVp-p程度になりました。

コモンモード・チョークを入れる


3端子レギュレーターの前段にコモンモード・チョークを入れました。



出力電圧

+12V +12.18V (誤差:+1.5%)
-12V -11.85V (誤差:+1.25%)

コモンモードチョークと3端子レギュレーターの間でデカップリングしたほうがいいかどうか迷ったので、100uFのOSコンでデカップリングした場合としない場合を比較しました。

※コモンモード・チョークと3端子レギュレータの間に100uFのOSコンなし

ch1:+12V ch2:-12V

※コモンモード・チョークと3端子レギュレータの間に100uFのOSコンあり

ch1:+12V ch2:-12V

さらにノイズの振幅が減って+12V、-12Vとも30mVp-p程度になりました。コモンモード・チョークと3端子レギュレータの間に100uFのOSコンを入れたほうがノイズが低減されるようです。

+5V出力


+5Vはコモンモードチョークありとなしを比較しました。

ブレッドボード図

470uFのOSコンでデカップリングのみ


デカップリングしてもノイズの振幅は500mVp-p程度残っています。

コモンモードチョークを通す


縦軸を拡大(20mV/div)すると


ノイズの振幅を120mVp-p~90mVp-p程度に低減できました。

メモ:


実装面積との兼ね合いもあるので少し考えます。

でも、アナログ回路の電源なのでできるだけクリーンな電源にしたいな~と。

VT-60の+5V出力は定格5Aなのにコモンモード・チョークが定格1Aなので制限を受けます。

5V出力は負荷の重さによって出力電圧が変動する?

2019年2月6日水曜日

MIDI-CV Converter MIDI_CV_CONVとNucleo_DCOで音階の周波数を測定

MIDI_CV_CONVにパソコン上のDominoから特定の音階をMIDIで送出し、MIDI_CV_CONVでCV値に変換後、Nucleo_DCOに入力してWaveSpectraで出力周波数を測定しました。

Nucleo_DCOは3OSCですが、OSC1のみSine波に設定して測定しました。OSC2、OSC3はLevel POTを最小にしてMIXされないようにしました。

Nucleo_DCOはADCを無効化できるようにしていますが、これは有効化して測定しました。(参考「DASS01のCV入力」)

ブロック図

Nucleo_DCOのRange


DominoからA2(NoteNuber:45)を出力し、Nucleo_DCOのRangeを切り替えてオクターブごとのA音をWaveSpectraで測定しました。

Nucleo_DCOでRangeの設定は以下の通りプログラミングしています。frequencyBaseは出力できる最低周波数です。

const double frequencyBase[FREQUENCY_RANGE_MAX] = {
//  A-1    A0    A1    A2     A3     A4     A5     A6      A7      A8
13.75, 27.5, 55.0, 110.0, 220.0, 440.0, 880.0, 1760.0, 3520.0, 7040.0
}

DominoでA2を出力

Nucleo_DCO Range:A-1

Nucleo_DCO Range:A0

Nucleo_DCO Range:A1

Nucleo_DCO Range:A2

Nucleo_DCO Range:A3

Nucleo_DCO Range:A4

Nucleo_DCO Range:A5

Nucleo_DCO Range:A6

Nucleo_DCO Range:A7

Nucleo_DCO Range:A8

Range 周波数(Hz) 測定値(Hz) 差(Hz) 誤差(%)
A-1 27.5 26.4 -1.1 -4.00%
A0 55 55.7 0.7 1.27%
A1 110 111.3 1.3 1.18%
A2 220 219.7 -0.3 -0.14%
A3 440 442.4 2.4 0.55%
A4 880 881.8 1.8 0.20%
A5 1760 1769.5 9.5 0.54%
A6 3520 3536.1 16.1 0.46%
A7 7040 7072.3 32.3 0.46%
A8 14080 14150.4 70.4 0.50%

測定値

誤差

MIDIノートナンバー


Nucleo_DCOのRangeをA3(220Hz~)に固定して、Dominoから送出するMIDIノートナンバーを1オクターブ分測定しました。

note # 周波数(Hz) 測定値(Hz) 差(Hz) 誤差(%)
A2 45 440 442.4 2.4 0.55%
A#2 46 466.1637615 468.8 2.636238482 0.57%
B2 47 493.8833013 495.1 1.216698744 0.25%
C3 48 523.2511306 524.4 1.148869399 0.22%
C#3 49 554.365262 556.6 2.234738046 0.40%
D3 50 587.3295358 591.8 4.470464165 0.76%
D#3 51 622.2539674 624 1.746032556 0.28%
E3 52 659.2551138 662.1 2.844886174 0.43%
F3 53 698.4564629 700.2 1.743537134 0.25%
F#3 54 739.9888454 744.1 4.111154577 0.56%
G3 55 783.990872 788.1 4.109128037 0.52%
G#3 56 830.6093952 832 1.39060484 0.17%
A3 57 880 884.8 4.8 0.55%

測定値

誤差

メモ:


純粋に楽器として見るとチューニングが怪しい感じです。詳しくはわかりませんが、A音が440Hzか442Hzかで問題になる業界もあるようです。

MIDI_CV_CONVで出力電圧の調整に使っているトリムのR5を多回転タイプのものにすればMIDI_CV_CONVの出力電圧の精度は上げられそうですが。

今回のテストでは、MIDIノートナンバーをMIDI_CV_CONVの12bitDACでCV(アナログ信号)に変換して、Nucleo_DCOでは12bitADCでCVをプログラムで扱えるように再びデジタル化しています。

DAC/ADCの精度や信号路のノイズなどを考えると、全体として調律の精度を上げるのは難しそうです。

きっちり精度を出すなら、MIDI信号をデジタル信号のままNucleo_DCOに渡せば良くなると思います。

Nucleo_DCOで直接MIDIのRXを処理するとか、MIDI→SPIのDigital to Digital Converterとか。