2021-09-16 06:49 AM
Hello,
I use STM32H730VBT6 on a project.
I want to use two OctoSPI peripherals for Flash and RAM separately.
I select QuadSPI and clock from OctoSPI1 peripheral. When I select clock source in this window then OctoSPI2 peripheral disappears from the list.
I need to use both OctoSPI peripheral as a quad.
How can I use OctoSPI peripherals in quad mode at the same time?
2021-09-16 06:56 AM
The LQFP100 package is lacking the pins required to run both OCTOSPI interfaces at the same time.
> How can I use OctoSPI peripherals in quad mode at the same time?
Use a package with more pins.
2021-09-16 07:13 AM
Unfortunately there's only a chance to do this via the multiplexing capability of OCTOSPIM. This incurs some penalty, of course, as at any one time, only one memory can be accesssed, but no re-configuration is necessary to access to other, as there is an automatic arbitration. And: I remember that one errata sheet mentioned that this multiplexing is not working, but I don't remember right now which device is affected. The ES for the H730 at least doesn't mention this limitation, so it might work ...
2021-09-16 07:20 AM
Document;
https://www.st.com/resource/en/application_note/dm00227538-quadspi-interface-on-stm32-microcontrollers-and-microprocessors-stmicroelectronics.pdf
I have changed the MCU to LQFP144. I could choose both OctoSPI as a quadSPI with a different clock source.
But document shows that one source and 2 separate QuadSPI connections.
There is a section that shows one clock source for two separate device connections. Is there a chance to use only one clock and two OctoSPI interfaces?
2021-09-16 09:03 AM
This picture refers to two flash devices connected to *ONE* instance of QuadSPI (or *ONE* instance of OctoSPI) in "dual" mode. In this case both devices must be of the very same type, they receive the very same commands, but data is split: One flash gets/supplies the even numbered bytes, the other one the odd numbered.
In your case you've got more or less twice this picture (but each one with only memory device, so each interface needs only 4 data lines).
Regarding your last question: No, no chance of sharing the same clock for both intances. Even if you set up a free running clock, each interface has a separate prescaler, and you can hardly manage to start both at precisely the same time. So even if driven by the same base clock, they will have a constant (but almost unpredictable) phase shift relative to each other.