2020-04-20 12:13 AM
Hi all,
I've met a weird issue, when using STM32F446VET chip to connect PC by USB, and PC alerts 'USB can't be recognized'.
I've go throught some related topics on the forum, but unfortunately all didn't help. For example,
1) disable VBUS sensing
2) increase stack and heap size to 0x2000 or even 0x10000 .
3) since the board is powered by USB, and STM32F446VET doesn't have VBUS pin. I've tried to add an external pull-up 1.5KΩ resistance
4) make sure USB clock is 48MHZ
When i try to inspect the code(STM32F446ZE-Nucleo example of STM32Cube_FW_F4_V1.25.0 package, downloaded from ST website), I found some other strange phenomenons:
1). the core provides USBRESET and ENUMDONE interrupts, but no OEPINT and IEPINT interrupts at all
2). the USB code provides RXF_LVL interrupt in OTG_GINTSTAT, but OTG_GRXSTSP remains 0, and OTG_DOEPTSIZ0 is 0x60080018(PKTCNT field is 1, indicating no packet is written into RX FIFO)
Has anybody met or solved similar question, or any other suggestion is really appreciated.
Thanks a lot !
Solved! Go to Solution.
2020-04-20 07:39 PM
Thanks a lot @Community member . Your suggestion is super helpful. :thumbs_up:
After double checking DP/DM swapping probability, we found that J10's DP is connected to J3's DM, in other words, swapped !! And USB works after correcting them.
2020-04-20 01:07 AM
DFU bootloader works?
JW
2020-04-20 01:26 AM
Hi @Community member ,
Thanks. I'm using another board, not Nucleo board, and without programing DFU bootloader...
But even i try with DFU example, the USB behavior is same....
2020-04-20 02:05 PM
Then the problem is either in the crystal/HSE, or in the USB connection (e.g. swapped DP/DM, improper protection circuitry etc.)
JW
2020-04-20 07:39 PM
Thanks a lot @Community member . Your suggestion is super helpful. :thumbs_up:
After double checking DP/DM swapping probability, we found that J10's DP is connected to J3's DM, in other words, swapped !! And USB works after correcting them.