2022-05-10 09:13 AM
Hi all.
I have a hardware with STM32F469, running FreeRTOS and USB stack as configured from CubeMX.
I have the following problem.
I have a preproduction stock of this hardware and 2 USB sticks.
Let's consider only 2 of the above boards (let them be A and B).
Both sticks are correctly enumerated and initialized by board A.
While only one stick of the two works on board B. The other one gets stuck
in enumeration phase.
This thing is driving me crazy.
Any suggestions?
Regards,
Marco
2022-05-10 09:50 AM
Add delays when starting USB to allow USBStick to stabilize (Some have slower ICs inside than others, or larger capacitors).
Actual delays required will depend on power source impedance, switches on usb power, circuit capacitance, and sticks used.
Paul
2022-05-10 01:17 PM
Test on another board. Not all boards are created equal.
2022-05-11 01:49 AM
Hello @MF.2ratini ,
This is probably a hardware problem. You could try another board.
BeST Regards,
Walid
2022-05-11 06:30 AM
Hello all and thanks for your contributions.
On this board I have VBUS always ON and have the stack dealing with USB device initialization.
The same USB stick works on 99 boards over 100, while the other works on all boards (just as statitstics). It may be a mix of HW and SW timings at edge, or something similar...
Have no idea yet.
2022-05-11 08:27 AM
Clocking from HSE, HSI or HSI48 ?
USB has tight clock expectations.
A lot of USB Flash drives and CDC can be relatively sloppy.
Perhaps measure the ppm for the internal clock via the MCO PA8 pin routing.
2022-05-11 01:16 PM
Bad solder joints toward the USB connector? Incorrect parts? Damaged connector?
Continuity meter and oscilloscope are the basic tools here.
JW