■ FIGURE 1. The CY7C63743C-PXC hangs its hat
on the reduced component count hook. No
external clock source or voltage regulator is
needed for this part to operate in USB mode.
nonconcurrent as some of the LCD data
pins are used to drive the LEDs. A separate
IO-Warrior 24 application note describes
the implementation of an LED matrix.
THE IO-WARRIOR 24
its associated IO-Warrior 24 pinout are given to you in Figure 2.
Note that the IO-Warrior 24 configuration does not
allow the use of an external clock source of any kind. Instead,
the XTALIN pin is used as an input to select the power mode.
The IO-Warrior 24 power pin is checked at power-up and
bus reset only. When the power pin is pulled logically high,
the USB power mode is set to high. In high power mode,
the IO-Warrior 24 will request 500 mA from the USB power
bus. A low on the Power pin will result in the IO-Warrior 24
settling for 100 mA max from the USB portal. The Vreg output
is intended to power the USB D pull-up resistor and that is all.
The special SPI, I2C, and LCD functions take precedence
over the normal GPIO pin logic. The PXC GPIO speeds are
too slow to physically implement the I2C clocking via the I/O
pins. So, the I2C protocol is handled internally to the IO-Warrior
24 to improve the data throughput. The IO-Warrior 24 can only
participate in an I2C network as the one and only master node.
Due to the IO-Warrior’s lack of a stable hardware I2C clock, it
may not be the best I2C master for some I2C slave devices.
SPI and LCD support on the IO-Warrior are mutually
exclusive. This is due to the fact that the LCD E signal is
multiplexed with the SPI SCK signal and the SPI data I/O pins
(MOSI and MISO) are shared with the remaining LCD control
signals RS and R/W. The IO-Warrior 24 SPI portal is capable
of clocking at 2 MHz. However, the USB interface bandwidth is limited and the full bandwidth of the SPI channel
cannot be utilized. LCD and LED matrix support are also
The IO-Warrior 24 Starter Kit comes
out of the box in kit form. My assembled
IO-Warrior is shown in Photo 1. As you
can see, putting one of these together
is a snap. I took the liberty of adding the solderless
breadboard and the LCM-S01602DTR/M LCD. You can
get an idea of how the starter kit is laid out by matching
up the components you see in Photo 1 with their
graphical counterparts in Schematic 1.
The LCM-S01602DTR/M LCD’s I/O pinout is
compatible with the layout you see in Schematic 1 with
the exception of pins 15 and 16 which do nothing on the
LCD as it has no backlight. Note the use of a PNP transistor
backlight switch. Recall that the CY7C63743C-PXC
doesn’t like to source current and grounding (sinking)
the BC307’s base is right down the PXC’s alley.
ARMING THE IO-WARRIOR 24
All of the major PC operating systems support USB. In
addition, those operating systems natively support HID (Human
Interface Device) class devices such as keyboards, joysticks,
and mice. A major advantage to HID class devices is that they
can be accessed from the application level. The IO-Warrior
24 is internally coded to act as a USB HID class device.
The CY7C63743C-PXC USB subsystem consists of
three USB endpoints. Thus, the IO-Warrior 24 inherits that
trio of endpoints. To get data to and from device resources,
USB endpoints can be assigned to interfaces which provide
a path to the device’s functions. In the case of the
IO-Warrior 24, interface 0 is the direct path to the GPIO
pins. The special mode functions
available via the IO-Warrior 24
firmware are spoken to via
interface 1. If you recall your
USB 101 training, endpoint 0 is
common to all USB devices.
■ FIGURE 2. You can clearly see the
native CY7C63743C-PXC multiplexed
GPIO pin functions in this figure. The
XTALIN and XTALOUT expect to see
a 6 MHz ceramic resonator when the
external clock option is selected. P2.0
and P2.1 are alternate inputs. Firmware
forces the CY7C63743C-PXC to suit
up with the IO-Warrior 24 armor.