Both are "correct" ways. Single-ended grounding is typically used with analog signals. Double-ended grounding has better protection against EMI.
This explains pros and cons of both:
https://www.fs.com/blog/grounding-cat6-shielded-cables-ensuring-safety-and-stability-13796.html
This explains pros and cons of both:
https://www.fs.com/blog/grounding-cat6-shielded-cables-ensuring-safety-and-stability-13796.html
Thanks a lot.
Please correct me if I am wrong: The USB cable shield is always connected to the connector covers on both sides. On the device side the connector enclosure is always grounded for AC via capacitors. Optionally (opt-out) the DC ground connection via the FB on the device side can be broken, if needed.
Please correct me if I am wrong: The USB cable shield is always connected to the connector covers on both sides. On the device side the connector enclosure is always grounded for AC via capacitors. Optionally (opt-out) the DC ground connection via the FB on the device side can be broken, if needed.
With USB-C cables shield and GND are connected in the cable so receptable shield connection has no relevance as it is anyhow shorted to ground via the cable. IMO if this approach of double-grounding works for USB-C then it can be applied to older USB cables as well regardless of the older "industry convention".
An interesting blog https://www.unit3compliance.co.uk/hdmi-more-like-hdm-why-thoughts-on-cable-shield-grounding/ took me to this fantastic video
(around minute 31 the author talks about cable shields specifically).
Hi JMF11Spent some time to finalize the PCB:
Looks great!
Did you manage to connect USB to a PCB yet? Is everything working with the USB3300?
I have recently been playing around with a PCB I had made. It’s STM32F4 with USB3300. For debugging I have setup firmware to initialise the as CDC. I am seeing some odd behaviour. After plugging in to the board 20 times, only once did the operating system discover the USB device! Also when I probe the ULPI_CL line I see 60MHz but after 5s or so this reduces to something between 29Mhz and 30Mhz!
Now I am wondering if I made a fundamental error. I have given my USB3300 its own 24MHz crystal and connect the ULPI Clock from the USB3300 to the STM32 ULPI_CK pin. But I am now unsure if this pins is an input or only an output?
Also my STM32 has its own clock at 24.576MHz to be an integer of 48kHz. I am wondering if this might cause a conflict? But I though the USB peripheral was independent in terms of clocks.
Any tips welcomed!
I encountered this issue 2 times, on different custom PCBs (H723 and H743) and it was solved by replacing STM chip. Usually, It is as it looks, a hardware fault.
Hmmm that was hand soldered.
Did you see the clock frequency drop or just poor connectivity?
I can connect to the STM32 with SWD and it seems fine.
Did you see the clock frequency drop or just poor connectivity?
I can connect to the STM32 with SWD and it seems fine.
Mine also were hand soldered, but I removed the chips using a diy hot-air gun. I have tried first to replace the cheapest chips - USB3300 - but this didn't solve the issue so I presume they were OK.
I have checked the clock lines, there were no issues with 24 MHz or 60MHz, USB just didn't work. The other parts of the chip worked great, without issues: QSPI for W25Q128 to store TouchGFX assets, SPI for ILI9341 display, I2C4 for capacitive touch, even I2C5 for EEPROM
I have checked the clock lines, there were no issues with 24 MHz or 60MHz, USB just didn't work. The other parts of the chip worked great, without issues: QSPI for W25Q128 to store TouchGFX assets, SPI for ILI9341 display, I2C4 for capacitive touch, even I2C5 for EEPROM
ULPI_CK pin is normally used as input pin. The frequency drop after 5s may be due to USB3300 entering low power mode when communication with the link (MCU) failed although in low power mode clock is normally shut down. ULPI is quite finicky about the layout. ULPI traces should be kept short and equal length. Check that there are no "cold" solder joints in MCU or USB3300 ULPI pins.I probe the ULPI_CL line I see 60MHz but after 5s or so this reduces to something between 29Mhz and 30Mhz!
Now I am wondering if I made a fundamental error. I have given my USB3300 its own 24MHz crystal and connect the ULPI Clock from the USB3300 to the STM32 ULPI_CK pin. But I am now unsure if this pins is an input or only an output?
Just to rule out software issues can you show how you setup ULPI pins (usbd_conf.c) and system clock (main.c).
Thanks for the helpful tips, yes I’ll post that. To be honest, the issue could easily be with the software side of things. All I did was use CubeIDE for all configuration. The only change I made was to flash a debug LED. This indicates the MCU seems “OK”: well the clock and the LED GPIO!
The layout is fairly good and uses short correct width traces to match the target impedance, and length matching to minimise the time of flight variation across all traces .
Probably if I was doing the layout again I might put the USB3300 directly under the MCU and use double sided assembly.
The layout is fairly good and uses short correct width traces to match the target impedance, and length matching to minimise the time of flight variation across all traces .
Probably if I was doing the layout again I might put the USB3300 directly under the MCU and use double sided assembly.
@bohrok2610 finally got around to uploading the project to GitHub. As you will see, it is just a bare CubeIDE project at the moment.
Here is the usbd_conf.c and main.c
Apologies if this is trivial! But I would be quite relieved. If however the code looks OK, I then need to investigate hardware issues.
Here is the usbd_conf.c and main.c
Apologies if this is trivial! But I would be quite relieved. If however the code looks OK, I then need to investigate hardware issues.
Yes, as you said it seems to be more or less a bare CubeMX generated project so not a software issue.
This may be useful:
https://ww1.microchip.com/downloads/en/DeviceDoc/USB3300-Hardware-Design-Checklist-00002886A.pdf
This may be useful:
https://ww1.microchip.com/downloads/en/DeviceDoc/USB3300-Hardware-Design-Checklist-00002886A.pdf
- Home
- Source & Line
- Digital Line Level
- STM32 USB to I2S multi channel - Hardware part