-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
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.