This document presents an overview of the hardware design of the Handy Cricket.
The Handy Cricket's primary components are the following:
Let's look at the Handy Cricket circuit design in detail. Here is the schematic diagram:
We will discuss the circuit based from the PICmicro® PIC16C715, progressing clockwise from pin 1 of the microprocessor.
Pins 1 and 2 of the PIC16C715 are connected to the clock and data pins of the 24LC32A, the 4096-byte serial EEPROM memory. The PIC communicates with the 24LC32A using the Philips i2c protocol, an industry standard inter-IC communications method.
The 24LC32A holds the compiled Logo program that is executed by the Handy Cricket. Also, non-volatile data can be written to the memory by the user code. Array data and recorded sensor data is stored in the memory along with the executable Logo code.
Pin 3 of the PIC is multiplexed to control the Run Status LED and read the Run/Stop pushbutton.
The pin is driven low to turn on the Run Status LED (indicating that the Handy Cricket is executing a Logo program). To check if the Run/Stop pushbutton is pressed, the line is allowed to float; if it is read as low, then the button is pressed.
Pin 4 of the PIC is the microprocessor reset pin. It is permanently wired high, allowing the processor to run normally at all times.
Pin 5, Vss, is the microprocessor ground.
The Handy Cricket uses a Sharp GP2W00001YP IrDA transceiver for communications. This is an IrDA component rated for communications up to 115 kbaud, but the Cricket uses its own byte-oriented modulation scheme which provides an effective data rate of about 50 kbaud.
There are several resistors and capacitors associated with the IrDA circuit, implemented as per the data sheet recommendations. C1 and R4 provide the IrDA part with a degree of isolation from fluctuations in the main logic power supply.
Pin 6/Port B0 of the PIC accepts the digital IR receive signal from the Sharp component. This pin is the external interrupt pin, and the Cricket's software uses an interrupt routine to implement the receive data processing.
Pin 7/Port B1 is the digital transmit signal. R2 and C4 provide the recommended method of interfacing this signal to the IrDA component. R3 limits current through the transmit LED. Finally, R5 and LED5 provide a visual indicator of transmit activity.
Pin 8/Port B2 is the bi-directional Cricket bus signal. The Cricket bus is a custom one-wire protocol that allows a master Cricket to communicate with a collection of connected slave devices. For more details on the Cricket bus, see http://handyboard.com/cricket/tech/bus.shtml.
Pin 9/Port B3 is the piezo output signal. The Cricket gives a boot beep every time it's powered up; tones of varying pitch and duration may also be generated under user program control.
Pins 10 through 13/Port B47 are the motor control pins. The motor control circuit is based on the Texas Instruments SN754410NE dual motor driver.
The SN754410NE provides two H-bridge motor control circuits. Each H-bridge has three inputs: left-side input, right-side input, and enable. When the left- and right-side input pins are opposite values (10 or 01), and the enable is high, then current flows through a motor connected to the drive pins.
PIC pins 11 and 12 control the Cricket's motor A output; pins 10 and 13 control the motor B output. The enable signal for motor A is generated by OR'ing the two motor A control signals together, using one of the OR gates provided by U5. This circuit allows the Cricket to provide four operating modes to the motor:
The SN754410NE chip has two power inputs: a logic supply (pin 16, Vcc1) and the motor power supply (pin 8, Vcc2). The motor power supply is connected directly to the battery, after the Cricket's main power switch.
But the chip's logic supply is switched by a pair of OR gates! If both motors are turned off, then then is no need to provide logic voltage to the motor chip. The chip uses about 20 mA of current when it's sitting idle (motors off), so removing the logic voltage provides a substantial current savings.
Two of the four OR gates in the U5 package are used to switch logic power to the motor chip itself. The two enable signals are OR'ed together to produce the logic supply voltage. If either or both of the motors are enabled, the supply voltage is provided. Gates U5a and U5b perform this OR function and are wired in parallel, doubling the current available to the SN754410NE chip from the OR gates.
Pin 14 is the PIC's power pin. The normal logic supply voltages is applied to this pin.
Pins 15 and 16 are the PIC oscillator pins. The Cricket uses a 4 MHz oscillator, and the Cricket's firmware is based on the resulting 1 microsecond instruction clock.
Pins 17 and 18/Port A0 and 1 are used as the Cricket's two analog sensor inputs. The PIC provides an 8-bit digital-to-analog converter, allowing the Cricket to convert sensor voltages to a numeric range of 0 to 255.