1
\$\begingroup\$

I designed a RP2040 board where the github can be found here https://github.com/peterk268/Pico-Pal/tree/main

I noticed I made a mistake where I accidentally connected my USB C data P1 to N1 and P2 to N2 but I managed to remove the connection by scratching off the copper trace between them then checking for continuity to verify the disconnection and seem to still have an issue with my USB communication.

I bought an oscilloscope recently to confirm that my crystal is oscillating well at ~12MHz. But I see that my USB data - is stuck at ~0.3V and the + ~3.3V and I am not sure why.

I understand that a 2 layer board of this size was not the best idea and that I should not have routed any signals on the second layer and need a clean ground reference under the data lines.

There is a ground pour on both sides of my PCB and when I calculated the needed trace width and spacing in Altium to get the 90ohm differential Z0, I used differential coplanar since the ground pour is there and the ~58mil dielectric thickness if I remember correctly as it was a 1.6mm board, this gave me the trace width of ~9.5 mils I believe with 5 mil spacing. This is something I am concerned about as I believe there might be an impedance mismatch because I see the example board in the hardware design guide use ~30 mil traces but I had not seen that before fabricating and trusted the Altium calculator.

But yea this being my first board with a microcontroller on it, I made mistakes and have learnt but I just want to know why the USB is not even budging. The internal 1v1 regulator is reading at 1.8V for some reason. I have changed the microcontroller and checked for shorts and unconnected pads and fixed any that were there (thankfully none with ground and power). I had made a mistake to put a couple of vias close under the microcontroller but those are not shorted which I have checked as well.

Also went the way to solder another board together with fresh components. I am using the same flash used in the example board which has its own CS pull up. I have a 1k ohm resistor connected to a button to pull down the line when flashing but still it should enter boot loader whenever the flash is clear and I have verified that it is being pulled down.

I have plugged it in on windows and mac and heard the windows usb sound but nothing in device manager and nothing on mac.

Another disclaimer is that the other board I have made where I did not disconnect the USB data shorts read around the same voltage levels so i am not sure if this is something that can damage the rp2040 or perhaps USB communication was never initiated. I have done another continuity test and confirm that one has the short and the other doesn't (the one I scratched off).

Power supply is great with my 3v3 regulator working as expected.

Any help would be much appreciated as I've been trying to find any more issues in this board that I do not reproduce in another that I am doing a 4 layer SIG GND GND SIG with a larger size and less routing under ICs.

Edit: Attached picture of working board with USB cable connected enter image description here

\$\endgroup\$
6
  • \$\begingroup\$ Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking. \$\endgroup\$
    – Community Bot
    Commented Dec 18, 2023 at 22:56
  • \$\begingroup\$ If the DVDD was fed with 1.8V, the MCU core is fried already. \$\endgroup\$
    – Justme
    Commented Dec 18, 2023 at 23:00
  • 1
    \$\begingroup\$ I compared the schematic related to the power supplies on your github page against the RP2040 Datasheet datasheet, and nothing stood out which would explain The internal 1v1 regulator is reading at 1.8V for some reason. The datasheet says the internal regulator can be programmed to be adjusted between 0.80V to 1.30V, with a default of 1.10V, so some unexpected software adjustment of the regulator doesn't explain the 1.8V. Has the PCB layout been checked for errors? \$\endgroup\$ Commented Dec 18, 2023 at 23:04
  • \$\begingroup\$ @ChesterGillon I have checked a lot of times for pcb mistakes and actually found one that i had to fix with a wire where my regulator ground got isolated by nearby traces and didn’t connect to the gnd pour but that was all i found and fixed. Everything else is connected and doesn’t seem to be affected. I appreciate the help. \$\endgroup\$
    – peterk
    Commented Dec 18, 2023 at 23:47
  • \$\begingroup\$ The only ground on the MCU is the exposed pad on the bottom. Have you soldered the ePad onto the PCB? \$\endgroup\$
    – Justme
    Commented Dec 18, 2023 at 23:51

1 Answer 1

4
\$\begingroup\$

screenshot showing the USB C connector

The center four pins (highlighted), from top to bottom, are:

  • B7 - Dn2
  • A6 - Dp1
  • A7 - Dn1
  • B6 - Dp2

i.e: You've connected the first pair D+ and D- together, and the second pair's D+ and D- together.

I noticed I made a mistake where I accidentally connected my USB C data P1 to N1 and P2 to N2 but I managed to remove the connection by scratching off the copper trace between them then checking for continuity to verify the disconnection and seem to still have an issue with my USB communication.

I'm not fully clear on what you've done here, but it won't be possible to make this functional by only cutting traces - you'll at best end up with one leg or the other... don't forget that USB C will only connect one pair at a time, depending on the orientation, so you can't use A7 (Dn1) and B6 (Dp2) together as a pair. Please feel free to clarify if I've made a bad assumption!

I believe there might be an impedance mismatch

You should still see the host detect the device, even with a mismatch - you can do that with just a resistor. It's possible you'll see this with (what I presume to be) your one-leg-only connection if you rotate the USB C connector.


Separately, as feedback, note that your RP2040 has a poor ground connection... the thermals here are doing you a disservice - if you can't remove them, then definitely try to make them larger.

screenshot showing very narrow connections to the wider ground plane

\$\endgroup\$
5
  • \$\begingroup\$ Yea i have added thermal relief vias on the pad to my new design as I wasn’t sure at the time of this board if it was possible to fabricate like that. I do appreciate the feedback, it looks like i might be better off waiting for the new boards than to fiddle around although something I might try is to reconnect my usb traces properly with some wire and see what happens. The mistake with the data lines stems from my schematic and I did not notice until after fabricating. Do you have any idea about the 1.1V ldo providing 1.8V? \$\endgroup\$
    – peterk
    Commented Dec 19, 2023 at 1:32
  • \$\begingroup\$ "Do you have any idea about the 1.1V ldo providing 1.8V?" - sorry, not much aside from: the possibility that the exposed pad isn't soldered properly (already mentioned), the impedance from the pad to a good ground plane is too high, or possibly flux remenants (it's more conductive than people think, and +1v1 is next to +3v3 in all cases!) \$\endgroup\$
    – Attie
    Commented Dec 19, 2023 at 1:47
  • \$\begingroup\$ ah i see, i guess my first step tomorrow morning is to tie back the data lines and then if nothing shows on the scope I will reflow the chip and see whats under and put it back on. \$\endgroup\$
    – peterk
    Commented Dec 19, 2023 at 2:24
  • 1
    \$\begingroup\$ I really appreciate you I didn't know USB C connects one side at a time and in the picture I attached I connected a usb line to my board and it works perfectly, thanks a lot! \$\endgroup\$
    – peterk
    Commented Dec 19, 2023 at 16:40
  • 1
    \$\begingroup\$ Fantastic news - well done! \$\endgroup\$
    – Attie
    Commented Dec 19, 2023 at 19:21

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.