

The FT245RL, manufactured by FTDI Chip, is a USB FIFO (First In, First Out) Controller designed to facilitate seamless data transfer between USB devices and a host system. It acts as a bridge, managing data flow efficiently by temporarily storing data in a queue. This component is widely used in applications requiring USB connectivity, such as embedded systems, data acquisition, and USB-to-parallel interfaces.








The FT245RL is a high-performance USB FIFO controller with the following key specifications:
| Parameter | Value |
|---|---|
| USB Standard | USB 2.0 Full-Speed (12 Mbps) |
| FIFO Data Bus Width | 8-bit |
| Operating Voltage | 3.3V (core) / 5V (I/O) |
| Current Consumption | 15 mA (typical) |
| Data Transfer Rate | Up to 1 MB/s |
| EEPROM | Integrated 1024-bit EEPROM |
| Package | SSOP-28 |
| Operating Temperature | -40°C to +85°C |
The FT245RL comes in a 28-pin SSOP package. Below is the pin configuration:
| Pin No. | Name | Type | Description |
|---|---|---|---|
| 1 | TXE# | Output | Indicates when the FIFO is empty (active low). |
| 2 | RXF# | Output | Indicates when data is available in the FIFO (active low). |
| 3 | RD# | Input | Read strobe signal to read data from the FIFO. |
| 4 | WR | Input | Write strobe signal to write data to the FIFO. |
| 5 | D0 | I/O | Data bus bit 0. |
| 6 | D1 | I/O | Data bus bit 1. |
| 7 | D2 | I/O | Data bus bit 2. |
| 8 | D3 | I/O | Data bus bit 3. |
| 9 | D4 | I/O | Data bus bit 4. |
| 10 | D5 | I/O | Data bus bit 5. |
| 11 | D6 | I/O | Data bus bit 6. |
| 12 | D7 | I/O | Data bus bit 7. |
| 13 | VCCIO | Power | I/O voltage supply (3.3V or 5V). |
| 14 | GND | Ground | Ground reference. |
| 15 | VCC | Power | Core voltage supply (3.3V). |
| 16 | RESET# | Input | Active low reset input. |
| 17 | TEST | Input | Test pin (must be tied to GND for normal operation). |
| 18 | EECS | I/O | EEPROM chip select (used for external EEPROM programming). |
| 19 | EESK | Output | EEPROM clock signal. |
| 20 | EEDATA | I/O | EEPROM data signal. |
| 21 | USBDP | I/O | USB D+ line. |
| 22 | USBDM | I/O | USB D- line. |
| 23 | VCCPLL | Power | PLL voltage supply (3.3V). |
| 24 | GNDPLL | Ground | PLL ground reference. |
| 25 | PWREN# | Output | Power enable signal (active low). |
| 26 | SLEEP# | Output | Indicates USB suspend mode (active low). |
| 27 | CLKOUT | Output | 12 MHz clock output. |
| 28 | NC | - | No connection. |
The FT245RL can be used to interface an Arduino UNO with a USB host. Below is an example Arduino sketch to read data from the FT245RL:
// Example code to read data from FT245RL using Arduino UNO
#define RXF 2 // Pin 2 connected to RXF# of FT245RL
#define RD 3 // Pin 3 connected to RD# of FT245RL
#define D0 4 // Pin 4 connected to D0 of FT245RL
#define D1 5 // Pin 5 connected to D1 of FT245RL
#define D2 6 // Pin 6 connected to D2 of FT245RL
#define D3 7 // Pin 7 connected to D3 of FT245RL
void setup() {
pinMode(RXF, INPUT); // RXF# is an input signal
pinMode(RD, OUTPUT); // RD# is an output signal
pinMode(D0, INPUT); // Data bus pins are inputs
pinMode(D1, INPUT);
pinMode(D2, INPUT);
pinMode(D3, INPUT);
Serial.begin(9600); // Initialize serial communication
}
void loop() {
if (digitalRead(RXF) == LOW) { // Check if data is available
digitalWrite(RD, LOW); // Assert RD# to read data
delayMicroseconds(1); // Small delay for data setup
int data = (digitalRead(D3) << 3) | (digitalRead(D2) << 2) |
(digitalRead(D1) << 1) | digitalRead(D0); // Read 4-bit data
digitalWrite(RD, HIGH); // De-assert RD#
Serial.println(data, HEX); // Print data in hexadecimal format
}
}
Device Not Recognized by Host
No Data Transfer
EEPROM Programming Fails
Can the FT245RL operate at 5V?
What is the maximum data transfer rate?
**Is an external crystal required?