I2S Driver, ESP32 can support TDM ?
Posted: Thu Oct 18, 2018 10:12 am
by alphonsemucha
Hi!, i'm working on a audio project with realTime FFT and some audioFX like reverbs, echo, flanger, timestretching etc.. to be ported also on Arduino.
i got something i don't understand about I2S TDM, i understand the actual i2s library does not support it, there's a way to update the driver and implement it? on arduino framework there's not "i2s.c" but only the Header file...
thanks to much for your answer.
Re: I2S Driver, ESP32 can support TDM ?
Posted: Thu Oct 18, 2018 1:45 pm
by alphonsemucha
i found this on the i2s registers documentation
Code: Select all
/* I2S_TX_WS_OUT_DELAY : R/W ;bitpos:[13:12] ;default: 2'b0 ; */
/*description: */
#define I2S_TX_WS_OUT_DELAY 0x00000003
#define I2S_TX_WS_OUT_DELAY_M ((I2S_TX_WS_OUT_DELAY_V)<<(I2S_TX_WS_OUT_DELAY_S))
#define I2S_TX_WS_OUT_DELAY_V 0x3
#define I2S_TX_WS_OUT_DELAY_S 12
but i didn't found what is meaning " _S " or "_V " or "_ M " ,
what i'm working on is for example this codec with TDM Support:
https://www.akm.com/akm/en/file/datasheet/AK4558EN.pdf
at Page 59, (quick search "Mode34 38") we can see the LRCK Timing
actually for what i'm looking i hope just to arrive to send the 4 channel buffer..
any idea?
Re: I2S Driver, ESP32 can support TDM ?
Posted: Fri Oct 19, 2018 3:19 am
by ESP_Sprite
FWIW, _M is the mask for the bits, _S is the shift value for the bits, _V is the maximum value for these bits. They all describe the same 2 bits in the register, just different aspects of it to make it easier to write macros against.