cancel
Showing results for 
Search instead for 
Did you mean: 

STM32CubeMX/STM32CubeIDE does not include DelayBlock LL driver when using OctoSPI peripheral with Delay Block Enabled on STM32H7A

rvumbaca
Associate II

Using STM32CubeMX/STM32CubeIDE - when enabling and configuring the OctoSPI peripheral (Hyperbus mode) on STM32H7A and enabling the Delay Block feature, the LL driver for DelayBlock does not get included in generated projects.

I had to enable SDMMC1 to force inclusion of this driver, and even then it needs modification because it assumes that the MCU has a QuadSPI peripheral (not correct for STM32H7A).

Am I doing something wrong, or is this an issue in STM32CubeMX/STM32CubeIDE?

Thanks

8 REPLIES 8
Khouloud ZEMMELI
ST Employee

Hello @rvumbaca​ ,

The OctoSPI Delay block is well generated in code , but only on HAL Driver because LL is not supported.

Best Regards,

Khouloud

rvumbaca
Associate II

Hi,

There is no HAL driver, generated code or API to configure the STM32H7 Delay Block which is a separate peripheral on STM32H7A.

Could please share your ioc file ?

Thanks

Khouloud

Ah Sorry I'm on 6.0.0, otherwise , We have added The delay block in the 6.0.0 MX version / release will be available for the next week on site.

Thanks for your feedback,

Khouloud

We have added The delay block for L4+, for H7A it's already present.

0693W000003BEbjQAG.png

rvumbaca
Associate II

HI,

I was using CubeMX 5.6.1 (latest availabile until recently) - in this version the H7 has an option for "Delay Block" in the interface, but when generating code, there was no code generated which actually used or configured the H7 Delay Block peripheral. So the "Delay Block" option in CubeMX 5.6.1 for H7 OctoSPI was useless and produced nothing.

I will check again with CubeMX 6.0.0.

CRich.4
Associate III

[deleted]

i'm working with CubeMX 6.7.0 and the option Delay block enable i the octospi peripheral in CubeMX just affects this line:

hospi2.Init.DelayBlockBypass = HAL_OSPI_DELAY_BLOCK_BYPASSED;

hospi2.Init.DelayBlockBypass = HAL_OSPI_DELAY_BLOCK_USED;

it doesn't configure/enable the delay block peripheral!