背景
M5Stackとは、ESP32というBluetoothやWiFiの通信ができる集積回路を利用し、LCD、スピーカー、電池などを備える装置です。このM5StackはLCDの更新を行うとスピーカーから「ジッ」という雑音(ノイズ)が聞こえる性質(不具合?)があります。
本体上部と電池が入っている下部を切り離して利用すると、より大きく聞こえます。
気になったので回路を調べて対応方法をまとめてみました。
他の対応方法があれば、コメントなどで教えていただけると嬉しいです。
使ったもの
M5Stack今回雑音対策を行う装置です。
音を止めるための道具として、対応方法に応じてどれかが必要です。
- はんだ + はんだごて
- ジャンパワイヤ
- ニッパー + テープ
- 六角レンチ + ハンダごて
スピーカーの回路と実装状況
M5Stackの回路図は2017年12月6日版がgithubで公開されています。https://github.com/m5stack/M5-Schematic/blob/master/Core/Basic/M5-Core-Schematic(20171206).pdf
回路図によると、音データを配信する25番ピン(GPIO25)は 100nF(0.1μF)コンデンサ -> オーディオアンプ(NS4148) -> インダクタ(?) という経路でスピーカーに接続されているようです。
アンプで雑音が増幅されていると思うので、25番ピンかAMP_PWRのどちらかに問題があると推測します。
AMP_PWRはEA3036という3チャンネルの電流管理ICから供給されているようでした。
上記の回路図の左上に注目すると「Test Break for Disabling Audio Amplifer(多分Amplifierのスペルミス)」(オーディオアンプを無効化するための試験用断線)とあります。
この回路図のT1を接続することで、オーディオアンプに電力が供給されなくなり、スピーカーから音が出なくなるようです。
M5Stackのオーディオアンプ、電源管理IC、試験用断線の場所を確認します。
今回注目する回路は、ボタンとアンテナの近くにありました。
試験用断線ははんだを盛り付けて接続可能なジャンパだったので、以後ジャンパと呼びます。
対応1: オーディオアンプへの電力供給を止めるためのジャンパを盛る
AMFという文字の横にあるジャンパをはんだで盛り付けます。ジャンパの直径は約1.5mmです。シールを焦がしましたが、盛れました。
ジャンパを盛り付けると電源ICからオーディオアンプに電力が供給されなくなり、雑音が消えました。
オーディオアンプが動いていないので、25番ピンを音出力以外の用途に使えます。
対応2: M5StackライブラリのSpeakerのbeginとmuteを呼ぶ
M5StackのArduinoライブラリでは、スピーカーから音を出すためのSpeakerという機能が提供されています。このSpeakerにはmuteという関数があり、それを呼ぶことで25番ピンの電位を下げて雑音を減らせます。
ただし、M5.Speaker.begin()を実行して25番ピンを出力モードで動かしておかないと、mute関数を実行しても変化が無いので注意してください。
下記のようにsetupで呼び出し、以後の処理で25番ピンを扱わなければ、LCD更新時の雑音を低減できます。
#include <M5Stack.h> void setup() { M5.begin(); M5.Speaker.begin(); // これが無いとmuteしても無意味です。 M5.Speaker.mute(); } void loop() { .. }
この方法は25番ピンを音量0のスピーカーとして動かしているので、他の用途には使えません。
対応3: 25番をGNDに接続する
ジャンパワイヤで25番ピンをGNDに接続します。耳を近づけると雑音を感じますが、何もしていないときと比べると雑音が小さくなります。
この方法は25番ピンはGNDに接続されているので、他の用途には使えません。
なお、雑音の音量は先ほど解説したSpeaker.begin + Speaker.mute を呼び出す方法の方が自分は少なく感じたので、 ソフトウェアを変更できるのでしたらそちらをお勧めします。
対応4: スピーカーの信号線を切断する
基板にはんだ付けされているスピーカーの信号線をハンダごてで溶かすて外すか、スピーカーの信号線をニッパーで切ります。25番ピンからの信号はアンプには渡りますがスピーカーには渡らなくなるので、この対応後は25番ピンを他の用途に使えます。
はんだ付けされた部分を溶かして外す
M5Stackをケースから外すとスピーカーがはんだ付けされている部分が見えるので、そこをハンダごてで加熱して取り外せます。今回紹介する方法の中で1番手間です。
スピーカーの復活を考慮すると、最初に紹介したジャンパを盛る対応をお勧めします。
六角レンチでネジ2本を外します。
基板をケースから滑らせて浮かせます。
LCDが接続されている関係で、あまり隙間はできません。
LCDの線をちぎらないように基板を起こすと、LCDとスピーカーのはんだ付けされている部分が見えます。
ここをハンダごてで加熱すれば、スピーカーを取り外せます。
ニッパーで切断
ニッパーで線を切るとスピーカーの復活が難しくなりますが、音機能を使う予定が無く、25番ピンを別の用途で使いたいのなら、最も手っ取り早い方法だと思います。黒と赤片方でも両方でも、スピーカーから出ている線を切れば音が出なくなります。
線が他のピンに触れないように、切断後は線の断面をテープかなにかで覆うのが良いと思います。
余談: 試したものの効果がなかったこと
- D25を3.3Vに接続する
LCDの更新時以外も雑音が発生する用になって、対応前よりうるさくなりました。
まとめ
紹介した方法の利点と欠点をまとめます。- オーディオアンプへの給電を止めるためのジャンパをはんだで盛る
利点: オーディオアンプが止まる分省電力化できる。持ったはんだをハンダ吸い取り線などで取り除けばスピーカーを復活させられる。
欠点: 1.5mmのジャンパを盛るという器用なはんだ付が必要。 - M5StackライブラリのSeakerのbeginとmuteを呼ぶ
利点: ソフトウェアで対応できる
欠点: オーディオアンプは動いているので、耳を近づけると雑音を感じる - 25番ピンをGNDに接続する
利点: ジャンパワイヤを挿すだけで対応できる。ジャンパワイヤを抜けばスピーカーが使える状態に戻る。
欠点: スピーカーへの信号を完全遮断はできていないので、耳を近づけると雑音が聞こえる。 - スピーカーのはんだ付けされている部分を溶かして外す
利点: スピーカーを別の用途に使える。
欠点: スピーカーの無効化も復活も、ジャンパとジャンパワイヤに比べると手間。 - スピーカーの線を切る
利点: ニッパーで切れば良いので、スピーカーの無効化がジャンパワイヤの次に容易。
欠点: スピーカーの復活が、信号線の修理から必要になるので、手間。
自分のお勧めは「オーディオアンプへの給電を止めるためのジャンパをはんだで盛る」方法です。
利点に挙げた通り、M5Stack省電力化できる上に、ジャンパのはんだを取ればスピーカーを復活させられるからです。
スピーカーを使わないのに雑音が気になる方は、都合の良い方法をお試しくださいな。
変更履歴
2020.03.15Speaker.begin + Speaker.mute で25番ピンをGNDに接続するのと同等の効果を得られることが分かったので、追記しました。
0 件のコメント :
コメントを投稿