I have a custom board here that is using USB Type C Receptacle and does not recognized by PC.
not just the DFU mode (BOOT0 pull down), I programmed a default HID device firmware into the chip via ST-LINK and it also cannot recognized by PC as well.
Crystal is 24MHz + 10pf.
Both CC1 and CC2 are pulled down by 5.1K Resistor.
F407 have built-in pull-up resistor and series resistor so I did not add anything into the USB line.
VBUS detect is connected by a voltage divider circuit, showing 3.35V on the pin.
I've tried different Type-C to Type-A cables, nothing works.
Thought about driver problem, reinstall STM32Programmer and relevant driver does not fix the issue as well.
Is there something I missed in the process?
Update: I forgot to point out that I did found out the schematics error and removed FL5 but sill no luck.
-
\$\begingroup\$ Debugging USB with less than professional tools is frustrating. Could be plain old software, could be a bad descriptor, or it could be hardware. Not much leaves me as crestfallen as not hearing the GA-DUNK when I plug something in. \$\endgroup\$Scott Seidman– Scott Seidman2024年12月16日 18:10:45 +00:00Commented Dec 16, 2024 at 18:10
-
\$\begingroup\$ If the MCU is working except USB, other than the mistake on FL5, it could be software. You said that you "programmed a default HID device firmware", what exactly you did on CubeMX and in your code? \$\endgroup\$hcheung– hcheung2024年12月18日 00:25:13 +00:00Commented Dec 18, 2024 at 0:25
1 Answer 1
Yes there is. I guess the process is missing steps such as read all documentation and double-check pinouts etc that they are correct.
The FL5 or NUF2042 swaps DP and DN polarity between MCU and receptacle so it won't work.
There may be other things as well, but you should be sure that the MCU runs a program, it can run at correct speed, and use the crystal correctly as the clock source.
Usually a 24 MHz crystal is needlessly high in frequency. Higher frequency crystals are more difficult to get with suitable parameters that work in all scenarios. In addition, the bootloader appnote is clear on this that lower frequency is better, e.g. use 8 MHz instead of 25 MHz, and down to 4 MHz is allowed.
And the Type-C metal shell connection is not according to specification, but it is not the cause for the USB link to not work.
Of course, many other things not shown in the schematics could cause the circuit to not work or damage.
-
\$\begingroup\$ I forgot to point out that I removed FL5 but sill no luck. \$\endgroup\$Travis Su– Travis Su2024年12月16日 17:13:37 +00:00Commented Dec 16, 2024 at 17:13
-
\$\begingroup\$ May I ask which specification should the type-c metal shell conform to? \$\endgroup\$Travis Su– Travis Su2024年12月16日 17:16:24 +00:00Commented Dec 16, 2024 at 17:16
-
\$\begingroup\$ @TravisSu The USB Type-C specification. \$\endgroup\$Justme– Justme2024年12月16日 17:30:05 +00:00Commented Dec 16, 2024 at 17:30
-
\$\begingroup\$ Looks like the spec suggest I should connect the shield to ground plane directly \$\endgroup\$Travis Su– Travis Su2024年12月16日 17:42:55 +00:00Commented Dec 16, 2024 at 17:42
-
\$\begingroup\$ @TravisSu It does, but like I said, that is not the problem why it does not work. Also, you can't just remove the FL5 as the signals go through it. You need to jumper the signals correctly after removing FL5. \$\endgroup\$Justme– Justme2024年12月16日 17:54:20 +00:00Commented Dec 16, 2024 at 17:54