usb-bridge
communicates over USB via FTDI USB Bridge IC FT221X
More...
#include <stdint.h>
#include <avr/io.h>
#include "Usb.h"
Go to the source code of this file.
|
usb_reg | FtCtrl_ddr = &DDRC |
|
usb_reg | FtCtrl_port = &PORTC |
|
usb_reg | FtCtrl_pin = &PINC |
|
usb_reg | FtData_pin = &PIND |
|
usb_reg | FtData_ddr = &DDRD |
|
usb_reg | FtData_port = &PORTD |
|
usb_pin | FtMiso = PC2 |
|
usb_pin | FtChipSelect = PC0 |
|
usb_pin | FtClock = PC1 |
|
usb_pin | FtMiosio0 = PD0 |
|
usb-bridge
communicates over USB via FTDI USB Bridge IC FT221X
About the FT221X
:
- Provides an embedded interface to a USB host
- embedded system microcontroller is the FT1248 master
- microcontroller sees
FT221X
as FT1248 slave
- USB host sees
FT221X
as a USB device
USB
protocol is entirely handled by the FT221X
- Data:
- USB 2.0 Full Speed capable
- Data transfer rate up to 1MByte/s (TODO: measure)
- 512-byte receive buffer
- 512-byte transmit buffer
- USB Driver options for Windows, Mac OS X, and Linux:
- Virtual Com Port (VCP)
- this is what
pyserial
uses
- Chromation uses
pyserial
for the Python API
- D2XX
- FTDI-specific extended functionality
- write your own Python package to wrap D2XX API calls
- examples available on the internet
- Both types free to download from FTDI:
FT221X
usage in Chromation usb-bridge
:
USB
to FT1248
usb-bridge
uses FT1248
mode with 8-bit-wide data bus
USB
protocol is entirely handled by the FT221X
usb-bridge
firmware implements an FT1248
master
usb-bridge
firmware is ignorant of USB
specifics
- Program internal 2kB memory via FTDI GUI
FT_Prog
:
- Chromation serial number:
CHROMATION123456
- each dev-kit has a unique six-digit serial number
- Ft1248 Settings
- Clock Polarity High:
uncheck
- Bit Order LSB:
check
- Flow Ctrl not selected:
check
- implements flow control when
FT221X
is not selected
- CBUS Signals
- Flow control:
- when
FT221X
pin CS#
(Not Chip Select) is HIGH:
- reflect status of receive buffer on
FT221X
pin MISO
- receive buffer has data:
MISO
is LOW
- receive buffer is empty:
MISO
is HIGH
- usage: wait for
MISO
LOW before a read
- reflect status of transmit buffer on
FT221X
pin MIOSIO[0]
- transmit buffer is full:
MIOSIO[0]
is LOW
- transmit buffer has room:
MIOSIO[0]
is HIGH
- usage: wait for
MIOSIO[0]
HIGH before a write
- Dev-kit hard reset:
FT221X
pin CBUS3
connects to the microcontroller RESET pin
- USB host drives CBUS3 LOW to hard reset the dev-kit
Definition in file Usb-Hardware.h.