82C55 Programmable Peripheral Interface
Technical specifications and pinout mapping for the OKI MSM82C55A / Intel 82C55 Programmable Peripheral Interface (PPI) chip in Honda OBD1 ECUs.
Adapted from pgmfi.org wiki
The 82C55 (often found as the OKI MSM82C55A) is a Programmable Peripheral Interface (PPI) integrated circuit used extensively in Honda OBD1 Engine Control Units (ECUs). It acts as an input/output (I/O) expander, enabling the main OKI 66207 microcontroller to interface with various auxiliary inputs and output drivers that cannot be handled directly by the MCU's native I/O pins.
Almost all OBD1 Civic, Integra, and Accord ECUs share a common architectural pattern for what functions are controlled by the 82C55 chip.
Configuration and Software Control
In Honda OBD1 applications, the ECU software configures the 82C55 by writing 0x90 to its internal Control Register. According to the standard Intel/OKI 82C55 datasheet:
- Mode 0 (Basic Input/Output) is selected.
- Port A is configured as an Input port.
- Port B and Port C are configured as Output ports.
Note: The OKI MSM82C55 chip package found on Honda OBD1 boards has 42 pins, which is two more than the standard 40-pin package outlined in standard datasheets. These extra pins (mysterious pins 17 and 37) are unused and are likely internal connections or ground ties specific to OKI's custom packaging.
82C55 Pinout Mapping
Below is the complete electrical pinout mapping of the 82C55 PPI on standard Honda OBD1 boards, originally documented by hardware researcher Vernon (Deluded):
| Pin | I/O Type | Signal/Port | Connected Component | Function & Diagnostics |
|---|---|---|---|---|
| 1 | Input | PA3 | A/D Board Header | Diagnostic feedback for TPS/VSS circuits |
| 2 | Input | PA2 | Resistor R114 |
Input pairing (associated with R109) |
| 3 | Input | PA1 | Resistor R113 |
Input pairing (associated with R110) |
| 4 | Input | PA0 | Resistor R112 |
Input pairing (associated with R111) |
| 5 | Power/Control | /RD |
MCU (66207) Pin 24 |
Shared Read enable control |
| 6 | Control | /CS |
MCU (66207) Pin 15 |
Chip Select line (driven by Address Line A14) |
| 7 | Power | GND | Ground | Digital Ground connection (VSS) |
| 8 | Control | A1 | MCU (66207) Pin 14 |
Address line A1 |
| 9 | Control | A0 | MCU (66207) Pin 12 |
Address line A0 |
| 10 | Output | PC7 | Knock Sensor Circuit | Knock board diagnostic output |
| 11 | Output | PC6 | Transistor Q16 |
Output driver for EGR solenoid |
| 12 | Output | PC5 | Resistor R134 |
10kΩ pull-up resistor |
| 13 | Output | PC4 | Transistor Q46 |
Controls the Check Engine Light (MIL) output |
| 14 | Output | PC0 | IC14 Driver |
Controls VTEC Solenoid engagement |
| 15 | Output | PC1 | IC13 Driver |
Pre-VTEC control circuit |
| 16 | Output | PC2 | Transistor Q12 |
Controls the Oxygen (O2) Sensor Heater element |
| 17 | - | N/C | Unused | No connection (42-pin package anomaly) |
| 18 | Output | PC3 | Knock Sensor Circuit | Knock diagnostic threshold control |
| 19 | Output | PB0 | Chip 7U016 Pin 3 | Custom Honda IC interface signal |
| 20 | Output | PB1 | Transistor Q14 |
Output driver for EVAP Purge Solenoid |
| 21 | Output | PB2 | Transistor Q37 |
Alternator control output signal |
| 22 | Output | PB3 | Transistor Q13 |
Controls the Radiator Cooling Fan Relay |
| 23 | Output | PB4 | IC15 Driver |
Controls Automatic Transmission Lockup Solenoid A |
| 24 | Output | PB5 | Transistor Q17 |
Controls IAB (Intake Air Bypass) solenoid / Shift Light / Auto Q34 lockup |
| 25 | Output | PB6 | Resistor Network RM13 Pin 8 | 10kΩ pull-up line |
| 26 | Output | PB7 | Chip 7U016 Pin 10 | Custom Honda IC interface signal |
| 27 | Power | VCC | +5V Rail | Logic power supply voltage (VCC) |
| 28 | Bidirectional | D7 | MCU (66207) Pin 8 |
Data Bus Bit 7 |
| 29 | Bidirectional | D6 | MCU (66207) Pin 7 |
Data Bus Bit 6 |
| 30 | Bidirectional | D5 | MCU (66207) Pin 6 |
Data Bus Bit 5 |
| 31 | Bidirectional | D4 | MCU (66207) Pin 5 |
Data Bus Bit 4 |
| 32 | Bidirectional | D3 | MCU (66207) Pin 4 |
Data Bus Bit 3 |
| 33 | Bidirectional | D2 | MCU (66207) Pin 3 |
Data Bus Bit 2 |
| 34 | Bidirectional | D1 | MCU (66207) Pin 2 |
Data Bus Bit 1 |
| 35 | Bidirectional | D0 | MCU (66207) Pin 1 |
Data Bus Bit 0 |
| 36 | Control | RESET | Chip 7U016 Pin 39 | System Reset trigger line |
| 37 | - | N/C | Unused | No connection (42-pin package anomaly) |
| 38 | Control | /WR |
Resistor Network RM13 Pin 9 | Shared Write enable control |
| 39 | Input | PA7 | A/D Board Header | Diagnostic feedback for TPS/VSS circuits |
| 40 | Input | PA6 | Transistor Q30 Output |
Diagnostic feedback for O2 Heater circuit |
| 41 | Input | PA5 | Transistors Q26 / Q101 |
Diagnostic feedback for VTEC Solenoid driver (IC14) |
| 42 | Input | PA4 | Transistor Q28 Output |
Diagnostic feedback for Transmission Lockup driver (IC15) |
Technical Notes & Hardware Quirks
- Intake Resonator Multiplexing: On specific boards (e.g., JDM models or those utilizing specific software iterations), the Intake Resonator control circuit is doubled up. The trace routing goes from
IC16 (pin 3)→Q27 (pin 2)→IC9 (pin 6). - Diagnostic Inputs (Port A): Inputs
PA4,PA5,PA6, andPA7are dedicated loop-back diagnostic lines. The microcontroller reads these pins to verify that an output command (like VTEC engagement or O2 heater activation) actually occurred physically. If the MCU commands PC0 (VTEC) to go high but does not see the corresponding feedback on PA5, it triggers a Check Engine Light (CEL).
Datasheets
Credits and source
Authors blundar
Source Adapted from 82C55 on pgmfi.org wiki. Licensed under CC BY-NC-SA 1.0.