RP2350 I2S

From Stm32World Wiki
Jump to navigation Jump to search


Video

The I2S protocol

I2S Bitstream.png

To transmit one 32-bit word ([16-bit Left | 16-bit Right] packed together in memory), the PIO state machine must:

  1. Pull 32 bits from the FIFO queue.
  2. Drive LRCK Low while shifting out the 16 bits for the Left Channel across 16 clock cycles.
  3. Drive LRCK High while shifting out the 16 bits for the Right Channel across 16 clock cycles.
  4. Toggle BCK constantly on every half-bit clock.

DMA Pio Hardware Flow.png

  1. DMA dumps 32-bit stereo audio words into the PIO TX FIFO.
  2. Autopull feeds 32 bits into the Output Shift Register.
  3. out pins, 1 drives the data line bit-by-bit.
  4. side X toggles the Bit Clock pin concurrently.
  5. set pins, X toggles the LRCK pin to flag Left/Right transitions.

Miscellaneous links