Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 8015

Other RP2040 boards • Re: RP2350B: Huge min_deselect with PSRAM + Flash

$
0
0
Are you sure these are good Flash defaults?
It looks like some kind of Dual mode.
The default after boot is Quad Mode Continuous (it uses only suffix 0xA0), and can see it in the capture below:
XIP-QSPI.png
Wow, yesterday I had zero solutions, and now I have two! Thank you!

First, yesterday I tried pulling the IO pins up to 3v3 through 2.2k resistors (which of course breaks flashing new firmware). That actually helped! Although it is a hardware workaround, and I do not like it, even if I replace them with smd ceramics. This is strictly a last fallback fix.

So today I investigated the issue with dual mode - for some reason the Pico SDK launches my flash in dual mode by default (no idea why). And after switching to quad, the hanging problem completely disappeared! I still have no solid theory on how exactly two pins with high impedance were affecting dual mode, but they were clearly messing something up.

Now nothing hangs anymore. At frequencies above 200 MHz I see data-validity issues, but that is not nearly as bad as full hangs (and theoretically fixable).

Thanks a lot — this was extremely non-obvious! And it saves my project!
Here are the current working parameters at 150 MHz:

Code:

Flash:  Timings (M0):    COOLDOWN      = 1    PAGEBREAK     = 2    SELECT_SETUP  = 0    SELECT_HOLD   = 0    MAX_SELECT    = 0    MIN_DESELECT  = 7    RXDELAY       = 2    CLKDIV        = 3  Read Format (M0):    DTR           = 0    DUMMY_LEN     = 0    SUFFIX_LEN    = 2    PREFIX_LEN    = 1    DATA_WIDTH    = 1    SUFFIX_WIDTH  = 1    ADDR_WIDTH    = 1    PREFIX_WIDTH  = 0  Read Command (M0):    PREFIX        = 0xBB    SUFFIX        = 0x0  Write Format (M0):    DTR           = 0    DUMMY_LEN     = 0    SUFFIX_LEN    = 0    PREFIX_LEN    = 1    DATA_WIDTH    = 0    SUFFIX_WIDTH  = 0    ADDR_WIDTH    = 0    PREFIX_WIDTH  = 0  Write Command (M0):    PREFIX        = 0x2    SUFFIX        = 0xA0PSRAM:  Timings (M1):    COOLDOWN      = 1    PAGEBREAK     = 2    SELECT_SETUP  = 0    SELECT_HOLD   = 2    MAX_SELECT    = 5    MIN_DESELECT  = 8    RXDELAY       = 2    CLKDIV        = 1  Read Format (M1):    DTR           = 0    DUMMY_LEN     = 6    SUFFIX_LEN    = 0    PREFIX_LEN    = 1    DATA_WIDTH    = 2    SUFFIX_WIDTH  = 2    ADDR_WIDTH    = 2    PREFIX_WIDTH  = 2  Read Command (M1):    PREFIX        = 0xEB    SUFFIX        = 0x0  Write Format (M1):    DTR           = 0    DUMMY_LEN     = 0    SUFFIX_LEN    = 0    PREFIX_LEN    = 1    DATA_WIDTH    = 2    SUFFIX_WIDTH  = 2    ADDR_WIDTH    = 2    PREFIX_WIDTH  = 2  Write Command (M1):    PREFIX        = 0x2    SUFFIX        = 0x0PSRAM Testing on mode: QSPI  Fast mode:    Current frequency test (150000 KHz):  [OK][DMA OK, W: 54.01 MB/s, R: 44.16 MB/s]    ---    Frequency test 25000 KHz:   [OK][DMA OK, W: 8.01 MB/s, R: 6.15 MB/s]    Frequency test 50000 KHz:   [OK][DMA OK, W: 15.82 MB/s, R: 12.14 MB/s]    Frequency test 75000 KHz:   [OK][DMA OK, W: 25.86 MB/s, R: 20.48 MB/s]    Frequency test 100000 KHz:    [OK][DMA OK, W: 35.17 MB/s, R: 28.21 MB/s]    Frequency test 133000 KHz:    [OK][DMA OK, W: 47.19 MB/s, R: 38.46 MB/s]    Frequency test 150000 KHz:    [OK][DMA OK, W: 54.01 MB/s, R: 44.16 MB/s]    Frequency test 200000 KHz:    [OK][DMA OK, W: 72.28 MB/s, R: 58.97 MB/s]    Frequency test 225000 KHz:    [OK][DMA OK, W: 81.62 MB/s, R: 61.77 MB/s]    Frequency test 250000 KHz:    [OK][DMA OK, W: 90.69 MB/s, R: 68.64 MB/s]    Frequency test 300000 KHz:    [OK][DMA OK, W: 63.73 MB/s, R: 52.94 MB/s]    ---  Safe mode:    Current frequency test (150000 KHz):  [OK][DMA OK, W: 51.05 MB/s, R: 42.12 MB/s]    ---    Frequency test 25000 KHz:   [OK][DMA OK, W: 7.58 MB/s, R: 5.59 MB/s]    Frequency test 50000 KHz:   [OK][DMA OK, W: 14.97 MB/s, R: 11.02 MB/s]    Frequency test 75000 KHz:   [OK][DMA OK, W: 24.33 MB/s, R: 19.62 MB/s]    Frequency test 100000 KHz:    [OK][DMA OK, W: 33.21 MB/s, R: 27.15 MB/s]    Frequency test 133000 KHz:    [OK][DMA OK, W: 44.85 MB/s, R: 36.90 MB/s]    Frequency test 150000 KHz:    [OK][DMA OK, W: 51.06 MB/s, R: 42.13 MB/s]    Frequency test 200000 KHz:    [OK][DMA OK, W: 68.21 MB/s, R: 56.64 MB/s]    Frequency test 225000 KHz:    [OK][DMA DATA MISMATCH][DMA OK, W: 76.97 MB/s, R: 59.59 MB/s]    Frequency test 250000 KHz:    [OK][DMA DATA MISMATCH][DMA OK, W: 85.53 MB/s, R: 66.22 MB/s]    Frequency test 300000 KHz:    [FAILED][DMA DATA MISMATCH][DMA OK, W: 103.81 MB/s, R: 80.24 MB/s]
And here is my hardware fallback solution :D
PXL_20251125_015536635.MACRO_FOCUS_compressed.jpg

Statistics: Posted by nightrain912 — Tue Nov 25, 2025 10:30 am



Viewing all articles
Browse latest Browse all 8015

Trending Articles