2
\$\begingroup\$

I am trying to design a board that uses the RP2040, and after several iterations I am stuck. No matter what I try, I cannot get my boards to be recognized by USB. Thus, I also can't program them.

There is very little I've added to the design from the minimal design example in the datasheet, just a couple buttons and an OLED which I currently am not connecting, so it's mostly the minimal design.

The only non-standard things I'm doing is I've moved the flash to a separate board connected via pins, but that shouldn't change anything, and I've also allowed the board to be powered by a CR2032 when not plugged in.

Considering this is mostly the basic use case, I thought analyzing my design and spotting an error would not only help me, but anyone else who tries to design their own Pico-clone as I might've hit an issue that others will run into.

Here's my schematic:

PCB Schematic

You'll see:

  • The OLED you can ignore in the top left
  • Buttons in the top middle
  • Connector for the Flash boards in the top right
  • The main RP2040 circuit in the bottom left
  • The power capacitors in the middle
  • The USB interface (incorrectly labeled USB-C; it's USB Micro) in the mid right and the battery and switch next to it
  • The two flash chips on the far right

Any ideas what I've done wrong?

\$\endgroup\$
8
  • 2
    \$\begingroup\$ The two non-standard things you're doing are big red flags to me. We don't know what they change - so try starting as close to "default" design as possible. As a first step, make sure the oscillator oscillates, and that you didn't mix up DP and DN. \$\endgroup\$ Commented Jan 12 at 21:13
  • 2
    \$\begingroup\$ Also: those flash chips really need local decoupling caps. They have charge pumps inside to generate programming voltages, and they may well misbehave without decoupling, especially with an intervening connector. \$\endgroup\$ Commented Jan 12 at 21:15
  • 2
    \$\begingroup\$ And finally: the layout is an integral part of the design. For all we know, it's some atrocious layout that kills it, or the layout is stunningly well done, or anything in between. For example, the distance of decoupling caps from the chips they decouple plays a role. If the layout is two-layer, it's much harder to do correctly than a 4-layer layout with a power and ground plane. And so on. For designs like this, I'd say a 2-layer layout is for the pros. 4 layers make it downright simple in comparison. \$\endgroup\$ Commented Jan 12 at 21:16
  • \$\begingroup\$ Also, make sure your KiCad symbol for the RP2040, and the footprint have correctly assigned pin numbers. Don't assume anything. Cross check footprint pad numbers with the datasheet, and do so for the schematic symbol as well. \$\endgroup\$ Commented Jan 12 at 21:20
  • \$\begingroup\$ I didn't check, but I think that having RP2040 boot up from a coin battery is a bit of wishful thinking. You'd need a storage cap, like 47uF or 100uF. With the OLED attached it's not going to work at all, I'm afraid. At least the battery is switched so you can keep it off (and measure that it's indeed off and that you didn't mix up switch labels and so on). \$\endgroup\$ Commented Jan 12 at 21:23

3 Answers 3

2
\$\begingroup\$

Check the power first. Check to see if you get 5V before the regulator.

It looks like the 3.3V regulator only supports 150mA, you'll need one that does at least 600mA and the one on Rpi's eval design does 1A. Pull off the 3.3V regulator and solder on wires to power it with at least 1A, if that works then measure the current and use that.

It could also be layout, but I would expect USB 1.2 to connect at least, make sure you routed a differential pair and put the resistors close to the RP2040.

\$\endgroup\$
1
\$\begingroup\$

You should check 3.3V supply first. Either measure voltage or check if there is short to ground.

It is possible the supply is shorted to GND.

Other problems may be that crystal is incorrect and does not oscillate, so USB connection is not possible.

Also the TESTEN pin is left floating.

Not sure why the mention of USB-C since the schematics have Micro-B, but if you did change a Micro-B to Type-C, it is not as simple as changing the connector, as Type-C connector has pins for configuring device role so the other device can detect it properly.

\$\endgroup\$
0
\$\begingroup\$

For USB-C, separate CC1 and CC2 pins are required for device configuration. These 2 pins are not present in your USB-C symbol. CC1 and CC2 pins should both be pulled down using a 5.1k ohm resistor individually.

\$\endgroup\$
1
  • \$\begingroup\$ Meghang N - Hi, Thanks for trying to help, however your point about USB-C does not apply here. The OP said in the question: "The USB interface (incorrectly labeled USB-C; it's USB Micro)" (my bold) and a USB Micro connector does not have the CC1 & CC2 pins. Therefore it is impossible for your answer to be correct for this question :( || As you're new here, please see the tour & help center as the site rules differ from typical forums. || Please see if there are other questions you can answer and welcome to the site :) \$\endgroup\$
    – SamGibson
    Commented May 4 at 19:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.