TM expandIO-USB Driver-free USB I/O expander for software-controlled peripherals Summary Figure 1: How expandIO-USB is an ultra-low cost USB I/O expander. expandIO-USB PC It allows a PIC microcontroller to be remotely controlled works via USB, significantly reducing time-to-market for simple USB-based products. expandIO-USB provides control of most microcontroller functions and is available for PIC18F14K50, LF2455, Commands sent by USB and LF4455 microcontrollers. expandIO-USB uses the Human Interface Device (HID) USB profile. It does not require USB drivers and so is . USB Status Crystal / immediately plug-and-play compatible with present and . expandIO-USB Indicators Resonator . future Windows, Linux and Mac operating systems. expandIO-USB is supplied as HexWax firmware, or pre- I/O under PC control programmed and pre-configured microcontroller is larger No microcontroller programming required volumes. A/D-I/O-SPI-I2C-UNI/O USB Features I/O Expander Command Set True HID plug and play - No drivers required Set/Get register byte/bit Ultra-low cost, single chip solution Set/Get digital I/O port/bit Low speed version can use a low cost resonator, Get analog input 200 commands per second Interrupt Event Full speed version can process up to 32K commands per second Matrix Scan (for matrix keyboards) Product name, manufacturer name, serial SPI / I2C / UNI/O synchronous serial master number, GUID & 122-byte EEPROM configurable Multiplex Output (for LED displays) over USB Stream Data No Vendor ID / Product ID registration required Wait USB 2.0 compatible USB / Self Power inputs Applications Optional Configured, Suspended and All- PC peripheral control Systems-Go, Tx / Rx indications Embedded system peripheral control DIL, SSOP, TSSOP and QFP packages Rapid development of USB products PLCs for testing and automation Peripheral Features Table 1. Peripheral feature matrix Firmware Factory USB Product Family Base PIC18F 14K50 2455 4455 Microcontroller USB-232 asynchronous serial interface I/O pins 12 21 32 TEAleaf-USB security and authentication dongle Interrupt on edge 3 3 3 Interrupt on change 0 4 4 expandIO-USB I/O expander Count / Compare / 1 2 2 USB-SPI synchronous serial slave interface Pulse Width Moduln UART (not buffered) 1 1 1 USB-I2C synchronous serial slave interface SPI/I2C (as master) 1 1 1 USB-DAQ data logger UNI/O (as master) 12 21 32 Comparators 2 0 2 USB-FileSys USB embedded file system 10-bit A to D 9 10 13 Timer 8-bit 1 1 1 Firmware Factory Ltd Timer 16-bit 3 2 3 rd 2 Marshall St, 3 Floor Product ID, low speed 0120 0129 012A London W1F 9BB, UK (hex) sales firmwarefactory.com Product ID, full speed 012D 0132 0133 support firmwarefactory.com (hex) DIL, Available packages DIL,SOIC DIL,TQFP SSOP p1 22-Nov-10 expandIO-USB HW148-18 www.firmwarefactory.comThese pin functions, and optional USB status indicator Electrical Specifications pins, are described in detail below: Table 2. Electrical Specifications Vss, Vdd, Vusb Operating voltage Vdd, 18LFx45x 2.7V 5.5V Operating voltage Vdd, 18F14K50 1.8V 5.5V Vss is the power supply ground reference. Vdd and Typical/max supply current, Vdd = 5.0 10mA / 21mA Vusb should be connected to a regulated supply, for Typical/max Sleep current, Vdd = 5.0 0.1A / 2A example regulated from the USB bus power. Operating Temperature -40C to +85C Refer to base microcontroller data sheet for further information OSC1, OSC2 OSC1 and OSC2 should be connected to a 12MHz Part Numbering parallel cut crystal circuit with 22pF capacitors. It may be replaced with a 12MHz resonator with 0.25% total expandIO-USB parts are numbered as follows: tolerance. In low speed devices, it may be replaced with expandIO-USB-XX-YY-ZZ a 12MHz resonator with 1.5% total tolerance, e.g. Murata 81-CSTCE12M0G55-R0. where XX is FS for full speed, LS for low speed YY is DIL for dual-in-line, PT for TQFP, or SS for SSOP ZZ is Vpp, PGC, PCD 20, 28, 40 or 44 according to the number of pins. If XX TEAclipper programming pins. Refer to the Delivery is not specified, FS should be assumed. ZZ is only and Programming section for details. Note that the Vpp given only for DIL packages. pin may be subject to voltages as high as 12V during The following parts are widely stocked by distributors: programming. expandIO-USB-FS-DIL-28 Reset expandIO-USB-PT-FS This pin should normally be pulled high via a 22k expandIO-USB-SS resistor. It may be pulled low to reset the device. Contact us for information about availability of other Tx Indication parts. Output for connecting to a transmit indication LED. It Basic Operation turns on for approximately 100ms when data has been transmitted to the host. This setting is available as To the PC (host), expandIO-USB looks like a Human active high or low on any I/O pin. Interface Device (HID) with which it may exchange Rx Indication information using simple commands. Optional output for connecting to a receive indication Commands are provided to control most of the I/O and LED. It turns on for approximately 100ms when data peripherals of the microcontroller, allowing all product has been received from the host. This setting is development to take place in the PC software available as active high or low on any I/O pin. application. No microcontroller firmware development is required. Tx / Rx Indication expandIO-USB is available as a full speed device, which Optional output for connecting to a transmit / receive can process up to 32K commands per second, or as a indication LED. It turns on for approximately 100ms low speed device which can process up to 200 when data has been transmitted to or received from the commands per second. host. This setting is available as active high or low on any I/O pin. Pin Functions Configured Indication Dedicated pin functions are shown in table 3. Note that Optional output that indicates when the USB interface some output pins are in a tri-state condition until ~20s has completed configuration and the host has indicated after power-on. Pin-outs for the different packages are that the device may draw its full power setting. Prior to shown in Appendix II. configuration completing, the device should draw no Table 3. Dedicated pin functions more than 100mA from the bus. Note that the Name Description configured indication continues to stay high when in suspend mode, even though the device must consume NMCLR Reset (active low) no more than 100A during suspend. This setting is Vpp TEAclipper Vpp available as active high or low on any I/O pin. Vusb USB supply filter D- USB data - Suspend Indication PGC TEAclipper PGC D+ USB data+ Optional output that indicates when the host is entering PGD TEAclipper PGD a sleep state (active low). In this state, the device Vss Power ground reference should draw no more than 100A from the bus, Vdd Power positive input excluding the consumption of the expandIO-USB chip. OSC1 Oscillator output This setting is available as active high or low on any I/O OSC2 Oscillator input pin. p2 22-Nov-10 expandIO-USB HW148-18 www.firmwarefactory.com