-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Not working on RP2350 #11
Comments
Yes I have a similar issue. I was wondering could it be the something to do with the Pull Down (or floating) GPIO issue with the Pico 2? I tried added a PULL UP to the relevant pins but no diff. |
May be this issue would be solved if we switch to develop branch on Pico-SDK, but i can't test it cause dont have pico 2 right now |
Well I switched to the develop branch tonight on your suggestion. I tried standard 150Mhz, 200 and 400Mhz system clocks. Same results. I can see the CLK, CS and MOSI lines are looking OK to the PSRAM but MISO never seems to transition like it does on the RP2040. I put an external 10K pullup resistor on MISO and it did go HIGH but never LOW. This makes me think if I disconnected the PSRAM from MISO only, it would likely stay LOW. So, it appears that the PSRAM does not like what it receives from the Pico 2 and isn't responding. Has the timing changed between RP2040 and RP2350 I wonder? |
May be related:
|
FYI I have had no problem with this library on the PicoGUS when porting to the Pico 2, but it may be just in the way I'm using it. I'll make sure my example code actually works. I mostly disagree that the Pico 2 has been released in a "basically useless status." The RP2350 Erratum E9 means that there's a leakage current of 120uA on each GPIO that must be overcome and the PSRAM chip should have no problem doing that. It should not be a problem if you're interfacing the Pico with devices with TTL push/pull outputs. |
Im using your master HEAD with following pins
And it's works absolutely fine on RP2040 and not works at all with RP2350 |
Or pls. just provide example extracted from the PicoGUS code (in case it will be with related el. schema, it will be great) |
I wonder if it is because you try first without the fudge then the fudge? psram_spi = psram_spi_init_clkdiv(pio1, -1, psram_clkdiv /* clkdiv /, false / fudge /); |
FYI: all my attempts to launch psram_spi on RP2350 are failed. Last attempt was related to W/A documented - added resistor 4.7kOm to GND from input pin (5-th on PSRAM ESP32-64H chip). It still works as expected on RP2040, but failed on new chip. |
@polpo I have analysed the picogus code and pretty much replicated the same approach, changed the clkdiv to slower and faster settings, used 366MHz like picoGUS (and the same clkdiv). Even the schematic is very similar to mine except for the PSRAM (same module, no resistors) I am using:
Stumped. |
Some (good) news from my side - it works! I moved PSRAM chip from:
to
and it started to work.
Related initialization for the library:
|
FYI: other initialazation code was tested (also for GPIO 16-19, async):
Also, it may be interresting for you - first case (from prev. post) was tested on CPU overclocked up to 366MHz, using:
and this one was tested in other application on 444MHz, overvoltaged up to 1.6v. Timings used:
|
@DnCraptor. That was interesting how it worked for you using the same pin configs as mine but it didn't work until I added the missing line below into the psram_spi.pio file:
Now it works for me! :-) Could you just check if your code is somehow initialising that pin_miso GPIO somewhere else? PS nice 444MHz overclock. I was using 400 but I might push it higher as that does work for me also with your 1.6v setting and other timing configs I am not familiar with. Are they necessary? |
Aha - that’s the difference that I missed! RP2350 requires that pins must be explicitly enabled for input unlike on RP2040 where they are enabled by default. I will update the library to init the MISO pin so its input is enabled. |
Today was found, that I used the same pin for joystick, and this code was not disabled on re-pinning, so, may be, it was initialized just by other driver (will investigate). |
Tested on by pins - GPIO 18-21. Works ok. Thnx for your investigation! |
When building example with
-DPICO_PLATFORM=rp2350-arm-s
it stucks on first 8-bit writes.The text was updated successfully, but these errors were encountered: