856b2ab5a96eb4c5469636f464faa2171b11f97e
Circuits-dat/circuits-dat.md
| ... | ... | @@ -1,6 +1,13 @@ |
| 1 | 1 | |
| 2 | 2 | # circuits-dat |
| 3 | 3 | |
| 4 | + |
|
| 5 | + |
|
| 6 | +- [[impedance-dat]] - [[virtual-ground-dat]] - [[circuits-dat]] |
|
| 7 | + |
|
| 8 | + |
|
| 9 | + |
|
| 10 | + |
|
| 4 | 11 | - [[interface-dat]] - [[power-dat]] |
| 5 | 12 | |
| 6 | 13 | - [[logic-dat]] - [[logic-gate-dat]] - [[buffer-dat]] - [[logic-level-shifter-dat]] - [[multiplexer-dat]] |
Circuits-dat/impedance-dat/2026-04-15-18-24-51.png
| ... | ... | Binary files /dev/null and b/Circuits-dat/impedance-dat/2026-04-15-18-24-51.png differ |
Circuits-dat/impedance-dat/impedance-dat.md
| ... | ... | @@ -0,0 +1,64 @@ |
| 1 | + |
|
| 2 | + |
|
| 3 | +# impedance-dat |
|
| 4 | + |
|
| 5 | + |
|
| 6 | +keep length short == under **75mm to 100mm** |
|
| 7 | + |
|
| 8 | + |
|
| 9 | + |
|
| 10 | + |
|
| 11 | +## 1. Why Long Traces Are a Problem |
|
| 12 | +USB signals are **differential pairs** ($D+$ and $D-$). When traces are too long, several issues arise: |
|
| 13 | +* **Signal Attenuation:** The signal loses strength over distance, leading to data corruption. |
|
| 14 | +* **EMI/RFI:** Long traces radiate more electromagnetic interference and are more susceptible to picking up noise from other components. |
|
| 15 | +* **Propagation Delay:** While the speed of electricity is fast, mismatched long traces cause "skew," where one signal arrives later than the other. |
|
| 16 | + |
|
| 17 | +--- |
|
| 18 | + |
|
| 19 | +## 2. The Golden Rule: Impedance Matching |
|
| 20 | +For USB 2.0, the most important factor isn't just the length, but the **differential impedance**, which must be $90\Omega \pm 10\%$. |
|
| 21 | + |
|
| 22 | + |
|
| 23 | + |
|
| 24 | +### How to solve length issues: |
|
| 25 | +* **Keep it short:** Ideally, keep USB traces under **75mm to 100mm**. If you must go longer, you have to be extremely disciplined with your routing. |
|
| 26 | +* **Differential Pair Routing:** Route $D+$ and $D-$ parallel to each other with consistent spacing. If they deviate, the impedance changes, causing signal reflections. |
|
| 27 | +* **Length Matching:** Ensure the $D+$ and $D-$ lines are the same length within **0.15mm (5 mils)**. If one is longer, use "serpentine" routing (wiggles) on the shorter line to match them. |
|
| 28 | + |
|
| 29 | +--- |
|
| 30 | + |
|
| 31 | +## 3. Practical Solutions for Your Layout |
|
| 32 | + |
|
| 33 | +### Use a Solid Ground Plane |
|
| 34 | +Do not route USB lines over gaps in your ground plane. This creates a massive "return path" loop that ruins signal integrity. Ensure there is a continuous copper pour directly underneath the traces on the next layer. |
|
| 35 | + |
|
| 36 | + |
|
| 37 | + |
|
| 38 | +### Avoid Vias |
|
| 39 | +Every time a trace jumps from the top layer to the bottom layer through a **via**, it introduces inductance and a change in impedance. |
|
| 40 | +* **The Fix:** Try to keep the USB lines on a single layer. If you must use vias, use two ground-stitch vias nearby to provide a path for the return current. |
|
| 41 | + |
|
| 42 | +### Components Placement |
|
| 43 | +Place your **ESD protection diodes** and **series resistors** (if using them, though ESP32-S3 usually has internal terminations) as close to the USB connector as possible. This "cleans" the signal before it travels down the long trace. |
|
| 44 | + |
|
| 45 | +### Use a USB Hub or Repeater |
|
| 46 | +If your traces absolutely must be very long (e.g., across a large enclosure), consider placing a **USB Hub controller IC** or a **redriver/repeater** halfway through the path to "refresh" the signal. |
|
| 47 | + |
|
| 48 | +--- |
|
| 49 | + |
|
| 50 | +## 4. Summary Checklist for your PCB |
|
| 51 | + |
|
| 52 | +| Feature | Requirement | |
|
| 53 | +| :--- | :--- | |
|
| 54 | +| **Differential Impedance** | $90\Omega$ | |
|
| 55 | +| **Length Matching (Skew)** | $< 0.15mm$ | |
|
| 56 | +| **Trace Clearance** | Keep at least $3 \times$ trace width away from other signals | |
|
| 57 | +| **Reference Plane** | Continuous GND plane (no splits) | |
|
| 58 | + |
|
| 59 | + |
|
| 60 | + |
|
| 61 | + |
|
| 62 | +## ref |
|
| 63 | + |
|
| 64 | + |
Tech-dat/Interface-dat/USB-SDK-dat/USB-SDK-dat.md
| ... | ... | @@ -1,6 +1,9 @@ |
| 1 | 1 | |
| 2 | 2 | # usb-dat |
| 3 | 3 | |
| 4 | +- [[impedance-dat]] - [[virtual-ground-dat]] - [[circuits-dat]] |
|
| 5 | + |
|
| 6 | + |
|
| 4 | 7 | - [[CONN-USB-dat]] - [[USB-SDK-dat]] - [[cable-USB-dat]] |
| 5 | 8 | |
| 6 | 9 |