ebastler / UnMechanical

Capacitive touch keyboard running QMK firmware
CERN Open Hardware Licence Version 2 - Permissive
7 stars 2 forks source link

USB-C CC detection not always working #6

Open ebastler opened 3 months ago

ebastler commented 3 months ago

With some cable/host combinations (and, oddly enough, some cable rotations) this PCB can act up and occasionally not be recognized, or recognized as a faulty USB device.

This most likely originates from the SRV05-4 being used for protection of the USB-C CC1/CC2 pins. USB-C hosts apply a voltage to the CC wire, and the device applies a 5.1kOhm resistor to it. The flowing current indicates the host's current capability to the client, and the client's existence to the host.

In the case of this board, some of this applied current can be leaked over the clamping diodes in the SRV05-4 onto +5V, and that causes trouble with a reliable detection.

Solution: Replace SRV05-4 with a different type of ESD protection IC like TPD4E02B04DQA, which uses individual TVS diodes per data pin instead of clamping diodes + a single TVS diode. Needs re-routing of the ESD protection IC, not changes in the rest of the PCB.