I'm trying to debug a I2S/ADC application. I'd like to inspect the I2S registers to make sure they don't change, in particular the I2S_RX_SHORT_SYNC, I2S_TX_SHORT_SYNC, I2S_RX_MSB_SHIFT and I2S_TX_MSB_SHIFT registers. The following code just sets them and reads them straight back:
[Codebox]
void app_main()
{
I2S0.conf.tx_short_sync = 1;
I2S0.conf.rx_short_sync = 1;
ESP_LOGI(TAG,
"TX short sync: %d | RX short sync: %d",
I2S0.conf.tx_short_sync,
I2S0.conf.rx_short_sync
);
}
[/Codebox]
The output is:
[Codebox]
I (272) i2s-test: TX short sync: 0 | RX short sync: 0
[/Codebox]
I know that on some microcontrollers, certain registers will always read back a fixed value even though they can be set. However, page 320 of the ESP32 Technical Reference Manual lists these registers as R/W. Is the documentation wrong? Am I doing something wrong here?
[*] Platform: Wemos Lolin D32 (uses the ESP32-WROOM-32)
[*] IDF version: v3.3-beta2
[*] Build System: Cmake
[*] Compiler version: 1.22.0-80-g6c4433a
[*] Operating System: Linux (Ubuntu 18.04)
[*] Power Supply: USB
Cannot read back I2S registers (possible documentation bug)
Re: Cannot read back I2S registers (possible documentation bug)
Sorry, not sure why BBCode isn't working there, it was not disabled.
Who is online
Users browsing this forum: No registered users and 13 guests