FT8U245AM USB FIFO - Fast Parallel Data Transfer IC FEATURES • Single Chip Fast Data Transfer Solution • UHCI / OHCI Compliant • Send / Receive Data over USB at up to 1 M • USB 1.1 Specification Compliant Bytes / sec • USB VID, PID, Serial Number and Product • 384 byte FIFO Transmit buffer / 128 byte FIFO receive buffer for high data throughput Description Strings in external E2PROM. Virtual COM Port Drivers for – • Simple interface to CPU or MCU bus Windows 98 and Windows 98 SE • No in-depth knowledge of USB required as all Windows 2000 USB Protocol is handled automatically within Windows Millennium ** the I.C. Apple iMAC ** FTDI’s Virtual COM port drivers eliminate the Linux ** • need for USB driver development in most • USB ISDN and ADSL Modems cases. • Compact 32 pin ( 7mm x 7mm ) MQFP package • Integrated 6MHz - 48MHz Clock Multiplier aids FCC and CE compliance • O S Integrated 3.3v Regulator – No External Regulator Required • E T Application Areas B O 4.4v .. 5.25v Single Supply Operation GENERAL DESCRIPTION E L High Speed USB Ù PDA Communications USB I/F for Digital Cameras USB I/F for MP3 players High Speed USB Instrumentation Ù USB data transfer cables USB Ù USB null-modem cables USB The FT8U245AM provides an easy cost-effective method of transferring data to / from a peripheral and a host P.C. at up to 8 Million bits ( 1 Megabyte ) per second. It’s simple FIFO-like design makes it easy to interface to any CPU ( MCU ) either by mapping the device into the Memory / IO map of the CPU, using DMA or controlling the device via IO ports. To send data from the peripheral to the host P.C. simply write the byte wide data into the device when the transmitter empty status bit is not active. If the ( 384 byte ) transmit buffer fills up, the device de-asserts transmit empty in order to stop further data being written to the device until some of the FIFO data has been transferred over USB. When the host P.C. sends data to the peripheral over USB, the device will assert the receiver full status bit to let the peripheral know that data is available. The peripheral then reads the data until the receiver full status bit goes inactive, indicating no more data is available to read. By using FTDI’s virtual COM Port drivers, the peripheral looks like a standard COM Port to the application software. Commands to set the baud rate are ignored – the device always transfers data at it’s fastest rate regardless of the application’s baud rate setting. Future Technology Devices Intl. FT8U245AM Preliminary Information Rev 0.9 – Subject to Change Figure 1 – FT8U245AM Block Diagram ( Simplified ) VCC 3V3OUT 3.3 Volt LDO Regulator FIFO Receive Buffer 128 Bytes USBDP Serial Interface Engine ( SIE ) USB Transceiver USBDM USB Protocol Engine FIFO Controller D0 D1 D2 D3 D4 D5 D6 D7 RD# WR RXF# TXE# FIFO Transmit Buffer 384 Bytes USB DPLL EEREQ# EEGNT# XTOUT x8 Clock Multiplier RESET# O S XTIN XTOUT AGND RCCLK AVCC Figure 2 – FT8U245AM I.C. Pinout 24 1 VCC RESET# 8 D6 17 GND RD# WR TXE# VCC RXF# EEREQ# 16 EEGNT# GND D5 D7 9 Future Technology Devices Intl. D4 XXYY USBDP USBDM D3 FT245AM 3V3OUT D1 D2 FTDI EEDATA TEST EECS EESK EEDATA 25 32 EESK EEPROM Interface D0 RCCLK EECS E L TEST 12MHz VCC XTIN B O E T GND 48MHz 6MHZ Oscillator FT8U245AM Preliminary Information Rev 0.9 – Subject to Change FT8U245AM - 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 E T data signals to the SIE block. • 6MHz Oscillator E L The 6MHz Oscillator cell generates a 6MHz reference clock input to the X8 Clock multiplier from an O S external 6MHz crystal or ceramic resonator. • X8 Clock Multiplier B O 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. • Fifo Receive Buffer ( 128 bytes ) Data sent from the USB Host to the FIFO via the USB data out endpoint is stored in the FIFO Receive Buffer and is removed from the buffer by reading the FIFO contents using RD#. Future Technology Devices Intl. FT8U245AM Preliminary Information Rev 0.9 – Subject to Change • FIFO Transmit Buffer ( 384 bytes ) Data written into the FIFO using WR# is stored in the FIFO Transmit Buffer. The Host removes Data from the FIFO Transmit Data by sending a USB request for data from the device data in endpoint. • FIFO Controller The FIFO Controller handles the transfer of data between the external FIFO interface pins and the FIFO Transmit and Receive buffers. • EEPROM Interface The FT8U245AM uses an external 93C46 EEPROM to customise the USB VID, PID, Serial Number and Strings of the FT8U245AM for OEM applications. The FT8U245 Virtual Com Port Drivers rely on a unique device serial number for to bind a unique virtual COM port to each individual device. B O Future Technology Devices Intl. O S E T E L FT8U245AM Preliminary Information Rev 0.9 – Subject to Change Table 1 - FT8U245AM - 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 4 RESET# IN RC timer – used to guarantee clock stability on exiting sleep mode. Clamped low during reset or sleep condition. 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 D0 I/O Bi-directional Data Bus Bit # 0 24 D1 I/O Bi-directional Data Bus Bit # 1 23 D2 I/O Bi-directional Data Bus Bit # 2 22 D3 I/O Bi-directional Data Bus Bit # 3 21 D4 I/O Bi-directional Data Bus Bit # 4 20 D5 I/O Bi-directional Data Bus Bit # 5 19 D6 I/O Bi-directional Data Bus Bit # 6 D7 I/O Bi-directional Data Bus Bit # 7 16 RD# IN Enables Current FIFO Data Byte on D0..D7.when low. Fetches the next FIFO Data Byte ( if available ) from the Receive FIFO Buffer when RD# goes from low to high. 15 WR IN Writes the Data Byte on the D0..D7 into the Transmit FIFO Buffer when WR goes from high to low. 14 TXE# OUT When high, do not write data into the FIFO. When low, data can be written into the FIFO by strobing WR high then low. 12 RXF# OUT When high, do not read data from the FIFO. When low, there is data available in the FIFO which can be read by strobing RD# low then high again. 11 EEREQ# IN 10 EEGNT# OUT Requests the EEPROM contents to be accessed via the Data Bus. When low, allows the EEPROM contents to be accessed via the Data Bus. 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 18 3.3 volt Output from integrated regulator Input to 6MHz Crystal Oscillator Cell Output from 6MHz Crystal Oscillator Cell B O Future Technology Devices Intl. O S E T E L FT8U245AM Preliminary Information Rev 0.9 – Subject to Change FT8U245AM TIMING DIAGRAM – FIFO READ CYCLE T6 T5 RXF# T1 T2 RD# T3 D0..D7 T4 valid data Time Description T1 RD Active Pulse Width T2 RD to RD Pre-Charge Time T3 RD Active to Valid Data T4 Valid Data Hold Time from RD inactive T5 RD Inactive to RXF# T6 RXF inactive after RD cycle B O Future Technology Devices Intl. E T Min O S E L Max Unit 50 ns 50 ns 30 10 5 80 25 ns ns ns ns FT8U245AM Preliminary Information Rev 0.9 – Subject to Change FT8U245AM TIMING DIAGRAM – FIFO WRITE CYCLE T12 T11 TXE# T7 T8 WR T10 T9 D0..D7 valid data Time Description T7 WR Active Pulse Width T8 WR to WR Pre-Charge Time T9 Data Setup Time before WR inactive T10 Data Hold Time from WR inactive T11 WR Inactive to TXE# T12 TXE inactive after RD cycle B O Future Technology Devices Intl. E T Min O S E L Max Unit 50 ns 50 ns 20 10 5 80 25 ns ns ns ns FT8U245AM Preliminary Information Rev 0.9 – Subject to Change Figure 3. FT8U245AM - PACKAGE DESCRIPTION – QFP 7mm x 7mm 9 7 7 9 32 0.8 Pin # 1 B O 1.4 +/- 0.05 1.60 MAX 12o +/- 1o 0.05 Min 0.15 Max O S 1 E L 0.25 0.2 Min Future Technology Devices Intl. E T 0.6 +/- 0.15 0.37 +/- 0.07 0.09 Min 0.16 Max 0.09 Min 0.2 Max 0.35 +/- 0.05 All dimensions in millimetres FT8U245AM Preliminary Information Rev 0.9 – 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 E T 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 mA Voh = VCC – 0.5v Iol1 Digital IO Pins Sink Current mA Vol = + 0.5v Voh1 Input Voltage Threshold ( Low ) Vol1 Input Voltage Threshold ( High ) 2.7 VDif USB Differential Input Sensitivity 0.2 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 ) B O Future Technology Devices Intl. 4 O S 4 E L 0.6 0.3v 2.8 v v v Rl = 1.5k to 3.6v Rl = 15k to GND FT8U245AM Preliminary Information Rev 0.9 – 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 E T the failure of the product might reasonably be expected to result in personal injury. E L This document provides preliminary information that may be subject to change without notice. Contact Information B O O S 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 Glasgow G3 6JA, UK Email : [email protected] 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. FT8U245AM Preliminary Information Rev 0.9 – Subject to Change Appendix A USB Device Descriptors B O O S E L E T 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} E T {* 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 : : : : : : : : B O O S {* 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 : : : : : : : : : E L $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} $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; E T 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; B O O S E L 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 E T EEPROM Data Structure B O O S E L 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} E T 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 : B O O S LABEL : SerStringDes; 0054 12 0055 03 0056 32 0058 32 005A 33 005C 34 005E 35 0060 36 0062 37 0064 38 LABEL : E L 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; 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}