Skip to content

Enable "dual" full-duplex I2S for "v2_i2s" devices #4698

@bifurcation

Description

@bifurcation

Currently, embassy_stm32 doesn't support full-duplex I2S operation in some cases where the hardware does support it. For example, the STM32F405RG datasheet says that full duplex I2S is supported, but the I2S::new_full_duplex() method isn't enabled in embassy_stm32 because that chip uses the older v2_i2s SPI interface.

Those devices implement a different style of full-duplex I2S, leveraging an extra "I2SEXT" peripheral to instantiate two SPI interfaces, one in each direction. This approach is implemented, somewhat incompletely, in the stm32_i2s_v12x crate.

It seems like the "dual" approach to full-duplex I2S could be implemented within the current API, as a variation on new_full_duplex. Or as a minor variation, where the I2SEXT peripheral is provided explicitly. Unfortunately, it doesn't look like the I2SEXT peripherals are captured by the stm32-metapac crate, so the stm32-data repo would have to be updated to generate code for those peripherals.

Metadata

Metadata

Assignees

No one assigned

    Labels

    e-stm32Issues for the STM32 family of chipskind-featureNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions