The "documentation" doesn't bother to document the purpose of modes.
Please describe the usage and expected behavior of I2S_RIGHT_JUSTIFIED_MODE and I2S_LEFT_JUSTIFIED_MODE

This usually describes how data is represented in memory when the data has lower resolution than the memory space i.e. 12-bit analog sample saved in a 16-bit memory space

Left justified

Right justified

1 Like

Thank you. So it has nothing to do with LEFT / RIGHT channel? Does it mean that Arduino cannot operate in mono channel mode?

It has nothing to do with stereo right/left channel. Like I said, its just how you represent data. The type of Arduino board determines whether you have mono or stereo outputs, depending on the number of DACs.

1 Like

You have to explain more about what you want to achieve

I want to understand what the f* it means.

Many I2S devices allow both standard I2S (data starts one BCLK period after the LRCLK transition), and left justified mode (data starts synchronously with LRCLK transistion).
Right justified is rarer, but some devices have it, where the data ends at the next LRCLK transition. These are modes for the I2S wire protocol, nothing to do with storage in memory as such, although they will affect how the data is stored when using DMA hardware to transfer the data. The justified modes were added, as far as I can tell, to make DMA driven I2S easier.

In I2S the LRCLK transition to LOW signals a left-channel sample is coming, and the LRCLK transition to HIGH signals a right-channel sample is coming. The sample data is MSB first, either starting at this transition (left justified) or one bit later (normal), or such that it ends at the next LRCLK transition (right justified). The BCLK clocks the data and is in a fixed ratio to the LRCLK, normally 32, 48 or 64 times faster.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.