It is a bit bang device to interface that can be used to communicate to various devices over UART, SPI, 3wire, I2C, JTAG, GPIO or many custom protocols. To the host it registers as a USB Communication Device Class (CDC) device.
It is in UART mode by default. In UART mode it can be used as a standard CDC device with configurable baud rate and 8 data bits. You can make use of any tool that supports COM ports, like Visual Studio's Serial Monitor, to send and receive data or configure the baud rate.
Pins TX, RX, DTR and RTS are used in UART mode. DTR and RTS can be set by most tools and can be used as GPIO. There is no flow control implemented.
In BitBang mode, the device can be used similar to an FTDI MPSSE. To enter BitBang mode set the baud rate to 57600 and parity to even. A description of the protocol and its commands can be found in /libs/gatery/doc/BitBangEngine/BitBangEngine.md. There is also a collection of examples and a c++ header-only API in /example/. In contrast to the FTDI chips this is not a clone. It does not pretend to be from FTDI, nor does it support the FTDI driver or API. It acts as a standard CDC device in BitBang mode and can be used by and program that supports writing and reading to serial ports.
Note that on tiny tapeout we choose to follow the pinout templates of the tiny tapeout wiki. The documentation is written for the default pinout. Instead, refer to the pinout table below for each pins function.
An external pull up of 1.5k to 3.3V on USB_DP is required.
# | Input | Output | Bidirectional |
---|---|---|---|
0 | GPIOh0 | GPIOh0/DTR | GPIOl0-CS |
1 | GPIOh1 | GPIOh1/RTS | GPIOl1-MOSI/TX |
2 | GPIOh2 | GPIOh2 | GPIOl2-MISO/RX |
3 | GPIOh3 | GPIOh3 | GPIOl3-CLK |
4 | GPIOh4 | GPIOh4 | GPIOl4-TMS |
5 | GPIOh5 | GPIOh5 | GPIOl5-WAIT |
6 | GPIOh6 | GPIOh6 | USB_DP |
7 | GPIOh7 | GPIOh7 | USB_DN |