Relying on cables internals for function is just as stupid as can be.
Relying on cables internals for function is just as stupid as can be.
- Host queries some property and each cable along the way appends their value to that message and passives it along.
- The endpoints either loopback if they're the new standard or pull down the pins if they're USB-2 only.
- It follows that if no message makes it back then we're limited to USB 2.0 and if a message does make it back, we can query/configure all elements along the path of connections. Right now this is impossible which makes it impossible to detect if there is a non 50v tolerant hubs between two hubs.
- The programming/hw implementation for PD and alternate mode would also be non-insane in this model. Currently PD requires stupidly complex state machines, op amps, resistor banks or some autonomous IC to pull off and there are so many screwups because it's such an obtuse standard.
- Supporting alternate modes, and providing more diagnostic information would be much easier.
There should have only been 2 passive cable types - 2.0+PD and USB 3 gen 1 - everything else should require a smart tag on the chip.
What does "CC" stand for?
There are an added pair of pins/single wire in USB-C cables that allow the devices to a) detect the orientation of the plug and b) do extended power negotiation for the increased power capabilities of USB-C.
This should all be solved at the negotiation layer, even if that needs to be made more complex, so that the remaining components can be simpler and reasonably-behaved.
Instead, we got something that allows each device to be a bit more electrically simple, at the cost of ballooning complexity for the ultimate use case.
USB-IF took their eye off the ball, and wrote a spec for manufacturers, without thinking about the consequences to consumers.
At some point, it's a value trade-off between {working product for use cases} and {+$2 on BoM}.
To be fair, there were only a handful of those really early on when M.2 was just getting started and OS/BIOS support for NVMe wasn't universal yet. And hardly any of them were released as retail products; they were mostly OEM-only drives. All of those drives went out of production 3-4 years before the first host devices that require NVMe and can't work with AHCI started to show up: USB to NVMe bridge chips for external enclosures. So if you haven't encountered an AHCI M.2 SSD yet, you probably never will and knowing about them is just an obscure historical curiosity.