cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H725VGT - 8-bit DMA Bus, OctoSPI & FMC Peripheral Availability

sternpost_0122
Associate II

 

I am working on a prototype board using the STM32H725VGT, based on an existing custom board where LWIP/RTOS Ethernet is already working. Since I have a preference to keep the same MCU for the next design, I am evaluating its ability to support an 8-bit wide data bus with a strobe clock and DMA write-only transfers.

 

I have a few specific questions:

1. OctoSPI Availability:

• In STM32CubeIDE, the OctoSPI peripheral is disabled for this MCU/package.

• I could not find a clear reason in the datasheet or reference manual. Why is it unavailable, and is there any way to enable it?

2. FMC Peripheral for 8-bit Bus:

• The Flexible Memory Controller (FMC) seems to allow different configurations depending on the package.

• Some STM32H725 variants have different FMC modes available. Why do FMC options differ between STM32H725 packages?

• Would LCD mode be a viable alternative to achieve a DMA-driven 8-bit wide write bus with a strobe clock?

3. Alternative Solutions:

• If OctoSPI is unavailable and FMC is not ideal, is there another recommended peripheral or method to achieve a DMA-based 8-bit parallel write bus with a strobe clock?

 

Any insights into these limitations and potential solutions would be greatly appreciated.

 

Thanks!

1 ACCEPTED SOLUTION

Accepted Solutions
sternpost_0122
Associate II

PSSI is interesting but I would like to generate the clock myself. I looked again at the FMC, I found that even though the options are disabled or not visible, they can still be used. For example with the ioc I couldn't turn off the address mux, and I couldn't set the memory type to SRAM.

However once the code was generated I was able to change these. The options aren't available because certain pins are not routed out like was said before. However as I only want 8 data lines and a clock, I have all the pins I need. Currently I think I have a working solution, I can write to the FMC, see my data on the 8 lines and see my clock pulse on NWE.

I think from this I just need to be more confident in reading the datasheets and overwritting some of the auto-generated code.

View solution in original post

5 REPLIES 5
TDK
Guru

> I could not find a clear reason in the datasheet or reference manual. Why is it unavailable, and is there any way to enable it?

The LQFP100 package is missing the pins needed to enable OCTOSPI in 8-data bit mode. In particular, IO6 and IO7 aren't broken out.

 

 

> Some STM32H725 variants have different FMC modes available. Why do FMC options differ between STM32H725 packages?

The pin count is different between packages. Some pins are not broken out on smaller pin count packages so the options are more limited.

 

Direct timer-driven DMA to GPIO->BSRR could be used here, depending on requirements. Or switch to a larger package.

If you feel a post has answered your question, please click "Accept as Solution".

With DMA GPIO can I set data and toggle a clock pin? The only way I can think to do this is double the data up and use 9 bit wide, with the 9th bit being the clock toggle. Then double the data and flip the clock pin on the data? Is there a cleaner way?

Another option would be to use a timer PWM channel to generate the clock in addition to triggering the DMA.

It's going to be much more limited in speed than a dedicated peripheral. Swapping to a larger chip is a cleaner solution.

If you feel a post has answered your question, please click "Accept as Solution".
sternpost_0122
Associate II

PSSI is interesting but I would like to generate the clock myself. I looked again at the FMC, I found that even though the options are disabled or not visible, they can still be used. For example with the ioc I couldn't turn off the address mux, and I couldn't set the memory type to SRAM.

However once the code was generated I was able to change these. The options aren't available because certain pins are not routed out like was said before. However as I only want 8 data lines and a clock, I have all the pins I need. Currently I think I have a working solution, I can write to the FMC, see my data on the 8 lines and see my clock pulse on NWE.

I think from this I just need to be more confident in reading the datasheets and overwritting some of the auto-generated code.