トップページ > 記事閲覧
M5Stackで外部I2Sアンプボードを使うには
日時: 2020/04/11 16:23
名前: taka matsu
参照: http://south-alps.sakura.ne.jp/m5stack/music.html

M5Stackの内部アンプの音質が良くないので、MAX98357A搭載 I2S 3W D級アンプボードを使ってみましたが、AquesTalkが使えなくなりました。外部アンプ使用の場合の注意点は書いてあるのですが、具体的な記述がないので実現できていません。具体的なスケッチの変更方法を教えていただけないでしょうか?
メンテ

Page: 1 |

自己レスです ( No.1 )
日時: 2020/06/02 16:41
名前: taka matsu
参照: http://south-alps.sakura.ne.jp/m5stack/music.html

 Qiitaの 1969 od さんの「ESP32で外付けDACを使う」という記事とAquesTalkについての「N.Yamazaki's blog」での山崎さんの説明が解決策でした。
1.i2s_config.modeでI2S_MODE_DAC_BUILT_INフラグを外す
2.i2s_set_pin()で使用するピンの設定を行なう
3.符号無しデータに変換している処理(92行目)をしない。
 この3点について、AquesTalkTTS.cppファイルの中で変更します。ファイルの後ろの方、I2S DAC についての記述があるところ。//i2s configuration から3行目、「 | I2S_MODE_DAC_BUILT_IN」をそのまま切り取ってしまいます。これがフラグを外すこと。

 static i2s_config_t i2s_config = {....}; が終わった後に、次の項目を挿入。

static const i2s_pin_config_t pin_config = {
.bck_io_num = 26,
.ws_io_num = 25,
.data_out_num = 22,
.data_in_num = I2S_PIN_NO_CHANGE
};

 これは、1969 od さんの真似をしました。GPIOは自分の環境に合わせています。

 static void DAC_create() { の中では、

//i2s_set_pin((i2s_port_t)i2s_num, NULL);
i2s_set_pin((i2s_port_t)i2s_num, &pin_config);

としています。これらがピンの設定。

 最後に、符号無しデータに変換している処理(92行目)をしない。もともとのAquesTalkTTS.cppに記載があってコメントアウトされている for External SPI-DAC の行に入れ替えることで完了です。アバターと組み合わせるとコンパイルエラーが出ますが、他では今のところエラーなく動いてくれます。I2S-DACでなくSPI-DACなのが気になりますが。
 課題としては、音が、声がビジューという音と重なってしまい、聞きつらいことですね。これもどうにかしたいものです。
メンテ

Page: 1 |

題名 スレッドをトップへソート
名前
URL
パスワード (記事メンテ時に使用)
コメント
CAPTCHA captcha画像 ←英数字を入力

   クッキー保存