How to increase the rate of sQSPI to 32MHz

SDK: nRF Connect SDK v3.0.2

DK: nRF54L15-DK

Sample: spi_flash

3513.nrf54l15dk_nrf54l15_cpuapp_sqspi.overlay
8304.nrf54l15dk_nrf54l15_cpuapp.overlay

default: 

mspi-max-frequency = <DT_FREQ_M(8)>;

If I change it to 32, it will printf these log:

[00:00:00.003,384] <err> flash_mspi_nor: Failed to change IO mode: -5

[00:00:00.010,584] <err> flash_mspi_nor: Failed to switch to default io mode: -5

  • Hello,

    Based on the error messages you're seeing, there appears to be an issue with the IO mode configuration when trying to use the higher frequency with your MX25R64 flash.

    Does the MX25R64 flash chip actually supports 32 MHz operation in the IO mode you've configured. Some flash chips have different maximum frequencies for different IO modes. You can check this.

    I will try to reproduce the issue on my side with the overlay file you uploaded here. I will get back to you soon.

  • Hi Kazi,

    Thank you!

    In Ultra Low Power Mode, I found the clock frequency max value is 8 MHz.

    Now I set it to "High Performance Mode", but it still doesn't work.

    &sqspi {
    	mx25r64: mx25r6435f@0 {
    		compatible = "mxicy,mx25r", "jedec,mspi-nor";
    		status = "okay";
    		reg = <0>;
    		jedec-id = [c2 28 17];
    		quad-enable-requirements = "S1B6";
    		sfdp-bfp = [
    			e5 20 f1 ff  ff ff ff 03  44 eb 08 6b  08 3b 04 bb
    			ee ff ff ff  ff ff 00 ff  ff ff 00 ff  0c 20 0f 52
    			10 d8 00 ff  23 72 f5 00  82 ed 04 cc  44 83 68 44
    			30 b0 30 b0  f7 c4 d5 5c  00 be 29 ff  f0 d0 ff ff
    		];
    		size = <67108864>;
    		has-dpd;
    		t-enter-dpd = <10000>;
    		t-exit-dpd = <35000>;
    		t-reset-pulse = <10000>;
    		t-reset-recovery = <35000>;
    		mxicy,mx25r-power-mode = "high-performance";
    		mspi-max-frequency = <DT_FREQ_M(32)>;
    		mspi-io-mode = "MSPI_IO_MODE_QUAD_1_4_4";
    		mspi-data-rate = "MSPI_DATA_RATE_SINGLE";
    		mspi-hardware-ce-num = <1>;
    		mspi-cpp-mode = "MSPI_CPP_MODE_0";
    		mspi-endian = "MSPI_BIG_ENDIAN";
    		mspi-ce-polarity = "MSPI_CE_ACTIVE_LOW";
    		
    	};
    };
    

    Log:

    [00:00:00.003,461] <err> flash_mspi_nor: config[0] 0 =? 0
    [00:00:00.003,604] <err> flash_mspi_nor: config[1] 0 =? 2
    [00:00:00.003,736] <err> flash_mspi_nor: Failed to change IO mode: -5

    What else do I need?

     

  • Hello, 

    I tried the default sample on nRF54l15DK with your attached overlay files. The log shows ok. 

    Changing the frequency to 8 Mhz in overlay (cpuapp.ovrlay) file shows the following output

      

    same output when I changed the frequency to 32 MHz for both overlays.

    Can you please send me the whole project in a zipped file?

  • Hi,

    I'm using this sample.

    It works fine when there is no change rate.

     

    It cannot be used when the frequency is increased to 32MHz.

    There is a zipped file here.

    1070.spi_flash.zip

Related