FT8U232AM U-UART - USB UltraBaud Data Transfer IC with RS232 / RS422 and CPU I/F Options FEATURES • Single Chip Multi-Function Data Transfer Virtual COM Port Drivers for – Solution Windows 98 and Windows 98 SE • RS232 link from 300 baud to 920K baud Windows 2000 • RS422/RS485 Link to 2000K baud Windows Millennium ** • 384 byte receive buffer / 128 byte transmit Apple iMAC ** buffer for high data throughput Linux ** • • Full hardware assisted or X-On/X-Off • Application Areas handshaking USB ISDN and ADSL Modems Support for Event Characters and Line Break USB 56k / V90 Modems • Auto Transmit Buffer control for RS485 • Compact 32 pin ( 7mm x 7mm ) MQFP package Ù PDA Interface Cables USB Ù RS232 Converters / Cables USB Ù RS422 / RS485 High Speed Industrial • Integrated 6MHz - 48MHz Clock Multiplier aids Links FCC and CE compliance USB Digital Cameras Integrated 3.3v Regulator – No External USB I/F for MP3 players Regulator Required Ultra-high performance Serial Port for legacy - • 4.4v .. 5.25v Single Supply Operation free PC system boards / Easy PC’s • UHCI / OHCI Compliant USB Instrumentation • USB 1.1 Specification Compliant • USB VID, PID, Serial Number and Product USB condition • Ù USB data transfer cables USB Ù USB null-modem cables USB ÙSerial Bar Code Readers USB Description Strings in external E2PROM. Note ** = Currently in development GENERAL DESCRIPTION The FT8U232AM is a cost-effective single chip USB UART ( U-UART ) solution for transferring serial data over USB. With data transfer rates of up to 920k baud ( RS232 ) and 2,000 k baud ( RS422 / RS485 ) , the FT8U232AM significantly raises the performance level above that above that of traditional ISA and PCI based UART solutions whilst offering true plug and play and easy interfacing through it’s USB interface. Its flexible architecture allows this IC to be used in many different application areas - USB modems, Legacy RS232 Ù USB Converter cables, USB interface cables for PDA’s , Bar Code Scanners , RS422 data links and instrumentation – in fact almost any equipment that previously used a slow RS232 link for communication. Virtual COM port drivers are available for the FT8U232AM for Windows ’98, Windows 98 SE and Windows 2000. Drivers for other operating systems are currently under development. Future Technology Devices Intl. FT8U232AM Preliminary Information Rev 0.8 – Subject to Change Figure 1 – FT8U232AM Block Diagram ( Simplified ) VCC 48MHz 3V3OUT 3.3 Volt LDO Regulator Baud Rate Generator Dual Port TX Buffer 128 bytes USBDP USB Transceiver USBDM Serial Interface Engine ( SIE ) USB Protocol Engine UART UART FIFO Controller TXD RXD RTS# CTS# DTR# DSR# DCD# RI# TXDEN USBEN TXLED# RXLED# Dual Port RX Buffer 384 Bytes USB DPLL EEPROM Interface XTOUT 48MHz 6MHZ Oscillator x8 Clock Multiplier XTIN EECS EESK EEDATA GND RESET# 12MHz SLEEP# TEST PWRCTL RCCLK VCC 25 32 24 1 FTDI EEDATA VCC RESET# 3V3OUT USBDP USBDM 8 17 GND USBEN PWRCTL VCC TXLED# SLEEP# 16 RXLED# GND DSR# DCD# RI# XXYY 9 Future Technology Devices Intl. CTS# DTR# FT232AM TEST RXD RTS# TXDEN EESK TXD XTIN AGND XTOUT RCCLK AVCC EECS Figure 2 – FT8U232AM I.C. Pinout FT8U232AM Preliminary Information Rev 0.8 – Subject to Change FT8U232AM - FUNCTIONAL BLOCK DESCRIPTION • 3.3V LDO Regulator The 3.3V LDO Regulator generates the 3.3 volt 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. • USB Transceiver The USB Transceiver Cell provides the USB 1.1 full-speed physical interface to the USB cable. The output drivers provide 3.3 volt level slew rate control signalling, whilst a differential receiver and two single ended receivers provide USB data in, SEO and USB Reset condition detection. • USB DPLL The USB DPLL cell locks on to the incoming NRZI USB data and provides separate recovered clock and data signals to the SIE block. • 6MHz Oscillator The 6MHz Oscillator cell generates a 6MHz reference clock input to the X8 Clock multiplier from an external 6MHz crystal or ceramic resonator. • X8 Clock Multiplier The X8 Clock Multiplier takes the 6MHz input from the Oscillator cell and generates a 12MHz reference clock for the SIE, USB Protocol Engine and UART FIFO controller blocks. It also generates a 48MHz reference clock for the USB DPPL 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 to the USB 1.1 specification, it performs bit stuffing / un-stuffing and CRC5 / CRC16 generation / checking 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 ( Chapter 9 ) requests generated by the USB host controller and the commands for controlling the functional parameters of the UART. • Dual Port TX Buffer ( 128 bytes ) Data from the USB data out endpoint is stored in the Dual Port TX buffer and removed from the buffer to the UART transmit register under control of the UART FIFO controller. Future Technology Devices Intl. FT8U232AM Preliminary Information Rev 0.8 – Subject to Change • Dual Port RX Buffer ( 384 bytes ) Data from the UART receive register is stored in the Dual Port RX buffer prior to being removed by the SIE on a USB request for data from the device data in endpoint. • UART FIFO Controller The UART FIFO controller handles the transfer of data between the Dual Port RX and TX buffers and the UART transmit and receive registers. • UART The UART performs asynchronous 7 / 8 bit Parallel to Serial and Serial to Parallel conversion of the data on the RS232 ( RS422 and RS485 ) interface. Control signals supported by the UART include RTS, CTS, DSR , DTR, DCD and RI. The UART provides a transmitter enable control signal ( TXDEN ) to assist with interfacing to RS485 transceivers. • Baud Rate Generator The Baud Rate Generator provides a x16 clock input to the UART from the 48MHz reference clock and consists of a 14 bit prescaler and 2 register bits which provide fine tuning of the baud rate ( e.g. to divide by 2.5 ). This determines the Baud Rate of the UART which is programmable from 300 baud to 2 million baud. For more details please contact FTDI. • EEPROM Interface Though the FT8U232AM will work without the optional EEPROM, an external 93C46 EEPROM can be used to customise the USB VID, PID, Serial Number and Strings of the FT8U232AM for OEM applications. The EEPROM is also required for applications where multiple FT8U232AM’s are connected to a single PC as the drivers rely on a unique serial number for each device to bind a unique virtual COM port to each individual device. Future Technology Devices Intl. FT8U232AM Preliminary Information Rev 0.8 – Subject to Change Table 1 - FT8U232AM - PINOUT DESCRIPTION Pin # Signal Type Description 7 USBDP I/O USB Data Signal Plus – Requires 1.5k pull-up to 3V3OUT 8 USBDM I/O USB Data Signal Minus 6 3V3OUT OUT 27 XTIN IN 28 XTOUT OUT 31 RCCLK I/O RC timer – used to guarantee clock stability on exiting sleep mode 4 RESET# IN Resets entire device using external RC network 32 EECS I/O Optional EEPROM – Chip Select 1 EESK I/O Optional EEPROM – Clock 2 EEDATA I/O Optional EEPROM – Data I/O 5 TEST IN Puts device in i.c. test mode – must be tied to GND 25 TXD OUT 24 RXD IN 23 RTS# OUT 22 CTS# IN 21 DTR# OUT 20 DSR# IN UART – Data Set Ready Control Input 19 DCD# IN UART – Data Carrier Detect Control Input 18 RI# IN UART – Ring Indicator Control Input 16 TXDEN OUT UART – Enable Transmit Data for RS485 15 USBEN OUT USB Enabled – High after device is configured via USB 14 PWRCTL IN 12 TXLED# O.C. LED Drive - Pulses Low when Transmitting Data via USB 11 RXLED# O.C. LED Drive - Pulses Low when Receiving Data via USB 10 SLEEP# OUT Goes Low during USB Suspend Mode 3,13,26 VCC PWR Device - +4.4 volt to +5.25 volt Power Supply Pins 9.17 GND PWR Device – Ground Supply Pins 30 AVCC PWR Device - Analog Power Supply for the internal x8 clock multiplier 29 AGND PWR Device - Analog Ground Supply for the internal x8 clock multiplier Future Technology Devices Intl. 3.3 volt Output from integrated regulator Input to 6MHz Crystal Oscillator Cell Output from 6MHz Crystal Oscillator Cell UART – Transmit Data Output UART – Receive Data Input UART – Request To Send Control Output UART – Clear To Send Control Input UART – Data Terminal Ready Control Output Bus Powered – Tie Low / Self Powered – Tie High FT8U232AM Preliminary Information Rev 0.8 – Subject to Change Figure 3. FT8U232AM - PACKAGE DESCRIPTION – QFP 7mm x 7mm 9 7 7 9 32 0.8 Pin # 1 1 0.37 +/- 0.07 1.4 +/- 0.05 1.60 MAX 12o +/- 1o 0.05 Min 0.15 Max 0.09 Min 0.16 Max 0.09 Min 0.2 Max 0.25 0.2 Min Future Technology Devices Intl. 0.6 +/- 0.15 0.35 +/- 0.05 All dimensions in millimetres FT8U232AM Preliminary Information Rev 0.8 – Subject to Change Absolute Maximum Ratings o o Storage Temperature ……………………………………………………. -65 C to + 150 C Ambient Temperature ( Power Applied )……………………………….. 0 C to + 70 C VCC Supply Voltage ……………………………………………….…….. -0.5v to +6.00v DC Input Voltage - Inputs ……………………………………………….. -0.5v to VCC + 0.5v DC Input Voltage - High Impedance Bidirectionals …………………… -0.5v to VCC + 0.5v DC Output Current – Outputs …………………………………………… 24mA DC Output Current – Low Impedance Bidirectionals …………………. 24mA Power Dissipation ………………………………………………………… 500mW o o DC Characteristics ( Ambient Temperature = 0 .. 70 Degrees C ) Description Min Max Units 4.4 5.25 v Conditions VCC Operating Supply Voltage Icc1 Operating Supply Current 50 mA Normal Operation Icc2 Operating Supply Current 250 uA USB Suspend Ioh1 Digital IO Pins Source Current 4 mA Voh = VCC – 0.5v Iol1 Digital IO Pins Sink Current 8 mA Vol = + 0.5v Voh1 Input Voltage Threshold ( Low ) Vol1 Input Voltage Threshold ( High ) 2.7 v VDif USB Differential Input Sensitivity 0.2 v VCom USB Differential Common Mode 0.8 2.5 v URxt USB Single Ended Rx Threshold 0.8 2.0 v UVh USB IO Pins Static Output ( Low ) UVl USB IO Pins Static Output ( High ) Future Technology Devices Intl. 0.6 0.3v 2.8 v Rl = 1.5k to 3.6v Rl = 15k to GND FT8U232AM Preliminary Information Rev 0.8 – Subject to Change Disclaimer © Future Technology Devices International Limited – 1999, 2000 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 documentation 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 product. 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 preliminary information that may be subject to change without notice. Contact Information Future Technology Devices Intl. Limited Telephone : +44 ( 0 ) 141 353 2565 St. George’s Studios Fax : +44 ( 0 ) 141 353 2656 93/97 St. George’s Road Email : [email protected] Glasgow G3 6JA, UK Internet : http://www.ftdi.co.uk Agents and Sales Representatives Please visit our internet site for the latest contact details of our Agents and Sales Representatives world-wide. Future Technology Devices Intl. FT8U232AM Preliminary Information Rev 0.8 – Subject to Change Appendix A USB Device Descriptors USB Device Descriptors Note: E - replaced by E2Rom Value, C - modified by configuration option {* device descriptor *} LABEL : Device_Des; 0010 0011 0012 0014 0015 0016 0017 12 01 10 01 00 00 00 08 Val Val Val Val Val Val Val : : : : : : : Device_Len;{length of this descriptor in bytes} $01;{Device descriptor type} $10,$01;{USB Spec rev 1.10} $00;{Device class ?} $00;{Device subclass ?} $00;{Device protocol ?} Max_Length;{maximum packet size} LABEL : Device_Des_Vendor; E E 0018 03 04 001A 01 60 Val : $03,$04;{Vendor ID FTDI} Val : $01,$60;{product number 6001} LABEL : Device_Des_Vendor_End; E 001C 001E 001F 0020 0021 00 02 01 02 03 01 Val Val Val Val Val : : : : : $00,$02;{device release number 02.00} $01;{index of string descriptor describing manufacturer} $02;{index of string descriptor describing product} $03;{index of string descriptor describing serial number} $01;{number of possible configurations} {* end of device descriptor *} LABEL : Device_Des_End; LABEL : Config_Des; {* configuration descriptor *} 0022 0023 0024 0026 0027 0028 EC 0029 E 002A 09 02 20 00 01 01 00 80 2D Val Val Val Val Val Val Val Val : : : : : : : : $09;{length of this descriptor in bytes} $02;{Configuration descriptor} Config_Len,$00;{length of data returned for all things} $01;{number of interfaces supported by this configuration} $01;{configuration value} $00;{index of string descriptor describing this configuration} 10000000b;{configured as bus powered and not remote wakeup} 45;{maximum power in 2 mA ie 90mA for now} {* end of configuration descriptor *} LABEL : Interface_Des; {* interface descriptor *} 002B 002C 002D 002E 002F 0030 0031 0032 0033 09 04 00 00 02 FF FF FF 02 Val Val Val Val Val Val Val Val Val : : : : : : : : : $09;{length of this descriptor in bytes} $04;{Interface descriptor} $00;{interface number} $00;{alternate setting} $02;{number of endpoints excluding 0 = 1} $ff;{class code} $ff;{subclass} $ff;{protocol code} $02;{index of string descriptor describing this interface} {* end of interface descriptor *} LABEL : Interface_Des_End; LABEL : Endpoint_Des; LABEL : Endpoint3_Des_End; 0034 0035 0036 0037 0038 003A 07 05 81 02 40 00 00 Val Val Val Val Val Val : : : : : : $07;{length of this descriptor in bytes} $05;{End point descriptor} 10000001b;{in endpoint at address 1} 00000010b;{attribute as bulk} 64,$00;{maximum packet size} $00;{interval for polling endpoint for data transfers} LABEL : Endpoint3_Des; {* end point descriptor *} 003B 003C 003D 003E 003F 0041 07 05 02 02 40 00 00 Val Val Val Val Val Val : : : : : : $07;{length of this descriptor in bytes} $05;{End point descriptor} 00000010b;{out endpoint at address 2} 00000010b;{attribute as bulk} 64,$00;{maximum packet size} $00;{interval for polling endpoint for data transfers} LABEL : Endpoint_Des_End; LABEL : Config_Des_End; LABEL : Str0_Des; 0042 0043 0044 LABEL : 04 Val : Str0_Len; {length of string descriptor} 03 Val : $03; {type string} 09 04 Val : $09,$04; {language ID 0009 English} Str0_Des_End; LABEL : Str1_Des; E 0046 E 0047 E 0048 E 004A E 004C E 004E LABEL : 0A Val : 03 Val : 46 00 Val : 54 00 Val : 44 00 Val : 49 00 Val : Str1_Des_End; Str1_Len; {length of string descriptor} $03; {type string} 'F',$00; 'T',$00; 'D',$00; 'I',$00; LABEL : Str2_Des; E 0050 E 0051 E 0052 E 0054 E 0056 E 0058 E 005A E 005C E 005E E 0060 E 0062 E 0064 E 0066 E 0068 E 006A E 006C LABEL : 1E Val : 03 Val : 55 00 Val : 53 00 Val : 42 00 Val : 20 00 Val : 3C 00 Val : 2D 00 Val : 3E 00 Val : 20 00 Val : 53 00 Val : 65 00 Val : 72 00 Val : 69 00 Val : 61 00 Val : 6C 00 Val : Str2_Des_End; Str2_Len; {length of string descriptor} $03; {type string} 'U',$00; 'S',$00; 'B',$00; ' ',$00; '<',$00; '-',$00; '>',$00; ' ',$00; 'S',$00; 'e',$00; 'r',$00; 'i',$00; 'a',$00; 'l',$00; LABEL : Str3_Des; E 006E E 006F E 0070 E 0072 E 0074 E 0076 E 0078 E 007A E 007C E 007E LABEL : 12 Val : 03 Val : 31 00 Val : 32 00 Val : 33 00 Val : 34 00 Val : 35 00 Val : 36 00 Val : 37 00 Val : 38 00 Val : Str3_Des_End; Str3_Len; $03; '1',00; '2',00; '3',00; '4',00; '5',00; '6',00; '7',00; '8',00; {serial number string} {type string} Appendix B EEPROM Data Structure E2Rom Data example 0000 0002 0004 0006 0008 0009 000A 000C 00 03 01 00 A0 2D 00 00 000E 000F 0010 0011 0012 0013 94 0C A0 34 D4 12 00 04 60 02 00 00 Val Val Val Val Val Val Val Val : : : : : : : : $00,$00;{Configuration value} $03,$04;{Vendor ID FTDI} $01,$60;{product number 6001} $00,$02;{device release number} 10100000b; {config descriptor value bus powered and remote wakeup} 45; {max power = value * 2 mA} $00,$00;{reserved} $00,$00;{reserved} VAL Val VAL Val VAL Val : : : : : : PTR_ManStringDes; ManStringDes_Len; {length of string descriptor} PTR_ProdStringDes; ProdStringDes_Len; {length of string descriptor} PTR_SerStringDes; SerStringDes_Len; LABEL : ManStringDes; 0014 0C 0015 03 0016 41 0018 6E 001A 64 001C 79 001E 73 LABEL : Val : ManStringDes_Len; Val : $03; {type string} 00 Val : 'A',$00; 00 Val : 'n',$00; 00 Val : 'd',$00; 00 Val : 'y',$00; 00 Val : 's',$00; ManStringDes_End; {length of string descriptor} LABEL : ProdStringDes; 0020 34 0021 03 0022 57 0024 6F 0026 6E 0028 64 002A 65 002C 72 002E 66 0030 75 0032 6C 0034 6C 0036 20 0038 55 003A 53 003C 42 003E 20 0040 3C 0042 2D 0044 3E 0046 20 0048 53 004A 65 004C 72 004E 69 0050 61 0052 6C LABEL : Val : ProdStringDes_Len; {length of string descriptor} Val : $03; {type string} 00 Val : 'W',$00; 00 Val : 'o',$00; 00 Val : 'n',$00; 00 Val : 'd',$00; 00 Val : 'e',$00; 00 Val : 'r',$00; 00 Val : 'f',$00; 00 Val : 'u',$00; 00 Val : 'l',$00; 00 Val : 'l',$00; 00 Val : ' ',$00; 00 Val : 'U',$00; 00 Val : 'S',$00; 00 Val : 'B',$00; 00 Val : ' ',$00; 00 Val : '<',$00; 00 Val : '-',$00; 00 Val : '>',$00; 00 Val : ' ',$00; 00 Val : 'S',$00; 00 Val : 'e',$00; 00 Val : 'r',$00; 00 Val : 'i',$00; 00 Val : 'a',$00; 00 Val : 'l',$00; ProdStringDes_End; LABEL : SerStringDes; 0054 12 0055 03 0056 32 0058 32 005A 33 005C 34 005E 35 0060 36 0062 37 0064 38 LABEL : Val : SerStringDes_Len; Val : $03; {type string} 00 Val : '2',00; 00 Val : '2',00; 00 Val : '3',00; 00 Val : '4',00; 00 Val : '5',00; 00 Val : '6',00; 00 Val : '7',00; 00 Val : '8',00; SerStringDes_End; 0066 00 00 Val : $00,$00; {reserved for Checksum}