Click on our menu buttons immediately below to find MegaSquirt® information quickly:

General Purpose Input/Output Board Hardware

Processor (CPU)

The general purpose input/output board (GPIO) uses the HC9S12C32 processor from Motorola's HCS12 family of automotive grade processors.

The MC9S12C64MFA LQFP 48 pin version is used for the GPIO. It has a 0.5mm pitch lead spacing, and a 7mm x 7mm package. This is a true automotive processor with automotive temperature range (-40°C to +125°C). Its original use was for ABS braking systems - millions of these are being used in today's cars. Because it is used for braking control, not only is it tested and rated for automotive applications, it has an extended testing for latchup due to OEM safety requirements (see the specs in the electrical section of the data sheet). It is a true 16-bit processor with a true 16-bit data bus.

The HC9S12C64 processor is optimized for the C language, and GPIO's embedded code is written in C. Motorola reports up to 50% increases in code efficiency over other 16 bit architectures.

The HC9S12C64 microprocessor unit (MCU) is a 16-bit 48-pin LQFP device with standard on-chip peripherals including:

System resource mapping, clock generation, interrupt control and bus interfacing are managed by the System Integration Module (SIM).

The HC9S12C64 has full 16-bit data paths throughout. The inclusion of a Phase Locked Loop (PLL) circuit allows power consumption and performance to be adjusted to suit end requirements.

The bus runs at 24 MHz. This is true instruction clock speed, not a crystal speed.

Ports are used to read data from input devices or write data out to an output devices. Each port has a number of pins, often 8 pins. Each port has data direction register (defining the pins as inputs or outputs) and also a data register, and often other registers as well, that set things like pull-up voltages. You write data to data register if it is an output port, and read from data register if is set up as an input port. Some ports have specialized functions, like timers for pulse width modulation outputs or frequency inputs, or analog/digital converters for voltage measurements. Though most I/O pins can be used as general purpose I/O, certain pins on the processor are specifically designed for some functions. For example, the PTx pins are especially suited for PWM operation, and the PAD00-PAD07 pins have analog-digital converters (ADC) on them (and so are especially suited from things like temperature sensors, EGT, etc.)

The general purpose input output board default port assignments are:

See the external wiring guide or the GPIO assembly guide for a complete list of default port assignments.

Here's more information on the processor:

HCS12 Data Sheet

For more info see:

CAN and Serial Communications (Shown above)

The CAN and serial communications circuits are direct copies of the MegaSquirt-II circuits.

The GPIO board uses the MAX3221 chip for serial communications, and the MCP2551 chip for CAN (the same as MS-II). Both of these chips are surface mount devices (SMD), and they are soldered to the bottom side of the PCB. All the required resistors and capacitors are also discrete SMD components, except the 120 Ohm thru-hole termination resistor R82, used only for the last CAN board in the CAN chain (otherwise leave it out - don't jumper it). For more info, see the datasheets:

These are both surface mount devices (SMD) mounted on the bottom side of the PCB.

Input Circuits

For the input circuit descriptions, see:

Output Circuits

For the output circuit descriptions, see:

Power Supply and AMPSEAL Connector

The 5 Volt power supply circuit is a direct copy of the V3 main board circuit.

For the connector datasheet, see:

©2006, 2010 Al Grippo and Bruce Bowling - All rights reserved. MegaSquirt® and MicroSquirt® are registered trademarks.