Hi,
I have a question regarding interfacing HYPERFLASH memory with flexspi controller on imxrt1170 microcontroller.
My project utilizes code which was ported from evkbimxrt1050_flexspi_hyper_flash_polling_transfer project to work with imxrt1170 microcontroller. We use custom hardware with imxrt1170 uc and hyperflash S26HS512T from Infineon. The hardware connections to the hyperflash memory were made exactly the same as in the EVAL board MIMXRT1050-EVKB.
Since I'm using S26HS512T with 1.8VCC hyperflash memory from Infineon, I need it to run with differential master clock. Flexspi API provides config structure called flexspi_config_t which has the following bit set to true in my code:
enableSckBDiffOpt (It enables the second clock for the flash memory as far as I understand it correctly)
By far I was able to read SFDP header bytes, which confirms that the communication between flexspi<=>hyperflash works correctly provided that flexspi root clock is less than 100MHz(DLL loop is disabled). When flexspi root clock is set above 100MHz, it results in the code being stuck in the code below:
/* Wait slave delay line locked and slave reference delay line locked. */
while ((base->STS2 & statusValue) != statusValue)
{
}
The questions are as follows:
1.) Now to my question, What is the meaning of isSck2Enabled in the flexspi_device_config_t struct and should I set it to true in order to utilize differential master clock mode?
When this bit is set, DLL calibration is disabled (according to the flexspi FLEXSPI_UpdateDllValue() function logic).
2.) Should I use DLL calibration at all, when using differential master clock for my hyperflash memory?
Thanks,
Michael