Skip to content

stm32h7 i2s support #45955

@endian-benjamin

Description

@endian-benjamin

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_ERR seems to not be implemented, despite a macro being available (__HAL_I2S_DISABLE_IT(__HANDLE__, __INTERRUPT__) from stm32h7xx_hal_i2s.h)
  • GetRegAddr seems 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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions