ESP32 esp-idf I2s Master clock out put

ESP32 esp-idf I2s マスターモードで、MCLK(I2S master clock) の出力について、
何とか出来たので書いてみました。

 esp32_datasheet_en.pdf の記述では、マスタークロックを出力できると記載があります。
4.1.12 I²S Interface
 ..
 When one or both of the I²S interfaces are configured in the master mode, the master clock can be output to the external DAC/CODEC.

また、別のページには、
The MCLK (I2S master clock) output can be put out through a CLK_OUT pin only.
とあるので、下記シンボルがそれみたいです。

soc/io_mux_reg.h
CLK_OUT1 - 3

CLK_OUTx を GPIOx へ出力するには、
Docs>>API Reference >> Peripherals PI >> GPIO&RTC GPIO の中に、
https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/gpio.html
void gpio_iomux_out(uint8_t gpio_num, int func, bool oen_inv)
 Set peripheral output to an GPIO pad through the IOMUX.
 Parameters
  • gpio_num: gpio_num GPIO number of the pad.
  • func: The function number of the peripheral pin to output pin. One of the FUNC_X_* of specified pin (X) in soc/io_mux_reg.h.
  • oen_inv: True if the output enable needs to be inversed, otherwise False.

https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/peripherals/i2s.html を参考に

GPIO16 を PCM5102A の SCK ピンに接続すれば、
PCM5102A.pdf の
9.3.5.2 Clock Slave Mode With Master/System Clock (SCK) Input (4 Wire I2S) の SCKにクロックを供給できます。
オンちゃんも、3 Wire I2S と 4 Wire I2S の音を聞き比べてみましたが、
4 Wire I2S の方が少しは音が良いきがします。

その後、色々コードを変えて、エラーの設定で試してみましたが、音がどれも出てくるので、これは怪しいと感じたので、安いロジアナを買ったので、チェックしてみたところ、残念がら、信号がでていませんでした。

最終的には、下記ページに回答がありました。
https://www.esp32.com/viewtopic.php?t=1778

折角、ロジアナを買ったので、BCK と、 MCLK のクロックを測ってみたところ、
BCK = 1.3975 Mhz
MCLK(SCL) = 12 Mhz
でした。これなら、後者の方が、音は安定するかもしれません。

このブログ記事について

このページは、おんちゃんが2019年8月 1日 11:24に書いたブログ記事です。

ひとつ前のブログ記事は「ESP32 esp-idf Serial Over Bluetooth サンプルプログラム #3」です。

次のブログ記事は「Pytorch で U-Net(セマンティックセグメンテーション)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

ウェブページ

サイトナビ