FTDI FT8U245AM

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
•
Application Areas
cases.
USB ISDN and ADSL Modems
•
Compact 32 pin ( 7mm x 7mm ) MQFP package
High Speed USB
•
Integrated 6MHz - 48MHz Clock Multiplier aids
USB I/F for Digital Cameras
FCC and CE compliance
USB I/F for MP3 players
Integrated 3.3v Regulator – No External
High Speed USB Instrumentation
•
Ù USB data transfer cables
USB Ù USB null-modem cables
USB
Regulator Required
•
Ù PDA Communications
4.4v .. 5.25v Single Supply Operation
GENERAL DESCRIPTION
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
GND
48MHz
6MHZ
Oscillator
x8 Clock
Multiplier
EEPROM
Interface
RESET#
XTIN
EECS
EESK
EEDATA
TEST
12MHz
RCCLK
25
32
24
1
VCC
RESET#
3V3OUT
D4
XXYY
USBDP
8
D6
17
GND
WR
TXE#
VCC
RXF#
EEREQ#
16
EEGNT#
GND
D5
D7
9
Future Technology Devices Intl.
D3
FT245AM
TEST
USBDM
D2
FTDI
EEDATA
D1
RD#
EESK
D0
XTIN
VCC
XTOUT
AGND
RCCLK
AVCC
EECS
Figure 2 – FT8U245AM I.C. Pinout
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
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.
•
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.
Future Technology Devices Intl.
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
18
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
Future Technology Devices Intl.
3.3 volt Output from integrated regulator
Input to 6MHz Crystal Oscillator Cell
Output from 6MHz Crystal Oscillator Cell
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
Min
T1
RD Active Pulse Width
50
ns
T2
RD to RD Pre-Charge Time
50
ns
T3
RD Active to Valid Data
T4
Valid Data Hold Time from RD inactive
10
T5
RD Inactive to RXF#
5
T6
RXF inactive after RD cycle
80
Future Technology Devices Intl.
Max
30
Unit
ns
ns
25
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
Min
T7
WR Active Pulse Width
50
ns
T8
WR to WR Pre-Charge Time
50
ns
T9
Data Setup Time before WR inactive
T10
Data Hold Time from WR inactive
10
T11
WR Inactive to TXE#
5
T12
TXE inactive after RD cycle
80
Future Technology Devices Intl.
Max
20
Unit
ns
ns
25
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
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
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
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
4
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
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
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.
FT8U245AM Preliminary Information Rev 0.9 – 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}