4 ms·
> Controlling USB-C ports is so complicated that Cypress's IC has a 32-bit ARM processor ...it's a Cortex-M0, 4k RAM, 32k Flash. By today's standards, this is
by cnvogel 11y ago
> Controlling USB-C ports is so complicated that Cypress's IC has a 32-bit ARM processor
...it's a Cortex-M0, 4k RAM, 32k Flash. By today's standards, this is a very small controller. For the Arduino-Crowd, it's roughly equivalent to the ATmega32u4 on the Arduino Leonardo, but with a Cortex-M0 instead of the 8-bit AVR. Both, by the way, run 16bit opcodes. -- But I get your point, it's nevertheless a lot of "brains" for what people wish would be a dumb cable.
> Either end can be the master, and either end can be the power source.
Unfortunately, this is what people expect from a USB device these days. The poor little "ID" pin on micro-USB was overloaded with functions already: There are interface chips that can distinguish 40 or so different resistor combinations on various lines (see the ancient TSU6721, which was used in the Galaxy-SII). So, I think requiring some intelligence at least for the more complicated combinations really makes sense.
Regarding the number of pins, I don't think it's that bad: USB2+/- has stayed the same, just bridged to two pins each. USB3 Tx/Rx is still two differential pairs, with two extra differential pairs for "future use", Display-Port, ... The ID-pin with resistors to Gnd/Vcc just has been massively upgraded to a serial protocol spoken on the CC1/CC2 pins.
So, for me, after reading a little bit about it, I now see USB-C as Micro-USB3 plus upgraded ID-Pins plus two spare differential pairs... But I was very skeptical at first, too.
- Animats 11y agoThe power negotiation alone takes 15 pages in the developer's guide.[1] One can see how an adapter cable with a botched power negotiation protocol could screw this up. Also, statements such as "Should the USB specifications change, then a new firmware will be updated and released" are kind of scary when applied to power negotiation. Especially since you can load new firmware from the connector side of the port. Someone is going to develop an attack based on this, with a USB "power outlet". The OS can't even see this level. [1] http://www.cypress.com/documentation/application-notes/an96527-designing-usb-type-c-products-using-cypress-s-ccg1 http://www.cypress.com/documentation/application-notes/an965...