桜のはなびらどっとねっとロゴ

桜のはなびらどっとねっと

Arduino Unoで電子ボリューム(LM1972M)を動かす

ご無沙汰しております。

先日の記事でもお話ししました通り、燃えてしまった電子ボリュームの部品が手に入りましたので。今回はArduino Unoで電子ボリュームを動作させたいと思います。

↑そういえばこの辺りに広告が出るのですが、スマホだとこの直下のリンクが押せない場合があるようです。その場合はPCサイトモードなどを使ってPCサイトのほうを表示させてください。そうすれば押せるようになります。(そのうち直します)

実は今までArduinoで電子ボリュームは新日本無線のNJW1159Dを使っていましたが、秋月での販売も終了したようで、入手性が悪くなってきました。そこで今回は新たな電子ボリュームとしてテキサスインスツルメンツ社製の電子ボリュームIC、LM1972Mを使った電子ボリュームを作ってみたいと思います。

なお、今回は電子ボリュームの基本的な動作の仕組みや用途などは割愛させていただきますので、前回の記事をご覧になるか、ほかの詳しいサイトを参考にしてください。

用意するもの

  • 電子ボリュームIC LM1972M(Ti)
    今回の主役。SPI命令で制御でき、デイジーチェーン接続で複数のICを同時に制御可能。
    秋月で1個300円と少し高めだがお手頃価格ではある。
  • SOP→DIP変換基板 20ピン以上
    SOPのパッケージなので、ユニバーサル基板で扱いやすいように変換します。
    自称人間で実は工作機械な表面実装部品を素手でユニバーサル基板にはんだ付けしている人以外は変換基板を使うのがベストです。
  • 連結ソケット(両オスピン。変換基板にあったもの。)
    合えば何でもいい。以下下駄と表記。
  • 電解コンデンサ(すべて2個ずつ 耐圧は16~25Vくらいで。)
    4.7μF(入力カップリング ICデータシートでは1μF)
    10μF(OPアンプ手前に設置)
    470μF(電源平滑用)
  • セラミックコンデンサ
    0.1μF×4個 パスコン。Vdd 2か所とVss 2か所に設置。音質にかかわらないところなのでセラコンでOK。
  • JFET入力のOPアンプ(1倍で使えるもの)
    今回はボルテージフォロア回路を構成し、増幅はせず単純なバッファーとして使用します。
    なので利得が低いと発振してしまうようなOPアンプは使えません。使いたければ抵抗を追加して10倍程度の増幅を行ってください。
  • 8ピンの丸ピンICソケット
    OPアンプを交換可能にするのであれば必要。
  • 2kΩの抵抗
    デイジーチェーン接続終端のDATA-OUT端子とLOGIC GNDに接続する。なくても死にはしないがDATA-OUTピンが浮くからほかのピンや機器にノイズが載るよ!っていうことらしい。
  • 何らかの±5Vの電源。
    DC-DCコンバーターでもレールスプリッターでもなんでもよいので安定した5Vの両電源が供給できるものを用意してください。最悪抵抗分圧でもよいです。LM1972の定格がP-P 4.5~12V、一般的なOPアンプの定格が±5V前後なので、5Vの両電源か、10V~12Vの電源を分圧して使いましょう。
  • 半田吸い取り線
    表面実装部品のはんだ付けに使います。

その他接続用のコネクタ類や基板などは予算や都合に合わせて適当に。基板は秋月のC基板のサイズで十分乗ります。(ジャンパーは必要。)

部品構成

下からメインのIC、変換基板、下駄。

ICはLM1972M。SOP 20ピンで1.27mmピッチです。

変換基板は秋月に20ピン向けがないので、28ピンのものを使います。手に入るなら20ピンを使ったほうがいいです。変換基板は秋月以外には20ピン用もあるみたいですが、別に余ったピンを使わなければよいのと、基板だけのために余計に送料がかかるのもあほらしいので、今回は28ピンの基板とそれに合う下駄を買いました。秋月の基板にも2種類ありますが。今回はシールドパターンの入っているこのタイプを買いました。

しかし、この基板のパターンは写真でもわかるように28ピンと14番ピンにそれぞれついていて、シールド側は14番であり、ICが全く触れないピンなのでほとんど意味をなしていません。28番に相当するピンに関しても、IN2がきますので、予期せぬノイズ混入も考えられるため、個人的にはもう片方のシンプルな方をお勧めします。まぁオフセットして28ピンと14ピンをGNDに接続してあげるという方法もありますが。

LM1972のデータシートを見ると、GND ACピンはどこにも接続されておらず、これらと隣接する信号線にパスコンを接続することでクロストーク特性が向上するらしいということが書いてあります。しかし、音声ラインにまでつけてしまうとどうも音質に影響を与えてしまいそうなので、電源に隣接するAC GNDに0.1μFのコンデンサを配置し、ほかは単に電源のGNDに接続するだけにしました。

0.1μFは音質には影響がなく、ノイズ除去を目的としますから、高周波における周波数特性の優れたセラミックコンデンサを使います。Vssの隣のAC GNDはピンを一つまたがないといけないので、写真のような5mm幅で足が曲げられていて2.54mmピッチを謳っているタイプなら、足を伸ばすことでジャンパ代わりにもなりますのでこの写真のタイプがおすすめです。

次に入力カップリングのコンデンサは、仕様書では1μFが指定されていますが。手持ちの4.7μFを使いました。

ここは音質にモロに影響しますので、最低でもオーディオ用の電解コンデンサを使いましょう。また、可能な限り無極性を使ってください。

次に、写真はにありませんが、作成途中でOPアンプの前に10μFの電解コンデンサを±の電源の双方に追加しました。

電源直下には、電源平滑用として470μFの電解コンデンサを配置しています。これはただの平滑用ですのでグレードは問いません。ただし耐久性を考えると最低でもルビコンなどの日本企業が作っているものを。可能な限りOSコンやオーディオグレードを使うと良いでしょう。それよりも重要なのは耐圧で、あまり大きすぎると載りませんのでご注意ください。

仕様書にJ-FETのOPアンプをバッファで使うといいよ!って書いてあったので。J-FET入力系OPアンプとしてNJM2082Dを採用しました。

丸ピンソケットに差し込んで取替が効くようにしています。なお、今回のOPアンプはボルテージフォロア回路として使いますので、特別周辺部品は必要ありませんが、LM1972の作例を見ていると結構電子ボリュームとの間の電源間にコンデンサを挟んでいる作例がありましたので。電源端子とGNDの間に10μFの電解コンデンサを挟んでいます。(上の10μFの電解コンデンサがそれ。)それ以外は-INPUTと出力を短絡させるだけなので超簡単です。

OPアンプの選定に関しては、電源が動作範囲で、特に利得の指定がないものであればどれを選んでも良いと思います。おそらく大半のOPアンプが利用可能かと。

たとえばここをヘッドフォンアンプの構成にするともっとたくさんのICが使えますが。今回はあくまでバッファとして使うのでこれで良いです。

メイン基板はいつもの秋月の小さいやつ。Cタイプ基板でコンデンサさえ選び間違えなければすべての部品が載ります。

しかし、今回結構立体配線やジャンパを行いましたので、両面スルーホール基板などを使用するほうがいいかもしれません。

基板に関しては入手できるものでよいと思いますが、基板には紙ベースとガラスベースがあり、ガラスのほうがしっかりしている印象を受けますし、見た目もよいのでガラス基板をお勧めします。

回路図

ほぼ取説の説明通りの部品がくっついているだけのものですが。

いつもアップしている回路図はBSchを使っていますが。今後これ以上高度化するとユニバーサル基板では問題が出る可能性がありますので、今回は基板制作も視野にKicadを使ってみました。BSchになれているとなかなかうまくいかないところもあるのですが、まぁまぁですね。

回路図ではDATA-OUTに2kΩの抵抗がつながっておりますが、これは単体で使う構成で書いているので、複数つなげる場合はここに次のLM1972のDATA-INをつなげます。

基本的にはこの回路図のとおりにつなげばよいのですが、GNDは信号が通る順に接続し、LOGIC GNDとほかのGNDは別にするべきです。図面右側にある青枠の部分の順序でつなげば問題ないと思います。間違えても多分燃えませんが可能な限りこの順序にしてください。LOGIC GNDを一緒にしてしまうとICが燃える可能性があります(実際燃えました)

しかし、燃えた原因はいまいちよくわからなくて、この前と構成はほぼ同じでここだけ違いますので、これだろうというのが正直なところです。

製作

まずはメインICの基板を作ります。

完成予想図としてはこのような形になります。今回は左詰めで使いました。

 

SOP ICのはんだ付け作業

1.27mmピッチは比較的大きめとはいえ一般的などこのご家庭にもあるようなはんだごてとはんだでは太すぎて取り付けづらいです。そこで、ある程度ワイルドにはんだ付けをした後、半田吸い取り線で余ったはんだを吸い取るという方法を取ります。

この方法で注意しなければならないのは、いくらあとで半田吸い取り線を使うといっても、IC下のパターンにはんだが流れ込んでいては取り除けない可能性があるので、おおざっぱにやるとはいえ隣の足と団子になる程度に収めておいてください。

まず対角で1ピンはんだ付けし、すべてのピンが載るところで固定します。ここできちんとすべての足がパターンと一致していることを確認しないと、後々修正が厳しくなるので注意が必要です。

すべての足へのはんだ付けが完了しました。

次に半田吸い取り線を用意し、余ったはんだを吸い取ります。吸い取った後はなるべく明るい光にかざしたり、ルーペを使用するなどしてほかにはんだが流れ込んでいないことや、取り残しがないことを確認します。

キレイにはんだ付けができました。なお、小手先の細いこてや、細めのはんだがある場合はそれを使ったほうがいいと思います。

今回は大きめのコネクタを使ったので実装面積的に余った部分をカットしました。

基板のカットは定規をあててカッターなどで切れ目を入れた後、ラジオペンチなどでこじってやると比較的失敗が少ないです。(全くないわけではない)

LM1972Mは、電源端子が、合計で4か所あるのですが、マイナス側(Vss)の電源のみなぜか1つの反対側に存在しているので、マイナス側のコンデンサのみ、下駄の足を利用して変換基板側に実装しました。紫色の線はジャンパです。

もう片方のマイナス側はGND ACとVssの間に出力ピンがあるので部品構成のコンデンサのところでも話したように足が曲げられて2.54mmピッチになっているセラコンを1本のみ足を延ばしてはんだ付けしてジャンパ替わりにします。

このように取りつきました。

こんな感じになりました。

あとは周辺部品を取り付けていくだけです。

部品の位置決めをして

完成……。といいたいところですが、最初にふれたとおりこの後OPアンプ周りの回路を修正しました。

最終的な構成。10μFのコンデンサが電子ボリュームとOPアンプの間に追加されて電源のジャンパーが変更されています。色が違うのは単純に紫のリード線がなくなったためで特に深い意味はありません。

真上から見た写真。

裏面の配線。相変わらずの汚さ。

動作確認

Arduinoと適当なスピーカーをつないで動作確認を行います。無事音量変更ができているようです。

コーディング

このICは特別なコードを書く必要もなく、単にデータをSPIで飛ばしてやればいいだけなので簡単です。

バイトオーダーはMSBファースト、SPI_MODEは3で動きます。

データ構成は16bitで最初にチャンネル指定を8bitで送りまして、次に音量設定を送ります。これを2ch分行うことで両方の音量を指定できます。仕様書を見るとチャンネル3があるようですが、これを指定しても両方一気に変わったりはしないようです。(LM1973という3chのデバイスがあったっぽい)

音量のステップは0~47.5までが0.5dBステップ、48~78dBまでが1dBステップとなっていまして、数値にして0~95までが0.5dBステップ、96~126までが1dBステップ、127がミュートの100dBの減衰ということになっています。実使用では78dBも100dBもどちらも無音状態なので、実質96~127が1dBステップと考えてコーディングして問題ないと思います。

1dBステップに統一するなら0~95までを2倍で加算していき、96からインクリメントしていけば問題なく、そもそも実際の聞こえ方を考えるとすべて2倍の64ステップにしてしまってもよいと思います。

チャンネルの数値は1chが0、2chが1となるようで、この数値と音量データの2バイトをICに流してやればよいようです。

サンプルコード

テストに使用したサンプルコードはこんな感じです。

単純にだんだんとフェードアウトさせ、無音になったらまた大きくするという処理です。特に難しいことはしていません。

あとはこれにAD変換でボリュームの抵抗値を読んだり、ロータリーエンコーダーを使用するなどして音量を決定させるプログラムや、液晶を制御するプログラムなどを追加してやれば立派な電子ボリュームになると思います。

なお、当サイトでの記事に使えそうなものは以下のものがあります。

終わりに

今回は表面実装部品ということで、作成のハードルは上がりましたが、このIC自体が単電源でも動くことや、マイコンで動かせる範囲の電圧でよいことなど、前回に比べると制約が少なく、コード自体も変わらないので使いやすいICとなっていると思います。

音質に関しては、まだ詳しい評価はしていませんが、とりあえず画像のスピーカーをつないでみた感じではそこそこ良い感じのようです。この辺りは、この基板は前回のパワーアンプに組み込む予定で、その時に一緒に評価したいと思います。

とはいえグレードを考えると悪いわけないと思いますが。

しかしあれですね。最近はDIPパッケージのICが軒並み生産終了になったり、そもそも最初から用意されていなかったりと。最初に半田ごてを握った20年前や、10年前に比べても電子工作のハードルが上がったように思います。セカンドソース品などではまだまだDIPや大型部品もありますが。今後はやっていくであろうラズベリーパイやArduinoを使った電子工作やIoTを視野に入れた場合は最悪でもSOPのパッケージは切り離せそうにありません。

そうなってくると変換基板があればよいが、なければ自分で基板を起こすか、工作機械並みのはんだ付けスキルを身に着けるしかなく、初心者には手を出しにくい分類になってくるなと。初心者の入門用として人気の高かったラジオもいつまで放送自体が続くかもわからないしね。

次回予告ですが、まだ決めていません。実は買ってからそのままの部品もいくらかあるし、アンプも内部部品は完成できるほどの部品はあるので。その中から考えたいと思いますが、何分リアルが忙しいのでちょっと時間がかかるかもしれません。

それでは。

コメントを残す

メールアドレスが公開されることはありません。