GM OBD-I ECU \ ECM Test Bench
ECU \ ECM Test Bench Overview:
In order to make this project feasible during software development a method for running the automotive ECU on a bench had to be created.
Each critical engine sensor the ECU reads is simulated so the ECU will not go into an error running state. Some sensors are simply variable
resistors such as the temperature sensors and throttle position sensors, so these could be simulated with a potentiometer. The ECU outputs
a 5 volt reference for all the resistance based sensor circuits. For the temperature sensors and throttle position sensors, potentiometer
resistance values were selected based on the resistance range of the original sensor the potentiometer was replacing. Two variable frequency
square wave pulse generation circuits had to be designed to simulate the vehicle speed sensor and the engine RPM input. The frequency
of each square wave is directly proportional to the speed in MPH and engine revolutions in RPM the ECU reads.
Designing the circuits to simulate the vehicle speed sensor and engine RPM output required more then just a potentiometer. Experimentation
was done with using a 555 Timer circuit and using a set capacitance value with a potentiometer in the RC section of the 555 Timer circuit.
The result was the inability to produce a wide enough frequency output range and the inability to bring the output down to zero hertz
for an off state. So a Voltage Controlled Oscillator (VCO) IC was selected to perform the task. A low cost CMOS 4046 Phase-Locked Loop
with VCO IC was selected for the job. The inputs for the phase-locked loop portion of the IC are tied to an inactive state and affectively
disabled. On CMOS IC's it is recommended to tie all inactive inputs low to avoid damage to the IC and to produce reliable results. The
VCO portion of the IC was used to achieve the desired square wave output. Since the IC was CMOS and can only output small output currents
in the 1-5mA range, the output was run through a TTL 74LS04 inverter which can provide up to 20mA output which is more suitable for
the ignition module signal load. An inverter was selected due to easy availability. A TTL buffer or many other chips could be used to
achieve the same affect.
Figure 1: RPM and MPH input, Square wave generator circuit

The circuit seen in Figure 1 is the square wave generator circuit. It consists of two variable square wave outputs, one for the RPM
input and one for the MPH input on the ECU. The output frequency is determined by the capacitance between pin 6 (Cx) and 7 (Cx), the
resistance on pin 11 (R1) and 12 (R2), and the voltage present on pin 9 (VCOin). Before determining the correct values to be placed
on these pins the desired frequency range to be inputted into the ECU must first be determined.
The maximum RPM the ECU can read is 6375 RPM’s. This is because the engine RPM is stored in one byte of memory with a multiplier of
25. This results in 255 multiplied by 25 which equals 6375 RPM. The engine the ECU operates is only capable of 6000 RPM’s so this limit
is not a problem. Some ECU’s and or code masks can read up to 9000 RPM’s so it was decided to make the RPM generator circuit output
a maximum frequency equivalent to 9000 RPM’s for future uses. The distributor which generates the RPM signal for the ECU is connected
to a camshaft which rotates at half the speed of the engine output crankshaft. The distributor outputs one pulse per cylinder fired.
So the distributor is outputting 4 pulses per engine rotation on a V8 engine. The maximum frequency desired for the circuit to produce
is calculated below:
![]()
150 Rotation per seconds x 4 pulses per revolution = 600Hz
The maximum speed the ECU can read is 255 MPH since it the speed variable is stored in one byte of memory. The vehicle speed sensor
outputs 2000 pulses per minute at a speed of one mile per minute. A speed of one mile per minute is 60 miles per hour (MPH). So the
pulse per second (Hz) at 60 miles per house is 2000 divided by 60 which equals 33.3 Hz. Using this ratio it can be determined that a
pulse of 141.6 Hz is needed to max out the ECU’s MPH reading of 255 MPH. Of course this speed would never be achieved in real life but
for testing purposes the full range of the ECU is utilized. It was chosen to round up the MPH pulse to a max of 150Hz for simplicity.
To calculate what resistor and capacitor values were needed to achieve these desired frequencies a bench testing of the circuit method
was used. The circuit was built on a bread board and an oscilloscope was used to measure the output frequency. The starting test values
where chosen from the 4046 datasheets graphs and final values where chosen after tweaking the values to produce frequency results of
the above calculations.
Page content created on: Spring 2007
Page content last updated: 09-05-2009


