t-yosh’s blog

元ソフトウェアエンジニアが、モノづくりについて学んでいるブログです。モノづくりに必要なハードウェア・ソフトウェア・デザインのことを書いています。

M5Stack analogRead() ノイズ問題(20180407解決)

M5Stackを使用して、交流の電流を測ろうとしています。

秋月電子で売っている電流センサーを使って電圧変換したアナログデータをESP32のArduino開発環境でanalogRead() して波形情報から計算させています。

ここで問題が発生していて、M5Stackにはスピーカーがついているのですが、analogRead()すると、大きなノイズ音が発生しました。

サンプルのアプリケーションでも起動音にノイズが混じっているので、何かありそうではあったのですが、早くも問題ありです!

スピーカーを使用しないので、外してもよいのですが、線を切っちゃうのも乱暴なので、原因を探ろうと思います。

ソフトの設定なのか、ハードの問題なのかわかりませんが、ひとまずハードを見ようと思っています。

こちらのリンクを見ると、スピーカーはGPIO25に接続されているようです。

f:id:t-yosh:20171228223308p:plain

http://www.m5stack.com/assets/docs/index.html

GPIO25がSPEAKERと書いてあります。

回路図はM5StackのDownloadコーナーにあります。回路図にAUDIO AMPLIFER という項目がありました。

f:id:t-yosh:20171228230110p:plain

http://www.m5stack.com/download/M5-Core-Schematic(20171206).pdf

 

f:id:t-yosh:20171228234154p:plain

GPIO25とAudioAmpのNS4148の回路部分

NS4148の仕様書は検索すると出てきます。

http://www.chipsourcetek.com/Uploads/file/20151207193630_0605.pdf

上記の回路は推奨回路にだいたい同じで定数なんかが少し違います。

で、どうするか。。。。

ひとまずGPIO25をグランドにつないで大きな音はならなくなりましたが、まだ耳を近づけると音が鳴っています。

PGNDとGNDとかも気になりますが。

 

引き続き、調査が必要ですが、誰かに相談しないとわからないような感じがしてきました。。。

 

< 追記180405 ESP32の掲示板に気になる書き込み。>

尚、スピーカーから異音が出る場合は 以下の場所に dacWrite(25, 0); を追加してください。
void setup(){
M5.begin();
dacWrite(25, 0); // Speaker OFF

 

上記の dacWrite(25,0)を試したら、大きなノイズは消えました。(書き込みしてくれた大野さん、ありがとうございます。)

若干の音(すごい小さな音でサー、という音)はまだ残っていて、音のない環境で気になる程度でした。