DS FT201X
DS FT201X
DS FT201X
• Fully integrated 2048 byte multi-time- • True 3.3V CMOS drive output and TTL input;
programmable (MTP) memory, storing device Operates down to 1V8 with external pull-ups.
descriptors and CBUS I/O configuration. Tolerant of 5V input.
• Fully integrated clock generation with no • Configurable I/O pin output drive strength; 4
external crystal required plus optional clock mA (min) and 16 mA (max).
output selection enabling a glue-less interface • Integrated power-on-reset circuit.
to external MCU or FPGA.
• Fully integrated AVCC supply filtering - no
• 512 byte receive buffer and 512 byte transmit external filtering required.
buffer utilising buffer smoothing technology to
allow for high data throughput. • + 5V Single Supply Operation.
• FTDI’s royalty-free Virtual Com Port (VCP) and • Internal 3V3/1V8 LDO regulators.
Direct (D2XX) drivers eliminate the
• Low operating and USB suspend current; 8mA
requirement for USB driver development in
(active-typ) and 125uA (suspend-typ).
most cases.
• UHCI/OHCI/EHCI host controller compatible.
• Configurable CBUS I/O pins.
• USB 2.0 Full Speed compatible.
• Transmit and receive LED drive signals.
• Extended operating temperature range; -40 to
• USB Battery Charger Detection. Allows for USB
85⁰C.
peripheral devices to detect the presence of a
higher power source to enable improved • Available in compact Pb-free 16 Pin SSOP and
charging. QFN packages (both RoHS compliant).
• Device supplied pre-programmed with unique
USB serial number.
Neither the whole nor any part of the information contained in, or the product described in this manual, may be adapted, or reproduced
in any material or electronic form without the prior written consent of the copyright holder. This product and its documentat ion are
supplied on an as-is basis and no warranty as to their suitability for any particular purpose is either made or implied. Future Technology
Devices International Ltd will not accept any claim for damages howsoever arising as a result of use or failure of this produ ct. Your
statutory rights are not affected. This product or any variant of it is not intended for use in any medical appliance, device, or system in
which the failure of the product might reasonably be expected to result in personal injury. This document provides preliminar y
information that may be subject to change without notice. No freedom to use patents or other intellectual property rights is implied by
the publication of this document. Future Technology Devices International Ltd, Unit 1, 2 Seaward Place, Centurion Business Pa rk,
Glasgow, G41 1HH, United Kingdom.
1 Typical Applications
• Upgrading Legacy Peripherals to USB. • Interfacing MCU/PLD/FPGA based designs to
add USB connectivity.
• Utilising USB to add system modularity.
• USB Instrumentation.
• Incorporate USB interface to enable PC
transfers for development system • USB Industrial Control.
communication.
• USB Digital Camera Interface.
• Motherboard and system monitoring through
• Ability to detect dedicated charging ports for
USB.
high current charging of batteries in portable
• USB dongle implementations for Software/ devices.
Hardware Encryption and Wireless Modules.
See the following website link for the full driver support list including OS versions and legacy OS.
https://ftdichip.com/drivers/
Virtual COM Port (VCP) drivers cause the USB device to appear as an additional COM port available to
the PC. Application software can access the USB device in the same way as it would access a standard
COM port.
D2XX Direct Drivers allow direct access to the USB device through a DLL. Application software can
access the USB device through a series of DLL function calls. The functions available are listed in the
D2XX Programmer's Guide document which is available from the Documents section of our website.
Please also refer to the Installation Guides webpage for details on how to install the drivers.
- R: Taped and Reel, (SSOP is 3,000pcs per reel, QFN is 5,000pcs per reel).
- U: Tube packing, 100pcs per tube (SSOP only)
- T: Tray packing, 490pcs per tray (QFN only)
SDA
SCL
USB
USBDP
Transceiver
with
Serial Interface
Integrated USB
Engine I2C Controller
1.5k pullups Protocol Engine
(SIE)
and battery CBUS0
charge CBUS1
USBDM
detection CBUS2
CBUS3
CBUS4
CBUS5
Internal MTP
Memory
USB DPLL
FIFO TX Buffer
(512 bytes) 3V3OUT
RESET#
Internal
X4 Clock Reset
12MHz 48MHz
Multiplier Generator
Oscillator
To USB Transceiver Cell
GND
Table of Contents
10
1
8 16
3V3OUT SCL
VCC
VCCIO
2
SDA
7
USBDM
6 12
USBDP CBUS0
11
CBUS1
5
CBUS2
9 14
RESET# CBUS3
4
GND
GND
GND
CBUS4
15
CBUS5
3
13
17
1. When used in Input Mode, the input pins are pulled to VCCIO via internal 75kΩ (approx.) resistors.
These pins can be programmed to gently pull low during USB suspend (PWREN# = “1”) by setting an
option in the MTP memory.
10 2
3V3OUT SCL
VCC
VCCIO
4
SDA
9 15
USBDM CBUS0
8 14
USBDP CBUS1
7
CBUS2
11 16
RESET# CBUS3
6
GND
GND
CBUS4
1
CBUS5
5
13
Notes:
1. When used in Input Mode, the input pins are pulled to VCCIO via internal 75kΩ (approx.) resistors.
These pins can be programmed to gently pull low during USB suspend (PWREN# = “1”) by setting an
option in the MTP memory.
CBUS Signal
Available On CBUS Pin Description
Option
CBUS Signal
Available On CBUS Pin Description
Option
*When in USB suspend mode the outputs clocks are also suspended.
4 Function Description
The FT201X is a USB to I2C interface device which simplifies USB implementations and reduces external
component count by fully integrating into the device an EEPROM, and a clock circuit which requires no
external crystal. It has been designed to operate efficiently with USB host controllers by using as little
bandwidth as possible when compared to the total USB bandwidth available.
Configurable CBUS I/O Pin Options. The fully integrated MTP memory allows configuration of the
Control Bus (CBUS) functionality and drive strength selection. There are 6 configurable CBUS I/O pins.
These configurable options are defined in Section 3.3. The device is shipped with the most commonly
used pin definitions pre-programmed - see Section 9 for details.
Asynchronous Bit Bang Mode with RD# and WR# Strobes. The FT201X supports FTDI’s previous
chip generation bit-bang mode. In bit-bang mode, the 2 I2C lines can be switched from the regular
interface mode to a 2-bit general purpose I/O port. Data packets can be sent to the device and they will
be sequentially sent to the interface at a rate controlled by an internal timer (equivalent to the baud rate
pre-scalar). In the FT201X device this mode has been enhanced by outputting the internal RD# and WR#
strobes signals which can be used to allow external logic to be clocked by accesses to the bit-bang I/O
bus. This option will be described more fully in a separate application note available from FTDI website
(www.ftdichip.com).
Synchronous Bit Bang Mode. The FT201X supports synchronous bit bang mode. This mode differs from
asynchronous bit bang mode in that the interface pins are only read when the device is written to. This
makes it easier for the controlling program to measure the response to an output stimulus as the data
returned is synchronous to the output data. An application note, AN232R-01 describes this feature.
Source Power and Power Consumption. The FT201X is capable of operating at a voltage supply
between +3.3V and +5.25V with a nominal operational mode current of 8mA and a nominal USB suspend
mode current of 125µA. This allows greater margin for peripheral designs to meet the USB suspend mode
current limit of 2.5mA. An integrated level converter within the I2C interface allows the FT201X to
interface to UART logic running at +1.8V to +3.3V (5V tolerant).
Internal MTP Memory. The internal MTP memory in the FT201X is used to store USB Vendor ID (VID),
Product ID (PID), device serial number, product description string and various other USB configuration
descriptors. The internal MTP memory is also used to configure the CBUS pin functions. The FT201X is
supplied with the internal MTP memory pre-programmed as described in Section 9. A user area of the
internal MTP memory is available to system designers to allow storing of additional data from the user
application over USB. The internal MTP memory descriptors can be programmed in circuit, over USB
without any additional voltage requirement. The descriptors can be programmed using the FTDI utility
software called FT_PROG. Additionally, the MTP memory can be configured over the I2C interface.
+1.8V LDO Regulator. The +1.8V LDO regulator generates the +1.8V reference voltage for driving the
internal core of the IC.
+3.3V LDO Regulator. The +3.3V LDO regulator generates the +3.3V reference voltage for driving the
USB transceiver cell output buffers. It requires an external decoupling capacitor to be attached to the
3V3OUT regulator output pin. It also provides +3.3V power to the 1.5kΩ internal pull up resistor on
USBDP. The main function of the LDO is to power the USB Transceiver and the Reset Generator Cells
rather than to power external logic. However, it can be used to supply external circuitry requiring a
+3.3V nominal supply with a maximum current of 50mA.
USB Transceiver. The USB Transceiver Cell provides the USB 1.1 / USB 2.0 full-speed physical interface
to the USB cable. The output drivers provide +3.3V level slew rate control signalling, whilst a differential
input receiver and two single ended input receivers provide USB data in, Single-Ended-0 (SE0) and USB
reset detection conditions respectfully. This function also incorporates a 1.5kΩ pull up resistor on USBDP.
The block also detects when connected to a USB power supply which will not enumerate the device but
still supply power and may be used for battery charging.
USB DPLL. The USB DPLL cell locks on to the incoming NRZI USB data and generates recovered clock
and data signals for the Serial Interface Engine (SIE) block.
Internal 12MHz Oscillator The Internal 12MHz Oscillator cell generates a 12MHz reference clock. This
provides an input to the x4 Clock Multiplier function. The 12MHz Oscillator is also used as the reference
clock for the SIE, USB Protocol Engine and UART FIFO controller blocks.
Clock Multiplier / Divider. The Clock Multiplier / Divider takes the 12MHz input from the Internal
Oscillator function and generates the 48MHz, 24MHz, 12MHz and 6MHz reference clock signals. The 48Mz
clock reference is used by the USB DPLL and the Baud Rate Generator blocks.
Serial Interface Engine (SIE). The Serial Interface Engine (SIE) block performs the parallel to serial
and serial to parallel conversion of the USB data. In accordance with the USB 2.0 specification, it
performs bit stuffing/un-stuffing and CRC5/CRC16 generation. It also checks the CRC on the USB data
stream.
USB Protocol Engine. The USB Protocol Engine manages the data stream from the device USB control
endpoint. It handles the low-level USB protocol requests generated by the USB host controller and the
commands for controlling the functional parameters of the I2C in accordance with the USB 2.0
specification chapter 9.
FIFO RX Buffer (512 bytes). Data sent from the USB host controller to the I2C interface via the USB
data OUT endpoint is stored in the FIFO RX (receive) buffer. Data is removed from the buffer to the I2C
transmit register under control of the I2C Controller. (Rx relative to the USB interface).
FIFO TX Buffer (512 bytes). Data from the I2C receive register is stored in the TX buffer. The USB host
controller removes data from the FIFO TX Buffer by sending a USB request for data from the device data
IN endpoint. (Tx relative to the USB interface).
I2C Controller. Module to handle the latching in and out of serial data on the I2C interface. Supports up
to 3.4MHz, High Speed Serial Mode.
RESET Generator. The integrated Reset Generator Cell provides a reliable power-on reset to the device
internal circuitry at power up. The RESET# input pin allows an external device to reset the FT201X.
RESET# can be tied to VCCIO.
The FT201X device shall only be able to operate as a slave, but is capable of speeds up to 3.4MBit/s.
There are four potential modes of operation for a given bus device, although most devices only use a
single role and its two modes:
The master is initially in master transmit mode by sending a start bit followed by the 7-bit address of the
slave it wishes to communicate with, which is finally followed by a single bit representing whether it
wishes to write(0) to or read(1) from the slave.
If the slave exists on the bus then it will respond with an ACK bit (active low for acknowledged) for that
address. The master then continues in either transmit or receive mode (according to the read/write bit it
sent), and the slave continues in its complementary mode (receive or transmit, respectively).
The address and the data bytes are sent most significant bit first. The start bit is indicated by a high-to-
low transition of SDA with SCL high; the stop bit is indicated by a low-to-high transition of SDA with SCL
high.
If the master wishes to write to the slave then it repeatedly sends a byte with the slave sending an ACK
bit. (In this situation, the master is in master transmit mode and the slave is in slave receive mode.)
If the master wishes to read from the slave then it repeatedly receives a byte from the slave, the master
sending an ACK bit after every byte but the last one. (In this situation, the master is in master receive
mode and the slave is in slave transmit mode.)
The master then ends transmission with a stop bit, or it may send another START bit if it wishes to retain
control of the bus for another transfer (a "combined message").
I²C defines three basic types of message, each of which begins with a START and ends with a STOP:
In a combined message, each read or write begins with a START and the slave address. After the first
START, these are also called repeated START bits; repeated START bits are not preceded by STOP bits,
which is how slaves know the next transfer is part of the same message.
Please refer to the I2C specification for more information on the protocol.
* If devices are stored out of the packaging beyond this time limit the devices should be baked before
use. The devices should be ramped up to a temperature of +125°C and baked for up to 17 hours.
6.3 DC Characteristics
DC Characteristics (Ambient Temperature = -40°C to +85°C)
* The I/O drive strength and slow slew-rate are configurable in the MTP memory.
* The I/O drive strength and slow slew-rate are configurable in the MTP memory.
* The I/O drive strength and slow slew-rate are configurable in the MTP memory.
Note: Performing X-ray inspection as part of manufacturing process could potentially corrupt the MTP
content.
Value
Parameter Unit
Minimum Typical Maximum
Frequency of Operation
11.98 12.00 12.02 MHz
(see Note 1)
Clock Period 83.19 83.33 83.47 Ns
Duty Cycle 45 50 55 %
Table 6.9 Internal Clock Characteristics
All USB power configurations illustrated apply to both package options for the FT201X device. Please refer
to Section 11 for the package option pin-out and signal descriptions.
2 27R
USBDM
3 27R
USBDP
4
FT201X
5 47pF 47pF
RESET#
SHIELD 10nF
VCCIO
GND
3V3OUT
ND
D
GND
GN
AG
VCC
100nF
+ 4.7uF
100nF
GND
GND
Figure 7.1 illustrates the FT201X in a typical USB bus powered design configuration. A USB bus powered
device gets its power from the USB bus. Basic rules for USB bus power devices are as follows –
i) On plug-in to USB, the device should draw no more current than 100mA.
ii) In USB Suspend mode the device should draw no more than 2.5mA.
iii) A bus powered high power USB device (one that draws more than 100mA) should use one of
the CBUS pins configured as PWREN# and use it to keep the current below 100mA on plug-in
and 2.5mA on USB suspend.
iv) A device that consumes more than 100mA cannot be plugged into a USB bus powered hub.
v) No device can draw more than 500mA from the USB bus.
The power descriptors in the internal MTP memory of the FT201X should be programmed to match the
current drawn by the device.
A ferrite bead is connected in series with the USB power supply to reduce EMI noise from the FT201X and
associated circuitry being radiated down the USB cable to the USB host. The value of the Ferrite Bead
depends on the total current drawn by the application. A suitable range of Ferrite Beads is available from
Laird Technologies (http://www.lairdtech.com), for example Laird Technologies Part # MI0805K601R-10.
Note: If using PWREN# (available using the CBUS) the pin should be pulled to VCCIO using a 10kΩ
resistor.
1 VCC
27R
2
USBDM
3 27R
USBDP
4
47pF 47pF
4k7 FT201X
5
VBUS_SENSE
SHIELD
VCCIO
10k RESET#
GND
GND 3V3OUT
ND
D
GN
AG
GND
VCC
100nF
100nF 100nF +
4.7uF
GND
GND
Figure 7.2 illustrates the FT201X in a typical USB self-powered configuration. A USB self-powered device
gets its power from its own power supply, VCC, and does not draw current from the USB bus. The basic
rules for USB self-powered devices are as follows –
i) A self-powered device should not force current down the USB bus when the USB host or hub
controller is powered down.
ii) A self-powered device can use as much current as it needs during normal operation and USB
suspend as it has its own power supply.
iii) A self-powered device can be used with any USB host, a bus powered USB hub or a self-
powered USB hub.
The power descriptor in the internal MTP memory of the FT201X should be programmed to a value of
zero (self-powered).
To comply with the first requirement above, the USB bus power (pin 1) is used to control the
VBUS_Sense pin of the FT201X device. When the USB host or hub is powered up an internal 1.5kΩ
resistor on USBDP is pulled up to +3.3V, thus identifying the device as a full speed device to the USB
host or hub. When the USB host or hub is powered off, VBUS_Sense pin will be low and the FT201X is
held in a suspend state. In this state the internal 1.5kΩ resistor is not pulled up to any power supply
(hub or host is powered down), so no current flows down USBDP via the 1.5kΩ pull-up resistor. Failure to
do this may cause some USB host or hub controllers to power up erratically. Figure 7.2 illustrates a self-
powered design which has a +3.3V to +5.25V supply.
Note:
1. When the FT201X is in reset, the interface I/O pins are tri-stated. Input pins have internal 75kΩ
pull-up resistors to VCCIO, so they will gently pull high unless driven by some external logic.
Switched 5V Power to
External Logic
0.1uF 0.1uF
100k
1k PWREN#
Ferrite
Bead
1 VCC
27R
2
USBDM
3 27R
USBDP
4
47pF
FT201X
5 47pF
RESET#
SHIELD
VCCIO
10nF
GND
3V3OUT CBUS3
ND
D
GND
GN
AG
VCC
100nF
+ 4.7uF
100nF
GND
GND
A requirement of USB bus powered applications is when in USB suspend mode, the application draws a
total current of less than 2.5mA. This requirement includes external logic. Some external logic has the
ability to power itself down into a low current state by monitoring the PWREN# signal. For external logic
that cannot power itself down in this way, the FT201X provides a simple but effective method of turning
off power during the USB suspend mode.
Figure 7.3 shows an example of using a discrete P-Channel MOSFET to control the power to external
logic. A suitable device to do this is an International Rectifier (www.irf.com) IRLML6402, or equivalent. It
is recommended that a “soft start” circuit consisting of a 1kΩ series resistor and a 0.1μF capacitor is used
to limit the current surge when the MOSFET turns on. Without the “soft start” circuit it is possible that the
transient power surge, caused when the MOSFET switches on, will reset the FT201X or the USB host/hub
controller. The “soft start” circuit example shown in Figure 7.3 powers up with a slew rate of
approximaely12.5V/ms. Thus, supply voltage to external logic transitions from GND to +5V in
approximately 400 microseconds.
As an alternative to the MOSFET, a dedicated power switch IC with inbuilt “soft start” can be used. A
suitable power switch IC for such an application is the Micrel MIC2025-2BM or equivalent.
i) The external logic to which the power is being switched should have its own reset circuitry to
automatically reset the logic when power is re-applied when moving out of suspend mode.
ii) Set the Pull-down on Suspend option in the internal FT201X MTP memory.
iii) One of the CBUS Pins should be configured as PWREN# in the internal FT201X MTP memory and
used to switch the power supply to the external circuitry.
iv) For USB high-power bus powered applications (one that consumes greater than 100mA, and up
to 500mA of current from the USB bus), the power consumption of the application must be set in
the Max Power field in the internal FT201X MTP memory. A high-power bus powered application
uses the descriptor in the internal FT201X MTP memory to inform the system of its power
requirements.
v) PWREN# gets its VCC from VCCIO. For designs using 3V3 logic, ensure VCCIO is not powered
down using the external logic. In this case use the +3V3OUT.
Please also refer to technical note TN_162 Bus Powered with Power Switching Configuration.
8 Application Examples
The following sections illustrate possible applications of the FT201X. The illustrations have omitted pin
numbers for ease of understanding since the pins differ between the FT201XS and FT201XQ package
options.
ND
D
GND
GN
VCC AG
100nF
+ 4.7uF
100nF
GND
GND
An example of using the FT201X as an I2C peripheral is shown in Figure 8.1. The FT201X is the slave on
the I2C bus.
Therefore, the clock supplied to the SCL pin must come from the I2C Master. The device will support
standard I2C data rates such as 100 kbit/s standard mode (SM), 400 kbit/s fast mode (FM), 1 Mbit/s Fast
mode plus (FM+), and 3.4 Mbit/s High Speed mode (HS).
The master is initially in master transmit mode by sending a start bit followed by the 7-bit address of the
slave it wishes to communicate with, which is finally followed by a single bit representing whether it
wishes to write(0) to or read(1) from the slave.
If the slave (FT201X) exists on the bus then it will respond with an ACK bit (active low for acknowledged)
for that address. The master then continues in either transmit or receive mode (according to the
read/write bit it sent), and the slave continues in its complementary mode (receive or transmit,
respectively).
The address and the data bytes are sent most significant bit first. The start bit is indicated by a high-to-
low transition of SDA with SCL high; the stop bit is indicated by a low-to-high transition of SDA with SCL
high.
If the master wishes to write to the slave then it repeatedly sends a byte with the slave sending an ACK
bit. (In this situation, the master is in master transmit mode and the slave is in slave receive mode.)
If the master wishes to read from the slave then it repeatedly receives a byte from the slave, the master
sending an ACK bit after every byte but the last one. (In this situation, the master is in master receive
mode and the slave is in slave transmit mode.)
The master then ends transmission with a stop bit, or it may send another START bit if it wishes to retain
control of the bus for another transfer (a "combined message").
I²C defines three basic types of message, each of which begins with a START and ends with a STOP:
In a combined message, each read or write begins with a START and the slave address. After the first
START, these are also called repeated START bits; repeated START bits are not preceded by STOP bits,
which is how slaves know the next transfer is part of the same message.
The I2C address of the FT201X is stored in the device internal MTP memory.
Please refer to the I2C specification for more information on the protocol.
To use the FT201X with battery charging detection the CBUS pins must be reprogrammed to allow for the
BCD Charger output to switch the external charger circuitry on. The CBUS pins are configured in the
internal MTP memory with the free utility FT_PROG. If the charging circuitry requires an active low signal
to enable it, the CBUS pin can be programmed to BCD Charger# as an alternative.
When connected to a USB compliant dedicated charging port (DCP, as opposed to a standard USB host)
the device USB signals will be shorted together and the device suspended. The BCD charger signal will
bring the LTC4053 out of suspend and allow battery charging to start. The charge current in the example
below is 1A as defined by the resistance on the PROG pin.
0.1uF 0.1uF
600R/2A
VCCIO
VCC
3V3OUT
CN USB
1
VBUS
2 GND GND
D- DM
3 27R
D+ DP
4 27R
ID
5
GND RESET#
10nF
N.F.
BCD
GND
GND
0R 0.1uF CBUS0
FT201X
SLD GND GND
GND GND
0.1uF 4.7uF
1 10
CHRG ACPR
GND GND 2 9
VCC BAT 1 +
3 8 BCD
FAULT SHDN NCT
4 7
TIMER PROG -
5 6 NTC
GND NTC TB3.5mm
GND
LTC4053EDD
0.1uF
1uF
11
2K2 1K5
1R
Alternatively, the PWREN# And SLEEP pins may be used to control the LTC4053 such that a battery may
be charged from a standard host (low current) or from a dedicated charging port (high current). In such
a design as shown in Figure 8.3, the charge current would need to be limited to 0.4A to ensure that the
USB host power limit is not exceeded.
U1
600R/2A 0.1uF 0.1uF
VCORE
VCC
3V3OUT
VCCIO
CN USB
1
VBUS
2 GND GND
D- DM
3 27R
D+ DP
4 27R
ID
5
GND RESET#
10nF
N.F.
0R 0.1uF
SLEEP#
CBUS5
PWREN#
CBUS6
SLD GND GND
FT201X
GND
GND
0.1uF 4.7uF
1 10
CHRG ACPR
GND GND 2 9
VCC BAT 1 +
3 8 SLEEP#
FAULT SHDN NCT
4 7
TIMER PROG -
5 6 NTC
GND
LTC4053EDD
11
0.1uF
2K2 16K5 1% 4K32 1% 1uF
1R
PWREN#
In the example above the FT201X SLEEP pin is used to enable/disable the LTC4053, while the PWREN#
signal alters the charging current by altering the resistance on the LTC4053 PROG pin.
A third option shown in the example below uses the SLEEP signal from the FT201X to enable / disable the
battery charger. The BCD# and PWREN# signals are then used to alter the resistance on the PROG pin of
the LTC4053 which controls the charge current drawn from the USB connector.
0.1uF 0.1uF
600R/2A
VCC
3V3OUT
VCCIO
CN USB
1
VBUS
2 GND GND
D- DM
3 27R
D+ DP
4 27R
ID
5
GND RESET#
10nF
18 BCD#
CBUS0
17 PWREN#
CBUS1
10 SLEEP#
GND
GND
N.F. CBUS2
0R 0.1uF
FT201X
GND GND
0.1uF 4.7uF
1 10
CHRG ACPR
GND GND 2 9
VCC BAT 1 +
3 8 SLEEP#
FAULT SHDN NCT
4 7
TIMER PROG -
5 6 NTC
GND NTC TB3.5mm
GND
LTC4053EDD
0.1uF
1uF
11
BCD#
1R
PWREN#
To calculate the equivalent resistance on the LTC4053 PROG pin select a charge current, then Res =
1500V/Ichg.
Note: If the FT201X is connected to a standard host port such that the device is enumerated the battery
charge detection signal is inactive as the device will not be in suspend.
Please note that the FT200XD and FT201X are I 2C slave devices only and should be interfaced to an I2C
host (often in a microcontroller or FPGA). If an I 2C master is required, please see the FT232H, FT2232H,
FT4232H and FT2232D devices.
This section covers transfer of data only. The USB and I 2C interfaces on the FT200XD and FT201X can
also be used for programming of the MTP memory, which is covered in a separate section.
Throughout this section, the reference FT-X applies to the FT200XD and FT201X devices, as the other
members of the FT-X family do not have I2C interfaces.
Like the other FTDI devices, the host can use D2xx commands or can use a Virtual COM Port (VCP) to
communicate with the device.
D2xx Interface
The D2xx method allows the application software to use the functions in the FTDI D2xx library to
communicate directly with the device. This is a library provided free-of-charge by FTDI and is available
within the driver download files at http://www.ftdichip.com/Drivers/D2XX.htm.
It includes functions to find the FTDI devices on the system, open a particular device, send data to the
device and read data from the device. Any data written using FT_Write, for example, will be sent to the
FT-X chip and will be available for the external I 2C Master to read. As mentioned above, only the data
itself needs to be sent as the FT-X handles all of the I2C specific protocol.
There are many other functions available, and full details can be found in the D2xx Programmers Guide.
If using the Virtual Com Port (VCP), the device will appear as if it were a real COM port on the computer.
This is useful where an application has already been written to use an RS232 port on the computer as it
allows that application to treat the FT-X as if it were a real COM port. This port can be opened in a
terminal program or a custom application in the same way as a serial port would be opened. Data can
then be sent or received using standard serial / COM port functions.
No I2C decoding is required as the chip itself handles the I 2C protocol. Because of this, even I2C versions
of the FT-X family can be used with the VCP interface. Any data which the host PC sends to the Virtual
COM Port (for example, typed into the terminal window in HyperTerminal) will be sent over USB to the
FT-X and can then be read by the external I2C Master. Likewise, any data written to the FT-X over I2C will
be sent to the PC where the terminal program will display it.
Since the FT-X is the I2C slave and does not generate a clock signal, the settings such as baud rate and
handshaking do not have any effect.
In Windows systems, the VCP driver is actually an additional layer on top of the D2xx driver. The D2xx
driver is always loaded and the VCP later may or may not be loaded on top of it, depending on the
requirements of the application.
When VCP is disabled, the device will appear only under Universal Serial Bus Controllers in the Device
Manager and no COM port is exposed. When the VCP is enabled, the device will appear under both the
Universal Serial Bus Controllers and the Ports (COM & LPT) sections in Device Manager.
The VCP interface will be disabled by default in the FT200XD and FT201X but can be enabled in one of
the following ways:
- An option bit in the MTP memory on the chip is checked each time that the device is enumerated
and can cause the host computer to load the VCP layer. This allows each individual hardware unit
to enable or disable VCP as per its requirements. The MTP information in section 10 has further
details. FT_PROG can also be used to modify the MTP settings.
- The user may open the Properties for the device under Universal Serial Bus Controllers in Device
Manager in Windows and tick a box to load the VCP. Re-enumeration of the FT-X is necessary to
enable the new setting.
- By editing the driver FtdiBus.inf file (please refer to AN_107). Note that the FT_INF
utility available from the FTDI website can be used to help create the modified inf files.
In other Operating systems (e.g. Linux, Mac, and Windows CE), there are separate drivers for D2xx and
VCP, and only one of these drivers may be installed at any time. Therefore, the mode is selected by
installing the associated driver instead and the selection defined in the bullet points above has no effect.
When data is to be sent from the host computer to the external I 2C master, the software application
writes this data to the FTDI driver using VCP or D2xx and this data is sent by the driver over USB to the
buffer in the device.
The external I2C master device may then perform an I2C read (Master receiver, Slave transmitter)
operation to retrieve the data.
The external I2C master should check if data is available to ensure that the data which has been read is
valid. The methods for this are described in Section 9.2.2.
When data is to be sent from the external I 2C master to the host computer, the external master performs
an I2C write (Master transmitter, Slave receiver) operation to the FT-X.
The FT-X stores this in its buffer and the data is sent back to the driver on the host computer over USB.
As with other FTDI devices, this happens when either the buffer in the device fills or when the latency
timer rolls over (so that partially filled buffers do not wait indefinitely), whichever happens first.
Note that when writing data to the FT-X over I2C, the external master should check whether there is
space available in the buffer inside the FT-X. It can do this using the methods shown in Section 9.2.2
below.
The host computer application can then read the data from the driver buffer using the VCP interface or
the D2xx commands. In the case of D2xx, the number of bytes available may be determined using the
FT_GetQueueStatus command before doing the FT_Read.
Note: This section uses 7-bit addressing in the examples. It uses eight characters to describe the seven
address bits and the single read/write bit. For example, 1110 011 1 means address 0x73 with the
Read/Write bit set to 1, and therefore corresponds to a read of address 0x73. Data values are
represented in bytes, for example, 1010 0101 for data value 0xA5.
9.2.1 Addressing
The FT-X can be given a custom slave address on the I 2C bus. This is stored in MTP memory and can be
re-programmed over USB or I2C. Please see the separate MTP Programming information in section 10.
The slave address is used when reading and writing to the device. The FT-X supports both 7-bit and 10-
bit addressing.
The general call address (0000 000 0) is for addressing every device on the bus. Some slaves do not
support the General Call Address though the FT-X devices do support it. They will acknowledge this
address, receive the second byte and interpret it. There are several commands available for this second
byte. The FT-X will support the Software Reset command which is part of the I2C specification as well as
other custom FTDI commands. These are covered in more detail later in the Other I2C Commands
section.
For all I2C data transfers to and from the FT-X, the slave address of the FT-X is used. Figure 9.1 shows a
typical 7-bit address transfer for each direction.
Figure 9.2 summarises all of the transfers available (7-bit and 10-bit addressing).
Figure 9.2 Data transfers with 7-bit and 10-bit addressing modes
When reading data, it is important to know if there is data available to read over I 2C and if the data read
is valid. There are three methods by which to check whether the data being read is valid.
- Checking the I2C_TXE# line, which indicates whether the transmit buffer is empty. This signal
can be mapped to the CBUS pins. This line does not indicate the number of bytes available. If the
line is asserted, there are one or more bytes in the transmit buffer. Note that the Transmit buffer
is the buffer which holds data which has come from the host computer and is going to be read by
the external I2C master.
- Do a read over I2C (Master receiver, Slave transmitter) and check whether the FT-X
acknowledges the address phase. The FT-X will NAK the address phase if there is no data to read.
- If bursting data, then there is not an address phase for each byte. In this case, it is not possible
to tell when the buffer has emptied and therefore when you are no longer reading valid bytes. In
this case, a Data Available check can be carried out first. If the byte after the general call address
is 0x0C (0000 1100), the FT-X returns the Data Available Count to indicate the number of bytes
available for burst read. Please also refer to Section 9.3. Note that because this returns a single
byte, the maximum value is 0xFF, and so a value of 0xFF indicates that there are 255 or more
bytes available.
When writing data (data going from I2C toward the host computer), it is important to check if there is
space available and if the FT-X accepted the byte written. There are two methods by which to check
whether space is available.
- Check the I2C_RXF# line, which indicates whether the Receive buffer is full. This line indicates
that there is at least one empty byte available in the buffer. However, there is no indication of
how many bytes are available. This signal can be mapped to the CBUS pins. Note that the
Receive buffer is the buffer which holds data which has come from the external I 2C master and is
going to the host computer over USB.
- Do a write over I2C (Master transmitter, Slave receiver) and check if the FT-X ACKs. The FT-X will
NAK if there is no space in the buffer for the data to be written into. The FT-X will NACK in the
address phase if this is the first byte being written and there is no space available. If the buffer
becomes full during a burst write, the FT-X will NACK any bytes during the data phase which
cannot be accommodated in the buffer.
Note that because the acknowledgement can be checked for each byte written (since the FT-X slave is
generating the acknowledgement when writing to it), there is no command to ask the FT-X how much
buffer space is available.
This uses the General Call Address. If the second byte is 0x06 (0000 0110) it will be interpreted by the
FT-X as the Soft Reset command, which clears all buffers.
Flush command
This uses the General Call Address. If the second byte is 0x0E (0000 1110) it will be interpreted by the
FT-X as the Flush command and the Transmit and Receive buffers will be flushed of all data.
This uses the General Call Address. If the second byte is 0x0C (0000 1100) it will be interpreted by the
block as the Read Data Available command and on the next I2C read cycle following this command, the
data will hold the number of bytes available for burst read.
This uses the General Call Address. If the second byte is 0x16 (0001 0110) it will be interpreted by the
block as the USB State command and on the next read cycle following this command, the data will hold
the coded USB State value. The USB state allows you to check the current USB enumeration state:
0x00 = Suspended.
0x01 = Default.
0x02 = Addressed.
0x03 = Configured.
Further details of these states can be found in Chapter 9 of the USB 2.0 Specification from the USB
Implementers Forum website (http://www.usb.org).
Device ID command
This command uses the Slave address of the FT-X. The master issues the 1111 100 0 command (0x7c
write) followed by the slave address with the direction bit as either 0 or 1 (don’t care). The master then
sends a repeated start followed by the 1111 100 1 command (0x7c read). The FT-X responds with 3
bytes containing the manufacturer ID (12 bits), part ID (9 bits) and revision (3 bits). The master ends
reading with a NACK.
Note: In the case where the master keeps ACKing the data, it has to wrap around and the slave (the FT-
X) will keep sending the 3 bytes of its ID.
In many cases, the default values programmed into the MTP memory will be suitable and no re-
programming will be necessary. The defaults can be found in Section 10.1.
The MTP memory in the FT201X can be programmed over USB or over the I 2C bus if the values need to
be changed for a particular application. Further details of this are provided from section 10.2 onwards.
Users who do not have their own USB Vendor ID but who would like to use a unique Product ID in their
design can apply to FTDI for a free block of unique PIDs. See TN_100 – USB Vendor ID/Product ID
Guidelines for more details.
Note: These values apply to Revision D and later. The previous revisions had different CBUS defaults.
The MTP memory on all FT-X devices can be programmed over USB. This method is the same as for the
EEPROM on other FTDI devices such as the FT232R. No additional hardware, connections or programming
voltages are required. The device is simply connected to the host computer in the same way that it would
be for normal applications, and the FT_PROG utility is used to set the required options and program the
device.
The FT_PROG utility is provided free-of-charge from the FTDI website and can be found at the link below.
The user guide is also available at this link.
http://www.ftdichip.com/Support/Utilities.htm#FT_Prog.
Additionally, D2XX commands can be used to program the MTP memory from within user applications.
For more information on the commands available, please refer to D2XX Programmers Guide.
In the FT201X device, it is possible to program the MTP memory over its I 2C interface. This is the same
interface which is used in the normal application of the FT201X and would normally be connected to the
I2C master implemented in a microcontroller (MCU) or FPGA. However, special commands can also be
used to access the MTP memory in the FT201X over the same I 2C connection, allowing the MCU/FPGA to
read and write locations in the MTP memory. No additional hardware, connections or programming
voltages are required.
Warning: When programming locations in the MTP which are covered by the checksum, the checksum
value must always be programmed to the correct value before any device reset takes place. If the device
starts up or resets with an incorrect checksum, I 2C communication will not be possible. Recovery is only
possible by re-programming the checksum to the correct value over USB.
Two examples where it may be desired to use the I2C interface to write and read the MTP Memory are
given below. In some cases, the application may use both of these possibilities.
1. To store and retrieve application specific data such as calibration constants in the user area (e.g.
if the overall application was an analog measurement system). This can avoid the need for an
extra EEPROM chip on the application board.
2. To read and write the configuration data (e.g. custom VID, PID, description strings or CBUS
signal selection to enable signals for battery charging etc.) without a USB host. This could allow
an MCU/FPGA to configure the FT201X during production testing of the finished device or even
when in use in the field.
The information in the rest of this chapter can be used to implement the storing and reading of
application data in the user area as in example 1 above. Example 2 requires details of the configuration
data stored in the MTP memory. Further details can be found in AN_201.
The User Memory Areas are highlighted in Green on the memory map. They can be read and written via
both USB and I2C. All locations within this range are freely programmable; no areas have special
functions and there is no checksum for the user area.
Note that the application should take into account the specification for the number of write cycles in
Section 6.4 if it will be writing to the MTP memory multiple times.
This area stores the configuration data for the device, including the data which is returned to the host in
the configuration descriptors (e.g. the VID, PID and string descriptions) and also values which set the
hardware configuration (the signal assigned to each CBUS pin for example).
These values can have a significant effect on the behaviour of the device. Steps must be taken to ensure
that these locations are not written to un-intentionally by an application which is intended to access only
the user area.
This area is included in a checksum which covers configuration areas of the memory, and so changing
any value can also cause this checksum to fail. When changing any locations covered by the checksum,
the checksum value must always be updated before a device reset or power cycle takes place (i.e. before
the device uses the new MTP settings). Devices with incorrect checksum will require programming over
USB to recover and correct the checksum.
This is a reserved area and the application should not write to this area of memory. Any attempt to write
these locations will fail.
Warning: When programming locations in the MTP which are covered by the checksum, the checksum
value must always be programmed to the correct value before any device reset takes place. If the device
starts up or resets with an incorrect checksum, I2C communication will not be possible. Recovery is only
possible by re-programming the checksum to the correct value over USB.
10.5 Protocol
This consists of a general call with a command phase followed by 2 data bytes which represent the MTP
memory address allowing users to address, potentially, up to 64K byte addresses.
This consists of a general call with a command phase followed by 1 data byte which shall be programmed
into the MTP memory at the address location set by the MTP memory address command.
This consists of a general call with a command phase followed by 1 data byte which is the data read from
the MTP memory at the address location set by the MTP memory address command.
When performing MTP memory write and read requests via the I2C protocol, users must first issue the
MTP address command along with 2 bytes representing the MTP memory address. The acknowledge
phase of this command represents the current status of the MTP memory (whether it is busy or not). If
the MTP memory is being accessed during an I2C access then the respective command and data phases
will NAK the master. The address will only be updated when the MTP memory is inactive.
Writing
The first part of the communication sets the address, and this is followed by the write command along
with the data to be written. The MTP memory write itself will be initiated when the FT201X receives an
MTP memory write command followed by a single data byte. The ACK phase represents the current
activity of the MTP memory (whether it is busy or not busy). A successful write will only occur when both
status phases acknowledge the master indicating that the MTP memory can start the write. Users wishing
to determine if the MTP memory write was successful should immediately try an MTP memory read to
verify the new contents.
0000000 0 0001_0000 0
S/Sr General call addr R/!W A MTP ADDR cmd A/!A Sr Slave addr R/!W A MTP ADR MSB A MTP ADR LSB A
MTP Memory Address Phase
0000000 0 0001_0010 0
S/Sr General call addr R/!W A MTP WR cmd A/!A Sr Slave addr R/!W A MTP WR DATA A P/Sr
MTP memory Write Phase
Figure 10.2 Write EEPROM command sequence
Reading
In a similar way, the read is carried out as shown below. The first part of the communication sets the
address, and this is followed by the read command and a read cycle used to retrieve the data read back
from that address.
An MTP memory read will be initiated when the I2C slave receives an MTP read command. The
acknowledgement during the command phase indicates whether or not the MTP memory will be able to
service the read request. If it is possible to carry out the read, the I 2C moves into the data phase where
it can either continue with the read transaction until the slave successful returns an ACK along with the
data or if it receives NAK during the data phase it can abort the read transfer and try again.
0000000 0 0001_0000 0
S/Sr General call addr R/!W A MTP ADDR cmd A/!A Sr Slave addr R/!W A MTP ADR MSB A MTP ADR LSB A
MTP Memory Address Phase
0000000 0 0001_0100 1
S/Sr General call addr R/!W A MTP WR cmd A/!A Sr Slave addr R/!W A MTP WR DATA A P/Sr
MTP memory Read Phase
Figure 10.3 Read EEPROM command sequence
11 Package Parameters
The FT201X is available in two different packages. The FT201XS is the SSOP-16 option and the FT201XQ
is the QFN-16 package option. The solder reflow profile for both packages is described in Section 11.5.
The FT201XS is supplied in a RoHS compliant 16 pin SSOP package. The package is lead (Pb) free and
uses a ‘green’ compound. The package is fully compliant with European Union directive 2002/95/EC.
This package is nominally 4.90mm x 3.91mm body (4.90mm x 5.99mm including pins). The pins are on a
0.635 mm pitch. The above mechanical drawing shows the SSOP-16 package.
-B
FT201XS
The date code format is YYXX where XX = 2-digit week number, YY = 2-digit year number. This is
followed by the revision number.
The FT201XQ is supplied in a RoHS compliant leadless QFN-16 package. The package is lead (Pb) free
and uses a ‘green’ compound. The package is fully compliant with European Union directive 2002/95/EC.
This package is nominally 4.00mm x 4.00mm. The solder pads are on a 0.65mm pitch. The above
mechanical drawing shows the QFN-16 package. All dimensions in table are in millimetres.
The centre pad on the base of the FT201XQ is internally connected to GND. Do not place signal tracks on
the PCB top layer under this area. Connect to GND.
1
12
FTDI
I
XXXXXXXXXX
FT201XQ
YYWW-B
5 8
The date code format is YYXX where XX = 2-digit week number, YY = 2-digit year number. This is
followed by the revision number.
tp
Temperature, T (Degrees C)
Tp
Critical Zone: when
Ramp Up T is in the range
TL to Tp
TL
tL
TS Max
Ramp
Down
TS Min
tS
Preheat
25
T = 25º C to TP
Time, t (seconds)
Figure 11.5 FT201X Solder Reflow Profile
The recommended values for the solder reflow profile are detailed in Table 11.1. Values are shown for
both a completely Pb free solder process (i.e. the FT201X is used with Pb free solder), and for a non-Pb
free solder process (i.e. the FT201X is used with non-Pb free solder).
Pb Free Solder
Profile Feature Non-Pb Free Solder Process
Process
Average Ramp Up Rate (Ts to Tp) 3°C / second Max. 3°C / Second Max.
Preheat
- Temperature Min (Ts Min.) 150°C 100°C
- Temperature Max (Ts Max.) 200°C 150°C
- Time (ts Min to ts Max) 60 to 120 seconds 60 to 120 seconds
12 Contact Information
Future Technology Devices International Limited Future Technology Devices International Limited (USA)
Unit 1, 2 Seaward Place, Centurion Business Park 7130 SW Fir Loop
Glasgow G41 1HH Tigard, OR 97223-8160
United Kingdom USA
Tel: +44 (0) 141 429 2777 Tel: +1 (503) 547 0988
Fax: +44 (0) 141 429 2758 Fax: +1 (503) 547 0987
Future Technology Devices International Limited (Taiwan) Future Technology Devices International Limited (China)
2F, No. 516, Sec. 1, NeiHu Road Room 1103, No. 666 West Huaihai Road,
Taipei 114 Shanghai, 200052
Taiwan, R.O.C. China
Tel: +886 (0) 2 8797 1330 Tel: +86 21 62351596
Fax: +886 (0) 2 8751 9737 Fax: +86 21 62351595
Web Site
http://ftdichip.com
System and equipment manufacturers and designers are responsible to ensure that their systems, and any Future Technology Devi ces
International Ltd (FTDI) devices incorporated in their systems, meet all applicable safety, regulatory and system-level performance
requirements. All application-related information in this document (including application descriptions, suggested FTDI devices and other
materials) is provided for reference only. While FTDI has taken care to assure it is accurate, this information is subject to customer
confirmation, and FTDI disclaims all liability for system designs and for any applications assistance provided by FTDI. Use of FTDI
devices in life support and/or safety applications is entirely at the user’s risk, and the user agrees to defend, indemnify, and hold
harmless FTDI from any and all damages, claims, suits, or expense resulting from such use. This document is subject to change without
notice. No freedom to use patents or other intellectual property rights is implied by the publication of this document. Neith er the whole
nor any part of the information contained in, or the product described in this document, may be adapted, or reproduced in any material
or electronic form without the prior written consent of the copyright holder. Future Technology Devices International Ltd, Un it 1, 2
Seaward Place, Centurion Business Park, Glasgow G41 1HH, United Kingdom. Scotland Registered Company Number: SC136640
Appendix A – References
Document/Web References
AN232R-01 FT232R BitBangModes
AN_107 Advanced Driver Options
AN_121 Accessing the EEPROM User Area of FTDI Devices
AN_175 Battery Charger Detection over USB with FT-X Devices
TN_100 USB Vendor ID/ Product ID Guidelines
TN_162 Bus Powered with Power Switching Configuration
https://www.i2c-bus.org/specification/
http://www.usb.org/developers/
Terms Description
List of Tables
Table 3.1 Power and Ground .......................................................................................................... 7
Table 3.2 Common Function pins .................................................................................................... 7
Table 3.3 I2C Interface and CBUS Group (see note 1) ........................................................................ 8
Table 3.4 Power and Ground .......................................................................................................... 8
Table 3.5 Common Function pins .................................................................................................... 9
Table 3.6 Interface and CBUS Group (see note 1) ............................................................................. 9
Table 3.7 CBUS Configuration Control ........................................................................................... 10
Table 6.1 Absolute Maximum Ratings ............................................................................................ 14
Table 6.2 ESD and Latch-Up Specifications .................................................................................... 14
Table 6.3 Operating Voltage and Current ....................................................................................... 15
Table 6.4 I/O Pin Characteristics VCCIO = +3.3V (except USB PHY pins) ........................................... 16
Table 6.5 I/O Pin Characteristics VCCIO = +2.5V (except USB PHY pins) ........................................... 17
Table 6.6 I/O Pin Characteristics VCCIO = +1.8V (except USB PHY pins) ........................................... 18
Table 6.7 USB I/O Pin (USBDP, USBDM) Characteristics .................................................................. 18
Table 6.8 MTP memory Characteristics .......................................................................................... 18
Table 6.9 Internal Clock Characteristics ......................................................................................... 19
Table 10.1 Default Internal MTP Memory Configuration.................................................................... 35
Table 11.1 Reflow Profile Parameter Values .................................................................................... 43