Armadilloフォーラム

armadillo610におけるサウンド再生

j_rod

2022年1月19日 16時17分

armadillo610におけるサウンド再生につきまして

https://armadillo.atmark-techno.com/howto/mqs-a640
上記のHowtoに準じて自社ボード上にて
MX6UL_PAD_GPIO1_IO00__MQS_RIGHTのピンより
アンプICを介してモノラル再生を行っております。

Howtoに倣いaplayコマンドで音声を再生しているのですが
音声の最初と最後に「プツッ」というポップノイズが乗ってしまいます。
再生データに問題があるのかと思い完全無音のwavデータを作成しaplayで再生しましたが
やはり最初と最後に「プツッ」という音が鳴ります。

ユーザーランド上にてアンプICをEnableにしたタイミングで
スピーカーより「サー」というホワイトノイズは聞こえる上に
ボリューム設定に追従してホワイトノイズ音量も上下するため、
再生の度にアンプごとon/offしているのではないと思いますが
冒頭のHowtoの試行環境では再生前後のポップノイズは発生していましたでしょうか。
「aplay -l」の出力結果はHowtoに記載されている結果と全く同じ内容が出力されています。

またUbuntuの文献でしたが
「/etc/modprobe.d/modprobe.conf」にpower_save=0と記述すると抑制されるというのを見つけ
「options mqs-audio power_save=0 power_save_controller=N」と試行してみましたが改善しませんでした。
このように常に何らかのサウンド状態をアクティブにするような設定が別に存在したりはするのでしょうか。

何か過去の事例や情報等ございましたらご教示いただきたく思います。
よろしくお願いいたします。

コメント

at_akihito.irie

2022年1月24日 11時14分

入江です。

> 冒頭のHowtoの試行環境では再生前後のポップノイズは発生していましたでしょうか。

Howto執筆時には小さなスピーカーを使用していたため、ポップノイズまで確
認することはできませんでしたが、当方でもポップノイズが発生することを
Armadillo-610 + 開発セット同梱の拡張ボードで確認できました。

お客様の現状を確認させていただきたいので、使用されているアンプICを教え
てください。また、周辺回路は使用されているアンプICの推奨回路に従ってい
るか再度ご確認ください。

Armadillo-610開発セット同梱の拡張ボードを参考にされたのであれば、当方
も同等の条件なのでこの環境にて対策方法を検討し、ご案内したいと思います。

以上、お手数おかけしますがよろしくお願いいたします。

j_rod

2022年1月24日 14時49分

この度はありがとうございます。

使用ICは「max9768」になります。
https://datasheets.maximintegrated.com/en/ds/MAX9768.pdf

ハードウェア担当に聞いてみたところ
max9768のデータシートに準じた回路構成で設計されており
I2Cでボリューム操作できるICの違いはあるが、
Armadillo-610拡張ボードのサウンド回路構成と特に変わりはないのでは
との見解でした。
参考にスピーカー周りの弊社ボードの回路を添付いたします。

なお、AMP_ENとMUTEはユーザーランドの初期化処理で有効化およびミュート解除しています。

引き続きよろしくお願いいたします。

ファイル ファイルの説明
sound.png

at_shinya.koga

2022年2月9日 11時17分

アットマークテクノの古賀です。

j_rodさん(2022年1月19日 16時17分):
>https://armadillo.atmark-techno.com/howto/mqs-a640
>上記のHowtoに準じて自社ボード上にて
>MX6UL_PAD_GPIO1_IO00__MQS_RIGHTのピンより
>アンプICを介してモノラル再生を行っております。
>
>Howtoに倣いaplayコマンドで音声を再生しているのですが
>音声の最初と最後に「プツッ」というポップノイズが乗ってしまいます。
>再生データに問題があるのかと思い完全無音のwavデータを作成しaplayで再生しましたが
>やはり最初と最後に「プツッ」という音が鳴ります。

完全無音の wav データを再生した際、MX6UL_PAD_GPIO1_IO00__MQS_RIGHT の出力レベルが再生前後と再生中とで反転しているのであれば、それがポップノイズの原因なのでしょうね。

i.MX 6ULL の MQS の音声信号出力は、GPIO による PWM 出力ですが、別の CPU ボード(Raspberry Pi Zero)でも、PWM 音声出力で再生開始と終了時にポップノイズが出ると書いている人がいるのを見つけました。この例では、出力側の回路に手を加えて改善できたようです:
 https://dbpro.xyz/3711
 https://othermod.com/raspberry-pi-zero-audio-circuit/

j_rodさん(2022年1月24日 14時49分):
>使用ICは「max9768」になります。
>https://datasheets.maximintegrated.com/en/ds/MAX9768.pdf
>
>ハードウェア担当に聞いてみたところ
>max9768のデータシートに準じた回路構成で設計されており
>I2Cでボリューム操作できるICの違いはあるが、
>Armadillo-610拡張ボードのサウンド回路構成と特に変わりはないのでは
>との見解でした。
>参考にスピーカー周りの弊社ボードの回路を添付いたします。

Armadillo-610 拡張ボードでは、MQS の出力に CR のローパスフィルタが入っていますが、上の一番目の URL のページで参考にしている、二番目の URL のページ(othermod.com のページ)の改善例では、同様のローパスフィルタに加え、時定数が少し大きめの CR ハイパスフィルタを追加した構成になっています。

>なお、AMP_ENとMUTEはユーザーランドの初期化処理で有効化およびミュート解除しています。

出力側の回路を変えずにソフトウェアで対応するとしたら、非再生時はアンプをミュート&無効化しておき、再生開始時に有効化&ミュート解除して、終了時に再びミュート&無効化することで改善できるかも知れませんが、その対応のためには sound ドライバに手を加える必要があると思います。どちらが大変かはケースバイケースですが、もし出力側の回路を簡単に変えることができるのであれば、回路変更の方を試してみるのがよいかも知れません。

以上、もし参考になりましたら幸いです。