2025-02-25 9:19 AM
Hi,
I am starting a new post for visibility, hopefully someone can point me towards the right direction.
The setup:
MCU: STM32H725
HyperRAM: W957A8MFYA5I, /CK is grounded
OCTOSPI1 is used, its reference clock is 200MHz, so with the Clock Prescaler I am using, I am running this interface on 100MHz. I have measured the clock, and is indeed 100MHz, and its shape is as nice as it gets (I measured it with a GHz scope using a differential probe).
Configuration in STMCubeIDE:
The issue: I followed section "IV. HyperFlash and HyperRAM memories with Multiplexed mode example" in AN5050, without the HyperFlash part of course, but when I am running the DelayBlock_Calibration() function, I run into a fault, as soon as the "mem_addr" points to a specific memory location. Depending on how I configure the OCTOSPI1 interface, this address is either 0x90000000 or 0x90000008. With the configuration above, I get the error when I reach 0x90000008.
I have also tried to create an area in the memory using MPU to allow all access from 0x90000000 + 16MB (size of my HyperRAM), but I still get the same error.
I have played with the configuration a lot, decreasing/increasing the frequency, increasing the access times and Chip Select High Time to a higher value than it needs to be, but nothing changed the above mentioned behavior.
I have also tried to read directly from the memory instead of configuring it to Memory Mapped mode, but the issue was the same. I started to read from address 0x0, but as soon my pointer reached 0x8, my code broke.
Is there anyone who has an idea what I am doing wrong?
Thank you for the help!