Purposes
Development Tools
TUSB3410 Features
Board Description
Driver Installation
Schematic
Demo and Testing Program
How to Buy
Purposes
There are two purposes for this board:
Using RAM-based 8052-core USB peripheral chip for 8052 development is ignored. The biggest advantage is that you don't need to burn you code in flash or EPROM any more, code is in the RAM. You can download your code directly from PC through the USB port, so it is very fast and no any times limitation (AT89S can reflash about 1000 times).
16K code space and 2K data (XDATA) can meet most of 8052-based applications. I need to emphasis that the 16K code space is 'VERY' large in USB RAM based-8052 core. Because, most of applications can be divided into small tasks in sequence or independently. You can do one task first, then load new code to do next and so on. Remember, loading new code into the TUSB3410 is just in seconds. A good example is a MCU, EPROM programmer. In traditional way, a flash-based MCU is used. For each type IC, one piece of code is needed. When supported ICs increasing, the code space will increase too. By USB RAM-based MCU, however, everything is changed. The code space is no longer a problem. Writing your code independently for each supported IC and load it into RAM when you need to program this IC.
Besides the standard 8052 features, you can learn DMA, FIFO, I2C, vector interrupt and more.
The board is based on TI TUSB3410 chip, which is a full speed USB peripheral controller with standard 8082 core, so any 8052 development tools can be used for it. Keil and IAR C compilers are popular and very reliable compilers. A wide range of options are available for software development, including free assembly language tools and SDCC free C compiler.
USB Features
Fully compliant with USB 2.0 full speed Specifications
Supports 12-Mbps USB data rate (full speed)
Supports USB suspend, resume, and remote wakeup operations
Supports two power source modes:
Bus-powered mode
Self-powered mode
Can support a total of 3-input and 3-output (interrupt, bulk) endpointsGeneral Features
Integrated 8052 microcontroller with
- 256 × 8 RAM for internal data
- 10K × 8 ROM (with USB and I2C boot loader)
- 16K × 8 RAM for code space loadable from host or I2C port
- 2K × 8 Shared RAM used for data buffers and endpoint descriptor blocks (EDB)
- Four GPIO pins from 8052 port 3
- Master I2C controller for EEPROM device access
- MCU operates at 24 MHz providing 2 MIPS operation
- 128-ms Watchdog Timer
Built-in two-channel DMA controller for USB/UART bulk I/O
Operates from a 12-MHz crystal
Supports USB suspend and resume
Supports remote wake-up
3.3-V operation with 1.8-V core operating voltage provided by on-chip 1.8-V voltage regulatorEnhanced UART Features
Software/hardware flow control:
- Programmable Xon/Xoff characters
- Programmable Auto-RTS\/DTR\ and Auto-CTS\/DSR\
Automatic RS485-bus transceiver control, with and without echo
Selectable IrDA mode for up to 115.2 kbps transfer
Software selectable baud rate from 50 to 921.6 k baud
Programmable serial-interface characteristics
- 5-, 6-, 7-, or 8-Bit characters
- Even, odd, or no parity-bit generation and detection
- 1-, 1.5-, or 2-Stop bit generation
Line break generation and detection
Internal test and loop-back capabilities
Modem-control functions (CTS\, RTS\, DSR\, DTR\, RI\, and DCD\)
Internal diagnostics capability
Loopback control for communications link-fault isolation
Break, parity, overrun, framing-error simulation
The TUSB3410 provides bridging between a USB port and an enhanced UART serial port. The TUSB3410
contains all the necessary logic to communicate with the host computer using the USB bus. It contains an 8052 microcontroller
unit (MCU) with 16K bytes of RAM that can be loaded from the host or from external on-board memory via an I2C bus.
It also contains 10K bytes of ROM that allow the MCU to configure the USB port at boot time. The ROM code also
contains an I2C boot loader. All the device functions such as the USB command decoding, UART setup, and error reporting
are managed by the internal MCU firmware under the auspices of the PC host.
The TUSB3410 can be used to build an interface between a legacy serial peripheral device and a PC with USB ports,
such as a legacy-free PC. Once configured, data flows from the host to the TUSB3410 via USB OUT commands and then
out from the TUSB3410 on the SOUT line. Conversely, data flows into the TUSB3410 on the SIN line and then into
the host via USB IN commands.
What the difference between version A and version B
Resource
I/O pins
DIP Switch settings
DIP |
ON |
OFF |
1 |
CTS connect to the transceiver | CTS disconnect to the RS232 transceiver |
2 |
RTS connect to the transceiver | RTS disconnect to the transceiver |
3 |
SIN connect to the transceiver | SIN disconnect to the transceiver |
4 |
SOUT connect to the transceiver | SOUT disconnect to the transceiver |
5 |
Led2 connect to the P3.3 | Led2 disconnect from the P3.3 |
6 |
Led3 connect to the P3.4 | Led3 disconnect from the P3.4 |
7 |
PB2 connect to the DCD | PB2 disconnect from the DCD |
8 |
PB3 connect to the DSR | PB3 disconnect from the DSR |
Jumper |
Close |
Open |
JP1 |
24LCXX writing is enabled | 24LCXX write protection |
Terminal Pads
These pads are used for connecting your prototype circuit to the core. You can use proper
connector or direct solder wires to those pads.
Pin name |
Function |
3.3V |
To power your circuit in prototype area. Max current should be less than 200mA |
P3.0, P3.1, P3.3, P3.4 |
Four GPIO pins with special function, see 8052 datasheet. The P3.3 and P3.4 are connected to LED2 and LED3 when DIP5 and DIP6 are ON. If you want P3.3 or P3.4 as output, DIP5 or DIP6 can be ON or OFF. When you want P3.3 or P3.4 as an input, it is recommended to turn off the DIP5,6. There is a strong pull-up to those pins when the DIP5,6 are ON. |
DTR |
Output only. The Led1 is shared with this pin |
DCD |
Input only. When DIP7 is ON, the PB2 is connected to the DCD. Driving this pin is a little dangerous. Because the PB2 may be pressed at any time, it is possible short your circuit output. |
DSR |
Input only. When DIP8 is ON, the PB3 is connected to the DSR. Driving this pin is a little dangerous. Because the PB3 may be pressed at any time, it is possible short your circuit output. |
CTS |
Input only. See DIP1 setting |
RTS |
Output only. See DIP2 setting |
SIN |
Input only. See DIP3 setting |
SOUT |
Output only. See DIP4 setting |
CLKOUT |
This is a programmable clock output pin. It can be configured to 3.556MHz or the UART baudrate. You can disable the clock as well. |
5V |
This power is directly connected to the USB 5V without any protection. If you do need to use it, make sure no short circuit and the max current should be less than 300mA.. Adding a current limit is highly recommended, such as TPS2054 or similar ICs. Any short or heavy load may damage you PC. |
TI AppLoader Driver
In general, the TI AppLoader Driver is needed to load your 8052 code from host PC through the USB port to this board. The exception is that you only want your code downloaded from serial EEPROM through I2C.
The TI AppLoader Driver is a Windows USB device driver that enables firmware for TI's TUSB3410
device to be kept on the PC rather than in the USB device's EEPROM. When a USB system using this device is inserted
onto the bus, Windows associates it with this driver, which downloads the firmware to the device.
The install should be run before the device (board) is initially plugged into the system. If it has already been
plugged into that PC, and Windows enumerated it as an "Unknown/Other" device, the device should be kept
plugged in during the driver installation.
CONFIGURATION OF THE FIRMWARE FILE:
The name of the firmware file that will get downloaded to the USB system is specified in the INF file for the driver.
The INF file can be found in the \WINDOWS\INF directory. On Windows98SE, it is named "TIUpDatr.inf".
On Windows2000, WindowsME and WindowsXP, it is named "OEMxxx.INF", where the "xxx" is a system-generated
incrementing number based on how many third party drivers have been installed on that system.
The header at the top of the INF reads:
;
; TI Application Firmware Loader Driver INF
;
The name of the firmware file to be downloaded is listed under [SourceDisksFiles] and [DriverCopyFiles] AND referenced
under the [DriverHwAddReg] section. (These values MUST match).
By default, the INF is configured to look for a particular *.bin file in the \WINDOWS\SYSTEM32\DRIVERS directory.
This needs to be an absolute binary file. If using an IAR compiler, this is the *.i51 output file. (Either change
the name to the one specified in the INF, or change the INF as described below.) If using a Keil compiler to produce
your own firmware file, it is necessary to process the *.hex output file with Keil's "hex2bin.exe" utility.
(This utility can be downloaded from the support page on Keil's website at http://www.keil.com.) After processing
the *.hex file with the utility, the resulting *.bin file should be placed in the directory. Again, make sure the
name matches the names in the INF file. The default name is TSB3410.bin.
If you would like to use a name other than the one specified, simply replace all the instances of that name in
the INF with the filename of choice. The current installation of this driver should then be uninstalled and an
"Update Driver" operation should be performed in order to cause windows to reprocess the INF and update
the firmware filename in the registry.
When using AppLoader, it is best to not use an EEPROM on the I2C bus. First, it isn't necessary, since there is
no need to keep custom device/string descriptors on the USB device, as there is for a production system. Further,
an EEPROM may interfere with AppLoader operation if the VID/PID in the EEPROM's device descriptor don't match the
ones in the AppLoader INF, or if there is firmware in the EEPROM.
By default, the AppLoader INF recognizes the default VID/PID pairs present within the bootcode of the TUSB3210
device. Therefore, the easiest way to ensure download is to make sure there is no EEPROM on the I2C interface.
Virtual COM port device driver
The installation program for the TUSB3410 UART PDK simply copies the required driver and INF
files to a directory of the users choosing. By default, this directory is:
<Drive>:\Program Files\Texas Instruments\TI TUSB3410 <Win2K or Win9x> Driver Installation Files Setup
It is best to run the install first to create this directory of files, and then plug the device. When Windows detects
the device it will prompt the user for a driver (via the "Found New Hardware Wizard"). When prompted
for a driver, point the wizard to this directory of driver files (by selecting the option in the wizard that allows
you to specify a location of the driver files and then browse to that directory). Then say "OK" and all
the files should load without issue.
NOTE: The wizard will actually prompt for files twice. Point it to this same directory both times. This is the
expected behavior.
If you have already plugged in your device and Windows has determined it to be an "Unknown/Other" device,
you must select the device in the Windows Device Manager (Under the Unknown/Other Device Class), display the properties
for the device (by double-clicking it), and then clicking the "Update Driver" button on the "Driver"
properties tab. This will then bring up a wizard that you need to point to the directory of driver files created
by the install as described above.
Driver Uninstallation
The driver may be uninstalled by going to "Add/Remove Programs" in the Windows Control
Panel, or by running the install again after it has been previously installed.
Download your firmware to the board
After built your code by any compiler and the binary code has been copied to the default
path, just press the RESET button on the board, the code will be downloaded into the board automatically.
CAUTION:
During the soldering, you must disconnect the USB cable. Your body and soldering iron should
ground properly. Otherwise, the board may be damaged.
Connect to 5V logic
The board works with 3.3V logic. If you do need to connect this board to 5V logic, keep in mind:
Normally, no problem to drive a 5V logic input. But it's possible there is problem to drive multiple hysteresis
inputs.
The board cannot accept 5V input. The simplest way is using two resistors or a transistor to handle it.
The schematic is in PDF format.
The price of the board is US$44.95. You may try my ebay auction to get a better deal.
I accept PayPal and money order. If you need one, please let me know at: xo_chen@yahoo.com