2026-02-24 3:04 AM - last edited on 2026-02-24 3:11 AM by mƎALLEm
I'm working on a device that requires requires 12 audio output channels and 10 input channels. I wish to do this over 16-slot TDM. Now, I'm concerned about whether this can be done with 32 bits per sample. The reference manual states in section 54.4.6 Frame synchronization "The audio frame length can be configured to up to 256 bit clock cycles". 256/16=16. Does this mean I can only do 16-bit audio with 16-slot TDM? Or did I misread.
2026-02-24 8:35 AM
> Does this mean I can only do 16-bit audio with 16-slot TDM?
Yes (see e.g. page 9 here).
OTOH, the role of "frame" in this case is only to provide a frame-sync signal to the slave(s). So you can ignore the "native" FS signal, and generate your own, e.g. by using one extra SAI data output with appropriately crafted data, or by linking the SAI clock to timers and generate the framing signal there (you did not tell us which 'H7, but in some of them there is an internal link from SAI_FS to ETR of some of the timers, and that perhaps can be utilized - if not, pins can be connected externally). Not something which can be easily clicked in CubeMX, though.
JW
2026-02-26 7:55 AM
I intend to use the STM32H747/757 or the STM32H745/755. I need the following I/O:
Would it be possible to synchronize I2S SAIs with an TDM one? AFAIK to synchronize SAIs you need to match frame sync and bit clock.