-
Notifications
You must be signed in to change notification settings - Fork 8.2k
Description
Currently I2S is supported for some STM32:s but not for H7.
I figured the difference between F4 and H7 can't be THAT significant, so I considered porting it but with my somewhat limited experience with the low-level ST HAL, it's proven difficult.
From what I can tell, there are some differences that makes the current driver incompatible. After hacking in the (hopefully correct) clock source, I was left with:
undefined reference to `LL_I2S_DisableIT_ERR'
undefined reference to `LL_I2S_EnableIT_ERR'
undefined reference to `LL_SPI_DMA_GetRegAddr'
undefined reference to `LL_RCC_PLL_GetMainSource'
undefined reference to `LL_RCC_SetI2SClockSource'
DisableIT_ERRseems to not be implemented, despite a macro being available (__HAL_I2S_DISABLE_IT(__HANDLE__, __INTERRUPT__)fromstm32h7xx_hal_i2s.h)GetRegAddrseems to not exist because there are now separate buffers for RX and TX (if I'm reading the HAL headers correctly)- The RCC stuff seems to be due to clock being configured slightly differently
All in all, it seems hard to imagine that support for H7 would be all that tricky... I'd absolutely be willing to give it a try, but I wanted to throw the question out there first - is anyone else working on this? Are there any pitfalls to know about (I recall reading something about certain restrictions on which RAM regions that are usable for DMA for instance)? Any helpful advice in general? :D