ArduinoでJRCのハイエンド電子ボリュームで有名なMUSES72320の制御をしたので備忘録として残します。
使用したのはArduino Nanoです。Unoとほとんど同じ機能ですが、非常に小さいのが特徴です。何をしたかったかというと自作アンプに組み込みたいという事です。
海外の記事や他のJRCの電子ボリューム制御の記事を見る限りSPI通信で制御するのが一般的なようですが、IO直叩きで制御しました。
A0につないだ5kの可変ボリュームから実際の減衰量を制御しています。
※注意
減衰量のマッピングを無視しています。変な減衰の仕方をしますが試作コードなんで許してください。そのうち修正します。
ピンアサイン
D2 → DATA
D3 → Clock
D4 → Latch
A0 → 5k可変ボリューム ショート防止に1k追加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
int vol_data = 2;//D2 -> DATA int vol_clock = 3;//D3 -> Clock int vol_latch = 4;//D4 -> Latch int pulse_wait = 80;//Pulse wait time void volWrite(int volnum, int ch_flag){ int voldata[16]; int i = 0; for (i=0;i<8;i++){ voldata[i] = bitRead(volnum,7-i); } voldata[8] = 0; voldata[9] = 0; voldata[10] = ch_flag; //1 is Right.0 is Left voldata[11] = 0; voldata[12] = 0; voldata[13] = 0; voldata[14] = 0; voldata[15] = 0; digitalWrite(vol_latch,HIGH); digitalWrite(vol_clock,HIGH); delayMicroseconds(pulse_wait * 2); digitalWrite(vol_latch,LOW); delayMicroseconds(pulse_wait); for(i=0;i<16;i++){ digitalWrite(vol_data,voldata[i]); //Volume set delayMicroseconds(pulse_wait); digitalWrite(vol_clock,LOW); //Volume Cap delayMicroseconds(pulse_wait); digitalWrite(vol_data,LOW); delayMicroseconds(pulse_wait); digitalWrite(vol_clock,HIGH); delayMicroseconds(pulse_wait); } delayMicroseconds(pulse_wait * 2); digitalWrite(vol_latch,HIGH); delayMicroseconds(pulse_wait); } void setup() { // put your setup code here, to run once: delay(1000); pinMode(vol_data, OUTPUT); pinMode(vol_clock, OUTPUT); pinMode(vol_latch, OUTPUT); delay(1000); digitalWrite(vol_latch,HIGH); digitalWrite(vol_clock,HIGH); digitalWrite(vol_data,LOW); delay(100); } void loop() { // put your main code here, to run repeatedly: int volnum = 0; volnum = analogRead(0) / 5; if ( volnum == 0){ volnum = 1; } volWrite(volnum,0);//Left channel volWrite(volnum,1);//Right channel } |
MUSES72320は高性能ですが非常に高いという難点があります。
秋月電子様で1個2500円です。
80万とかのアンプに使われるチップだから仕方ないですけど。
あとオペアンプも別途必要なので回路的にもめんどくさい仕様となっていますが、好きなオペアンプを使えるのでLME49990とか組み合わせるとかなり低ノイズで良いのができるのではと思います。
上手く制御できなくておもいっきりはまりましたが、オシロスコープのプローブがおかしかったという罠でした。
Tektronixのプローブも劣化するということと、安物プローブはすぐ壊れるということを痛感しました。