Unable to run Generic Serial Flash Interface IP at 100 MHz
Hi,
I am working on a Cyclone V, writing an epcq128A using Generic Serial Flash Interface Intel IP.
After integrating the IP and connected it to the HPS in the platform designer, I am now able to do so using C bare metal and pointers dereferencing.
My point is that everything works perfectly at a low frequency, when the IP is connected to a 50 MHz pll and a 32 times clock divider set on the IP. However, when I am trying to write to the EPCQ with a 100 MHz pll and a 4 times clock divider or lower, my processor crashes during my memcpy call.
NB : This behaviour only concerns writing, I can read at those frequencies without problem.
I saw on the reference manual that the clock IP can be pushed up to 100 MHz. So I am way below the limits.
My control registers are set as below :
- Addressing mode : 4 bytes addressing
- Chip Select : 0x0 to select the first device since I only have one.
- SPI Baud rate divisor : from 32 to 2, but below 4 times dividor, the µC crashes
- CS Assert : set to 5, as mentioned in the RM.
- Write and Read instruction are set accordingly to the epcq's datasheet
Regards
Versions :
- Quartus Prime 2018
- Generic Serial Flash Interface Intel IP 18.0