PICを勉強する(電子ボリュームは実現するか?)の巻き。秋月電子の通販サイトをみていると、何種類かの電子ボリュームのICがラインアップに上がっています。@2500(結構高いですがハイスペックです。面白そうなので買ってみました。やってまた部品箱の肥やしになるんだろうな〜とりあえず買ってみました。部品箱の肥やしにならないようにしないと・・・・さて買ったのはいいけれど、コレらを動かすにはマイコンが必要になります。いままで電子ボリュームなるものは使ったことはありますが、H8マイコン(16bit)で制御をしていました。H8マイコンは大きいし、高いし・・・。入力電圧をボリューム値(R−2Rの設定値)に変換する巨大なテーブルを持つ必要もあったのでH8マイコンがさほどオーバースペックという感じませんでした。いくらなんでも150円の電子ボリュームにH8マイコンはないだろうな〜ということで、ここいらでPICを勉強してみようと思います。それにPICあたりのマイコンが自由につかえるようになると、今後の自作の幅も広がるというものです。32BitDACのPCM1795もマイコン制御が前提になっていますから、これらも使えるようになりますしね。PICの使用環境をそろえる!PICライターは秋月電子で購入しました。実は、このライターを買うのは2回目です。基板もどこか行方不明に。ジャンク基板類の整理時に一緒に捨てちゃったんでしょう。このときもサンプルプログラムをつかってLEDの点灯だけを試した記憶があります。動いた!!まずはライターに付いてきた附属のPIC16F84Aをつかって、サンプルプログラムを書き込んで動作することを確認してみました。あたりまえといえば当たり前です。サンプルプログラムを動かしてみました。PICの勉強には・・・さて、PICを本格的に勉強するには解説書があると便利です。街の本屋で探すと色々とでてきますが、なにかよさげなものがみあたりません。何が物足りないかといえば、どれも「まずは作ってみよう」みたいな感じでのものばかり。PIC自体を理解するための詳しい解説なるものをしたものがありません。いうことで、まずはPICのデータシートを読んでみることにしました。そのICのマニュアルを読むということが基本になるでしょう。選んだPICはPIC16F819なるものです。これは雑誌によく出てくる、PIC16F84AにADコンバータが搭載された高機能品です。これがつかえるようになれば、多くのアプリケーションにもつかえるでしょう。それに秋月では@180円と安いです。実はメモリー容量の小さいPIC16F818の方が200円と高かったりすので、おそらく16F819あたりが売れ筋なんでしょう。これが使えるように頑張ろう!マニュアルは全部で174ページです。英語ですが難しい英語ではないのでパラパラと斜め読み・・・。ほう、いままでつかったZ80やMC68Kなどとは全く思想がことなります。組み込み用マイコン専用につくってあることがよくわかります。IO制御が充実しているわりには、RAMのアドレッシングが非常に貧弱です。そのため行列などの数値計算などにはまったく向かないです。組み込み用なら外部変数をさほど配置する必要はないので、いらないのでしょう。マニュアルを一通り眺めて、なんとなく使い方が分かってきたような気がします。分かった気になったことと、使えることとはまったく違いますよね。これからが長い道のりです。不退転の決意のために!!まずは、PICがつかえるようになるということを前提にしていっそのことハードウエア(基板)をつくっちゃえ!そうすれば、勉強をしようというドライビングフォースがかかるでしょう(笑)。いうことで、作る基板は手にした電子ボリュームICにあわせて3種類を描いてみました。1.NJW1159Dをつかった電子ボリューム版お気楽ヘッドホンアンプアンプ部の構成はオペアンプにボルテージフォロアーのドライブ段をつけたシンプルなヘッドホンアンプです。以前にリリースしたディスクトップシリーズのお気楽ヘッドホンアンプと同一回路です。NJW1159の動作電圧範囲は7.5VまでなのでLM317/337で基板内で降圧回路がはいっています。NJW1159Dをつかった電子ボリューム付きヘッドホンアンプ2.LM1972Mをつかったシンプル電子ボリュームバッファーアンプはシンプルにデュアルのオペアンプを用いてみました。出力にはMUTE用のリレー回路を入れています。LM1972の動作電圧範囲が7.5VまでなのでLM317/337で基板内で降圧回路がはいっています。LM1972Mをつかったシンプル電子ボリューム。3.MUSES72320をつかった高精度電子ボリューム高精度とありますが、使用するICがMUSESシリーズのオーディオに特化したものをつかうので、このようなネーミングにしています。出力にはMUTE用のリレー回路を入れています。MUSES72320をつかった電子ボリューム。ハイエンドプリにつかえるかな?さてさて、まずは基板を試作しておきましょう。その間にPICを使えるように勉強です。ありゃりゃ!2011.2.19週末に基板が納品されるかと思いきや、配送トラブルのようです。次の週末のお楽しみです。本日出荷分の基板は、製造は問題なく完了し、現地より輸送しておりました。輸送の航空便が、到着地の成田空港付近が悪天候(強風)のため、到着が大幅に遅れてしまいました。本日、出荷センターに届かないため、出荷することが出来かねてしまうことが判明致しました。出荷の方が、最速で2/21(月)になってしまいます。2011.2.23待ち人きたる、って感じです。電子ボリューム3兄弟です。LM1972Mをつかったシンプル電子ボリュームこれが構成的には一番、基本になるような気がしています。製作する順番としては、電源部からです。LM317/337をつかった定電圧部を組み上げて所定の電圧(正負6V)が出ることをまずは確認しました。電源でトラブルと、下流の回路が一気にやられますから、まずは電源部のチェックは重要です。電源部を組み立てて動作確認。電源部の確認がとれたので、あとは残りの部分を一気に組み上げました。PIC16F819は何度も取り外すことになりそうなので、その近くの電解コンデンサは未実装です。これがあると、ピンセットが横から入らないので、はずすのが難しくなります。コンデンサの色が地味ですね〜。MUSEの両極性あたりを使った方が鮮やかだったかな(笑)。LM1972をつかった電子ボリュームがまずは組上がりました。一気に全回路を組み上げました。電子ボリュウム版が完成!ここいらで、ソフトの動作確認にはいりましょう。お気楽ヘッドホンアンプについては、とくにMUTE回路は入れていません。これは、お気楽という意味もあるので、ヘッドホンや小型のスピーカを接続することを考えれば、少々のポップノイズはいいかな〜という考えです。シンプル電子ボリュームについては、アンプに直結することを想定してMUTEリレーを実装しています。今回の制御ソフトでは、電源ON/OFFのポップノイズを出さないことを念頭にすこし工夫しました。電源ON時には一定時間(1.5sec)経過した後にMUTEリレーをOFFにします。難しいのはリレーを切るタイミングです。リレーが切れるのが遅れると、ポップノイズが出てしまいます。そこで、PICでアナログ部の電源電圧を監視して、定常値より5%低下した時点でリレーをOFFにするようにしました。電源OFF時から電圧の降下はコンデンサが大きいとそれなりに時間がかかりますから、その間にリレーをOFFにしてやろうという算段です。(MUSES72320)も作ってみました。2011.2.26NJW1159Dをつかった電子ボリューム版お気楽ヘッドホンアンプまずはお気楽ヘッドホンアンプ(電子ボリューム版)から動作チェックを始めました。ソフトで重要なポイントはボリュームの減衰カーブをどのようにするかです。NJW1159Dは0〜-95dBを1dBステップで減衰制御が可能ですが、ボリューム出力を単純に割り当ててしまうと、ボリューム位置が12時(真上)時においても-48dBとかなり大きな減衰になるので、音量がはとんどあがりません。そこで、ボリュームツマミが12時の位置では減衰量が-35dBになるように設定しました。少なくとも8時の位置では音が聞こえ出すように8時の位置で-75dBになるように設定しました。結局のところ、減衰曲線は3つの折れ線で構成することにしました。特性をすこし調べてみましょう。実は電子ボリュームというのは高周波特性がものすごく期待できます。いうのも、通常のボリュームをつかうと配線長が長くなったりして周波数特性を上げることが出来ない場合があります。(といってもオーディオ帯域では無視できるでしょうが)。実際に測った結果は下図のオシロ写真からわかります。オーディオ帯域の20kHzでは減衰無しです。100kHzでもほとんどふらっとです。-3dBの周波数は約370kHzです。オーディオ用としては十分ですが、少し低いような気がします。ヘッドホンアンプの回路の周波数応答の問題かもしれません。特性的には全く問題ないですね。100kHz(上:出力、下:入力)370kHzで−3dB(上:出力、下:入力)いよいよ試聴!お気楽ヘッドホンらしく、入力ソースはPCM2704をつかったUSB−DACを接続しました。ヘッドホンは愛用のオーディオテクニカのATH−W10VTGです。ノイズもなく、ボリュームの操作感覚もいいです。このボリュームICが150円で手に入るのは驚きです。試聴時の構成LM1972Mをつかったシンプル電子ボリュームつぎはLM11972をつかった純粋な電子ボリュームです。出力はオペアンプによるフォロアーとしています。ゲインを持たせることも可能ですが、ここはシンプルに構成しました。LM1972は0〜-78dBを1dBあるいは0.5dBのステップで7bitの減衰制御が可能です。0〜-48dBは0.5dB,−78〜-48dBは1dBのステップになっており、ボリューム出力を単純に割り当ててしまっても問題のない操作感覚になりそうです。いうことで、単純にAD変換値(10Bit)を8で割った数値を割り当てるだけです。いい周波数特性をもっています。オーディオ帯域ではまったく問題ありませんし、1MHzでもほとんど減衰ありません。これって計測用途につかっても面白いICかもしれません。3MHz(上:出力、下:入力)いよいよ試聴!こちらも入力ソースはPCM2704をつかったUSB−DACを接続しました。こちらもノイズもなく、ボリュームの操作感覚もいいです。気にしていたのが、MUTE時は-100dBですが、最大の減衰量が-78dBなので、MUTE状態からいきなり音がでるのでは?と思いましたがそんな懸念は払拭されました。スムーズに音が立ち上がってきます。電源ON時のMUTEリレーの動作もここちいいです。試聴時の構成MUSES72320をつかった高精度電子ボリュームさて、トリは高精度電子ボリュームです。@2500円の比較的高価な電子ボリュームICに加えて、出力アンプはディスクリ構成としています。NJW1159Dと同じようにしました。ボリュームツマミが12時の位置では減衰量が-35dBになるように設定。8時の位置で-75dB。それ以下では-111dBまで連続して減衰するように設定しました。減衰曲線は3本の折れ線で構成しています。周波数特性オーディオ帯域の20kHzでは減衰無しで、100kHzでもほぼフラットです。アンプ回路には位相補償用のコンデンサをいれているので、-3dBの周波数は約310kHzとなりました。オーディオ用としては十分です。100kHz(上:出力、下:入力)310kHzで−3dB(上:出力、下:入力)いよいよ試聴!やはり高いだけあって音の立ち上がりもスムーズです。プラシーボ全開かな(笑)。アクセサリーもつくってみました。ボリューム量のLED表示もあると面白そうなのでつくてみました。前作の電子ボリュームではシフトレジスタ(74HC4094)をつかいました。これも簡単でいいのですが、一つ難点があって制御線が3本必要になります。電源を入れると全部で5本。配線が多くなるのですこし面倒です。それに、4桁も必要でないので、配線がすくなくなるようにシリアル転送で行うことを考えてみました。使用したのはアノードコモン型の7セグメントLEDです。部品箱にあったものですが、最近ではもっと高輝度のものがあるので少ない電流で動かせそうです。PIC大活躍!折角なのでPICをつかいました。配線が面倒なので、LEDの足に直接抵抗を取り付けて最寄りのPICのIOピンに接続しました。あとはソフトでなんとかしていきます(笑)。配線図はこんな感じです。LEDの裏側にPIC16F819をとりつけました。PICのみの簡単なハードです。ソフトを書き込んで動作確認です。無事に動き出しました。配線が3本で済むので便利です。電子ボリュームのコントロールソフトにこの表示器のための信号出力ソフトを組み込むことにしましょう。表示は0(MUTE)〜80(最大)です。操作量と表示量がことなると、違和感がでそうなのでボリュームツマミに比例した表示出力にすることにしました。電源2本と信号線1本で表示できるので配線も楽そうです。基板にしてみると、こんな感じでしょうか?でも、わざわざ基板にするまでもないな〜という気もします。基板にするとこんな感じです。いうころでプログラム済みのPIC16F819をつかってユニバーサルで組んでみました。面倒ですが、難しいことはないようです。基板があれば、便利だけど・・・・こんな感じでできあがりです。