cancel
Showing results for 
Search instead for 
Did you mean: 

STM32U5 with MX25R6435F is madness ?

Bertha
Associate III

Hi,

This is driving me crazy, let me explain.

Setup : NucleoU575 with MX25R6435F in QSPI with wire jumper cables.

Here's a code adapted from an ST example for the stm32l496g_discovery.

The modifications were minor, and we simplified it to the maximum, just:

  1. Set a row of strings.
  2. Erase the sector.
  3. Write the row to this sector.
  4. Read back the memory.

If I keep the initial row:

uint8_t aTxBuffer[] = "QSPI communication based on DMA QSPI communication based on DMA QSPI communication based on DMA QSPI communication based on DMA QSPI communication based on DMA QSPI communication based on DMA";

This works as expected, even when I play with it by changing random letters, and the test is consistent and can be repeated several times with no errors.

The madness starts here: if I replace it (and that's the only modification) with another row string like this one:

uint8_t aTxBuffer[] = "This is a test let's try it";

Now, the readbacks are incomplete and inconsistent (stop randomly before), even though the second row is smaller.

By the way, I checked the status, config, and secured registers, and everything is fine there.

Any suggestions or ideas?

Thanks

13 REPLIES 13

I can only hope it didn't take 5 months to figure this out, hahaha!  Jumpers aren't what they used to be (thanks, China!) and any setup like what @Bertha described should check those first, even before the STM Errata!

Haha, you right but it took me 5 months to come back and share exp ;).

It got a bit tricky because those jumpers are reliable and work perfectly in many applications. However, they showed their limitations when dealing with higher-speed QSPI." This was a valuable learning experience for me and  I just remind to share with the forum today ;). (Better late than never I guess)

Ah, well, thanks for sharing the solution - far too many never do.

Speed mixed with distance is always risky.  For prototyping I keep signals run through jumpers under 8 MHz or so and twist a dedicated ground with those higher-speed signals.  This works well for trying things out but is, of course, no substitute for proper signal integrity.

Using wire-wrap for the NUCLEO ZIF Sockets here. Probably wouldn't expect much over 50 MHz

Not a big fan of the DuPont Wires, prefer these Schmart Jumper Wires here for pass-around proof-of-concepts (CEO Safe).  https://schmartboard.com/jumper-wires/

Got W25Qxxx Winbond's working on the NUCLEO-U575ZI-Q, waiting on the NUCLEO-U545RE-Q to be delivered to check on an External Loader issue reported on the forum.

Yes found Macronix support very helpful with parts/samples.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..