Cars · Ecu

OKI M6260A Engine Control Counter IC

Technical reference for the OKI M6260A Engine Control Counter IC, a custom timing and I/O coprocessor used in Honda OBD0 and OBD1 ECUs.

Advanced 4

The OKI M6260A (often marked as M6260A or 6260A) is a custom integrated circuit manufactured by OKI Semiconductor specifically for Honda Engine Control Units (ECUs). Officially designated as the Engine Control Counter IC, this chip was discontinued in the mid-1990s but remains a cornerstone of OBD0 and OBD1 ECU architectures.

Role and Core Functions

The OKI M6260A acts as a multi-purpose I/O coprocessor and timing manager. It offloads real-time, high-frequency operations from the main MCU (such as the OKI 66207). Its primary duties include:

  • Engine Position & Speed Tracking: Monitoring raw distributor signals (TDC, CYP, CKP) to calculate RPM and trigger timing interrupts.
  • Vehicle Speed Processing: Reading speed sensor pulses (VSS) to calculate vehicle speed.
  • Injector Timing Output (Pre-drivers): Controlling the gate/base signals for the high-power fuel injector transistors (Q18–Q21).
  • Ignition Timing Output: Directing the igniter trigger pulse (ignition coil trigger) to control spark timing.
  • Auxiliary Output Driving: Driving auxiliary relays and solenoids (A/C clutch, main relay, EVAP purge, fast idle, Check Engine Light, etc.).
  • Hardware Feedback Loop Monitoring: Verifying output states by reading loop-back diagnostic inputs.

Software Interface & Memory Registers

The main MCU communicates with the M6260A via its external data bus using memory-mapped I/O instructions (MOVX in 8051-style assembly). The M6260A occupies the address space from 0x2000h to 0x200Fh.

Write Operations to 0x2000h (Port Outputs)

Writing a byte to address 0x2000h directly toggles digital output lines on the M6260A.

Important

Logic State: Active-Low control. If the high bit (Bit 7) is 0, the corresponding output is turned ON (enabled). If Bit 7 is 1, the output is turned OFF (disabled).

Port Value (ON) Port Value (OFF) Output Pin Controlled Circuit / Component
0x13 0x93 Pin 22 Igniter Trigger Output (IC14)
0x14 0x94 Pin 32 / 34 Main Relay Driver
0x15 0x95 Pin 33 A/C Clutch Relay Driver
0x16 0x96 Pin 45 Q35 - Error LED on ECU board
0x17 0x97 Pin 44 Transistor Q33 Driver
0x20 0xA0 Pin 43 Fast Idle Valve / Solenoid
0x21 0xA1 Pin 42 Transistors Q31, Q45, CN1 Pin 11
0x22 0xA2 Pin 41 Dash Check Engine Light (CEL/MIL)
0x23 0xA3 Pin 40 IC17 - Automatic Transmission Lockup
0x24 0xA4 Pin 39 Multipurpose auxiliary output
0x25 0xA5 Pin 15 TDC Sensor Input Logic Control

Read Operations (Digital Inputs)

Reading addresses 0x2001h and 0x2002h returns the live logic status of digital inputs wired to the M6260A.

Memory Address Bit Pin Connected Input Signal
0x2001h Bit 1 Pin 60 A/C Switch Status
0x2001h Bit 3 Pin 59 Ignition Switch Start/Run Signal
0x2001h Bit 4 Pin 58 Heater Fan Switch
0x2001h Bit 5 Pin 57 Reverse Switch (Manual Trans models)
0x2001h Bit 6 Pin 56 Clutch Interlock Switch
0x2001h Bit 7 Pin 55 Brake Switch Input

Counter & Pulse Accumulator Registers

Reading registers 0x2004 through 0x2007 retrieves hardware counters populated directly by the M6260A's distributor and VSS pulse-reading inputs.

Register Address Bit Width Data Content Input Pin Source Sensor
0x2004h 8-bit Engine Speed (RPM) Low Byte Pin 64 Crank/RPM Sensor Input
0x2005h 8-bit Engine Speed (RPM) High Byte Pin 64 Crank/RPM Sensor Input
0x2006h 8-bit Vehicle Speed (VSS) Low Byte Pin 61 VSS (Vehicle Speed Sensor)
0x2007h 8-bit Vehicle Speed (VSS) High Byte Pin 61 VSS (Vehicle Speed Sensor)

Note

Writing to address 0x2000h with bits 4 and 5 set to 0 configures or resets these RPM/VSS counters and the internal Pulse Width Modulator (PWM) controllers. Address 0x200Fh behaves as a General Control Register for the M6260A's internal configuration.

M6260A Startup Initialization Sequence

During ECU boot-up, the software runs a precise byte-exchange routine to initialize the M6260A chip:

WRITE 0x00 -> [0x2000h] ; Clear/initialize outputs
WRITE 0x25 -> [0x2000h] ; Initialize TDC sensor routing
WRITE 0x96 -> [0x2000h] ; Command Error LED OFF (high bit active)
WRITE 0xA7 -> [0x2000h] ; Turn off auxiliary port
WRITE 0xE9 -> [0x200Fh] ; Configure general control register
READ [0x2003h] ; Read status register (expects 0x80)
WRITE 0xA0 -> [0x2000h] ; Command Fast Idle Solenoid OFF
READ [0x2003h] ; Read status register (expects 0x80)
WRITE 0x00 -> [0x2001h] ; Initialize Port 1
WRITE 0x01 -> [0x2003h] ; Enable interrupts/write control
READ [0x2003h] ; Read status register (expects 0x81)
WRITE 0x01 -> [0x2002h] ; Initialize Port 2
READ [0x2003h] ; Read status register (expects 0x80)

64-Pin Package Pinout Mapping

Pin Connection / Function Pin Connection / Function
1 GND 64 RPM Sensor Input
2-9 MCU Data Bus Bits 0-7 63 BACK Chip Pin 33
10 MCU Chip Enable (/CE) 62 CID (Cylinder ID) Sensor Input
11 MCU Address Bit 8 61 VSS (Vehicle Speed Sensor) Input
12 MCU ALE 60 A/C Switch Input
13 MCU Write Enable (/WR) 59 Op-Amp IC 2904 Pin 7
14 MCU Read Enable (/RD) 58 Resistor Network RM4 Pin 6
15 TDC Sensor Input 57 Resistor Network RM4 Pin 4
22 Igniter Trigger Output 54 Transistor Q18 (Injector 1)
34 Main Relay Driver 53 Transistor Q19 (Injector 2)
33 A/C Clutch Relay 52 Transistor Q20 (Injector 3)
41 Dash CEL Output 51 Transistor Q21 (Injector 4)
46 Logic VCC (+5V) 45 Transistor Q35 (Error LED)

Applies to

2 taxonomy links
Cars 2 links

Acura

1 link
Model Integra
Direct taxonomy match

Honda

1 link
Model Integra
Direct taxonomy match