New ideas for the TTL variant

A project log for FTDI-be-gone

My version of the ubiquitous USB serial port gizmo

nick-sayerNick Sayer 03/05/2016 at 04:384 Comments

I've been thinking some more about the TTL (as opposed to the RS-232) variant. The TTL variant is designed to have the traditional 6 pin SIP header output.

Many traditional FTDI style interfaces just connect the Vcc output pin directly up to the output, which in principle violates the USB specification, as you're not allowed to draw significant current before the host has properly enumerated the device.

The fix for this is to switch the Vcc pin on and off with a MOSFET driven by the !POWER pin of the UART. In addition to this, an AP2331 current limiting switch can be used to protect the UART and the host from inrush or other problems. Since the CY7C65213 doesn't run internally at 3.3 volts, if we want to provide 3.3 volt functionality, we'd need to add an LDO. That's actually just as well, since we want to support up to 200 mA of supply current from the Vcc pin. Because of that, we'll specify in the bus enumeration parameters that we require up to 250 mA of bus current. You can do this using Cypress Semi's configuration utility (it's part of their SDK for Windows).

Anyway, take a look at the schematic in the PDF and let me know what you think.


K.C. Lee wrote 03/05/2016 at 05:49 point

You can save yourself a MOSFET by using a LDO or load switch with a logic level enable pin.

  Are you sure? yes | no

Nick Sayer wrote 03/05/2016 at 05:53 point

Except that one option for power is +5v, and that comes directly from the USB power pin.

  Are you sure? yes | no

K.C. Lee wrote 03/05/2016 at 09:47 point

The load switch would be better for the +5V than the MOSFET as it also does inrush limiting for loads that have greater than USB spec 10uF bulk decoupling caps.

  Are you sure? yes | no

Nick Sayer wrote 03/05/2016 at 15:53 point

The MOSFET is still required to allow the host to refuse the load. The peripheral is only allowed to draw <100 mA until enumeration is complete.

  Are you sure? yes | no