• pivot_root@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    3 hours ago

    Is that for USB A and USB C? USB PD could be riskier if it shorts VBUS to D+ or D- since it can negotiate up to 12 volts, IIRC

    • Warl0k3@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 hours ago

      As I understand it it’s been the standard since 2.0 and continues to be the case, even for high-power systems. From personal experience of trying to make a USB-C USB killer for PD, it’s also just damned difficult to do. USB is an extremely resilient standard.

    • Muffindrake@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      3 hours ago

      The negotiation needs to happen first - a compliant host port cannot just send 12V. Heck, even 5V at 5A depending on available power, the limit for PD, cannot just happen. A compliant USB-PD power supply is not supposed to deliver any power until an actual negotiation, or specific pull-down resistors on the device CC1/2 are detected.

      Of course not all USB-C ports are compliant. USB-A is essentially a hardwired 5V at (your-guess-is-as-good-as-mine-the-spec-is-nonsense)A, and some transit systems like buses I have found and tested to just hardwire USB-C to provide 5V with no negotiation either. Maybe those had host-side resistors advertising any particular amperage (you can draw up to 3A at 5V ONLY depending on CC1/2 pull-up resistors with no further negotiation), but I wouldn’t count on it.

      Also, you can’t really directly short VBUS to D+/-, since there are CC/SBU pins inbetween. On the host side, CC is either pulled up to VBUS (with a huge resistor) or tied to some IC, that might be able to detect bad conditions (though I have no experience here). On the device side, CC is either pulled-down with another big resistor, or tied to another IC. There are opportunities to detect errors and go into protection states, but that might not be the case depending on the ICs they’re using. SBU is supposed to be left floating or unconnected at the start.