Expand description

This library supports I2S communication for SPI version 1.2 (on STM32F1, STM32F2, STM32F4, STM32L0, and STM32L1 microcontrollers).

This library is normally used through a MCU HAL library providing types that implement I2sPeripheral. I2sDriver or I2sTransfer objects can be created around I2sPeripheral object and used for I2S communication.

For stm32 MCU HAL implementers

To support I2s by using this library, HAL implementers must implements I2sPeripheral trait and reexport this crate. It’s also recommended to create some example. For reference, implementation and examples are (or will be soon) available in stm32f4xx-hal.

For i2s users

For fine control and advanced usage, look driver module. For quick and basic usage, look transfer module.

Issues and limitations

  • In master mode, there is currently no way to reset clock phase.
  • In master transmit mode, the CHSIDE flag appear to be sporadically wrong

As consequence :

  • for driver in master transmit, once driver has been disabled, it’s may impossible to reliably know what is the next part to transmit.
  • for driver in master receive, this information can be recovered using CHSIDE flag. However, this doesn’t work with PCM standard.
  • Once a transfer in master transmit mode have been disabled, it will work incorrectly until next MCU reset.
  • master receive transfer is not implemented for PCM.

Modules

Types definitions for I2S driver.

Markers for I2sDriver, I2sTransfer and their respective configuration.

Abstraction to transfer I2S data.

Traits

An object composed of a SPI device that can be used for I2S communication.