This message will disappear after all relevant tasks have been resolved.
Semantic MediaWiki
There are 1 incomplete or pending task to finish installation of Semantic MediaWiki. An administrator or user with sufficient rights can complete it. This should be done before adding new data to avoid inconsistencies.Coming soon |
1. General recommendations[edit source]
At IC level, Eye Diagram is characterized with a specific reference resistor between USB_RREF and ground.
Verify first that USB_RREF resistor is correctly connected and has proper value and precision (3 kΩ 1%)
2. Eye Diagram[edit source]
2.1. Common mode troubleshooting[edit source]
- Hardware root causes to investigate
- Mismatch between D+ and D- (in terms of length and/or parallelism)
- Check layout and add common mode filter (e.g. ECMF02-2AMX6[1])
2.2. Jitter troubleshooting[edit source]
- Hardware root causes to investigate
- Too much capacitance (component or PCB) on D+/D- lines
- USB Power/GND instability
- Check decoupling / Check grounding
- Software potential tuning
Only fine tuning available. High jitter has an HW root cause in most cases.
- USBPHYC_TUNEx.HSDRVRFRED
- 0: increase rising edge but add jitter
- USBPHYC_TUNEx.INCURREN/.INCURRINT
- Reduce current increase with .INCURREN=0 or .INCURRINT=0
- USBPHYC_TUNEx.HSDRVCHKITRM
- Reduce the increase of the main level
2.3. Level attenuation or Signal-to-Noise troubleshooting[edit source]
- Hardware root causes to investigate
- too much serial resistance and capacitance (component or PCB) on D+/D- lines
- USB Power/GND instability
- Check decoupling / Check grounding
- Software potential tuning
- USBPHYC_TUNEx.HSDRVCHKITRM
- Higher the value, higher will be the level of signal.
- But noise and ripple can appear
- USBPHYC_TUNEx.HSDRVCURINCR/.HSDRVDCLEV
- Higher the value, higher will be the margin for the level.
- But jitter in the rising edge and noise can appear
2.4. Rising edge or Falling edge troubleshooting[edit source]
- Hardware root causes to investigate
- too much serial resistance and capacitance (component or PCB) on D+/D- lines
- Impedance mismatch : check characteristic impedance of lines, stubs…
- Software potential tuning
- USBPHYC_TUNEx.HSDRVRFRED
- 0 improve rising edge
- 1 slow-down rising edge.
- Potential impact on jitter
- USBPHYC_TUNEx.HSDRVCHKITRM
- Depending on level, slope is increased/decreased
- USBPHYC_TUNEx.HSDRVSLEW
- 0 normal rising edge
- 1 reduce rising edge.
- Useful to reduce a hill shape ripple on top of rising/falling edge
- USBPHYC_TUNEx.HSDRVCURINCR/.HSDRVDCLEV
- Improve slope speed.
- But jitter in the rising edge and noise can appear
2.5. Ripple troubleshooting[edit source]
- Hardware root causes to investigate
- Impedance mismatch : check characteristic impedance of lines, stubs…
- Software potential tuning
- USBPHYC_TUNEx.HSDRVCHKZTRM[1:0]
- 00: Usually open the eye but can create some jitter and ripple
- 11: Close the eye but can reduce jitter and ripple
- USBPHYC_TUNEx.HSDRVSLEW
- 0 normal rising edge
- 1 reduce rising edge.
- Useful to reduce a hill shape ripple on top of rising/falling edge
3. link between register value and Device Tree[edit source]
See also phy-stm32-usbphyc.yaml[2]
Device Tree item | details | USBPHYC_TUNEx field |
---|---|---|
st,current-boost | <1> current boosting of 1mA | .INCURREN=b1/.INCURRINT=b0 |
<2> current boosting of 2mA | .INCURREN=b1/.INCURRINT=b1 | |
st,no-lsfs-fb-cap | disables the LS/FS feedback capacitor | .LFSCAPEN=b1 |
st,hs-slew-ctrl | slows the HS driver slew rate by 10% | .HSDRVSLEW=b1 |
st,hs-dc-level | <0> decreases the HS driver DC level by 5 to 7mV | .HSDRVDCCUR=b1 |
<1> increases the HS driver DC level by 5 to 7mV | .HSDRVCURINCR=b1/.HSDRVDCLEV=b0 | |
<2> increases the HS driver DC level by 10 to 14mV | .HSDRVCURINCR=b1/.HSDRVDCLEV=b1 | |
st,fs-rftime-tuning | enables the FS rise/fall tuning option | .FSDRVRFRED=1 |
st,hs-rftime-reduction | enables the HS rise/fall reduction feature | .HSDRVRFRED=1 |
st,hs-current-trim | controls HS driver current trimming for choke | .HSDRVCHKITRM=n [0:15] |
st,hs-impedance-trim | controls HS driver impedance tuning for choke | .HSDRVCHKZTRM=n [0:3] |
st,squelch-level | adjusts the squelch DC threshold value | .SQLCHCTL=n [0:3] |
st,hs-rx-gain-eq | enables the HS Rx gain equalizer | .HDRXGNEQEN |
st,hs-rx-offset | adjusts the HS Rx offset | .HSRXOFF=n [0:3] |
st,no-hs-ftime-ctrl | disables the HS fall time control of single ended signals during pre-emphasis | .HSFALLPREEM=1 |
st,no-lsfs-sc | disables the short circuit protection in LS/FS driver | .SHTCCTCTLPROT |
st,hs-tx-staggering | enables the basic staggering in HS Tx mode | .STAGSEL |
- References: