The ECM has a table of coefficients (called BLM, Block Learn Multiplier) for different conditions such as engine speed, vacuum and temperature. These determine the coarse value how much fuel should be injected in given conditions. The optimum coefficients for a certain car are learned by the ECM by monitoring the oxygen sensor voltage (rich or lean) in the given conditions. This is usually a very slow process. There is also a faster changing variable for fine-tuning the amount of fuel, called the integrator. If the integrator goes out of range for more than a specified time, then the Service Engine Soon light may be lit, and/or the BLM coefficients adjusted. However, if you reset the ECM, it has no memory of the history of whether the car ran rich or lean with certain BLM values, so it goes into a learn mode to quickly determine what BLM values should be used.
That's about ECMs in general. Maybe Oliver could tell exactly what kind of learning process is used on the Fiero?
From: Alve Jukka
There's not much to add, you pretty much got it. The ECM adjusts the injector pulse width to achieve optimum mixture, as determined by the O2 sensor. When the O2 gets too RICH, it decreases the injector pulse width, if it gets too LEAN, it's increased. By "crossing" the optimum point, a "Crosscounts" variable is increased. The quicker this variable increases, the better the O2 sensor works. If the sensor gets older, the output gets somewhat slow, and the *speed* at which the crosscounts variable counts up changes. Now, this is *very* short term corrective action (a few times per second). If the ECM has to adjust the fuel mixture to achieve crosscounts at all, it adjusts the integrator variable, which is short term corrective action. Normally the Integrator is 128, or around 128. If it's too far off for too long, it adjusts the Block Learn Variable (the manuals are not clear about what it's called). Anyway, the Block Learn Variable should also be 128, or around 128. If it's off by more than 10, the car is either running too lean or too rich (with the O2 sensor not really noticing it, for whatever reason).
So, the amount of fuel is determined by the long time, short time and very short time variables, plus a *basic* amount of fuel needed for running the engine at all. This is where the TPS and MAT and MAP come into play. These are the main engine sensors for calculating the fuel mixture. The basic injector tables are preset for various RPM's in the ECM's PROM, but only in certain RPM increments (like, 500rpm steps). I don't know if the ECM interpolates those tables for finer intervals, but I doubt it.
The ECM can also contain a Block Learn *Cell* variable, which indicates which set of internal variables is used for fuel calculation at the moment. There are only a few "Fuel Cells" in the ECM memory, so the variable is not "around 128", like the Block Learn Variable is. But since the names are so similar, documentation is often not clear as to which is which. I hold them apart by which value is displayed.
As to what *exactly* the Cells are or contain, I'm not sure, but I'd like to find out...
There's also some description in the Emissions section of the shop manual...
"Does the ECM rev limiter work by removing spark or shutting off the injectors? If I install an MSD unit will it remove the rev limiter?"The ECM has to shut off the injectors. If they were to shut off the spark instead, the fuel would quickly wash off the oil on the cylinder wall, and your engine would break rather suddenly.
So in other words, no, the ECM controls the rev limiter and switching to a MSD unit will not cure this problem...
From: Oliver Scholz
Most FI engines have a "Clear Flood Mode". On the Fiero 2.8L it operates like this. When the accelerator is pressed down all the way, the ECM pulses the injectors at an air/fuel ratio of 20:1. The ECM holds this injector rate as long as the throttle stays wide open, and engine rpm is lower than 400. If the throttle position becomes less than 80%, The ECM returns to the "starting" mode.
"How does the shift light work?"
The shift light is controlled by the ECM. The ECM grounds circuit 456 (pin A7 tan/black wire). The ECM uses information from the coolant temp sensor, TPS, VSS, and RPM from the distributor.
"My Haynes manual says to drive the car over 35mph to reset the fuel mixture."
What this does it let the ECM seat the IAC valve all the way. This gives the ECM a reference point to go from. The IAC will not seat all the way until the car is over 35 mph. Once the car is over 35 mph, the idle air passage that the IAC blocks to control idle speed is not used and the ECM can seat the valve without the engine stalling.
"I had to crank the engine a few extra times to let it build oil pressure. As soon as the gauge showed 35 to 40 psi it would fire right up, but not before."
As soon as you turn the key on, the ECM should energize the fuel pump relay for 3 seconds. If you have to wait for the fuel pumpto be turned on by the oil pressure switch, your fuel pump relay is probably bad.
"If I understand you, a brief time of cranking is to be expected (either due to the fuel pump or oil pressure switch). So how come my 2.8 lights off as soon as I touch the key, with literally no cranking?"
There should be no cranking. That is what I was saying. The ECM energizes the fuel pump in the start position before you even get to the crank position of the ignition switch.
From: Scott Backer
"Is there any way to know if my PROM has gone bad?"
If the EPROM is bad, the computer will tell you. The first two bytes contain the 16 bit sum of all the other bytes. If this doesn't match, ROM code elsewhere in the ECM will reject the EPROM.
From: Ludis Langens
During recent months several Fiero owners have commented on how their 2.8 engine will vary RPM right after it is started - sort of like it is looking for a place it likes - and then settles down. Possible solutions have ranged from IAC valves to vacuum leaks.
My 88 "Had" a similar problem, until last month. Mysteriously, when I replaced my five year old battery with a new 750 amp Delco, it went away.
This puzzled me, but I more or less wrote it off to a coincidence and thanked my lucky stars that it was gone.
Then, yesterday, I was rummaging through the Helms Manual looking for some info on the cold start injector when I happened to see the following section called "Battery Voltage Correction Mode" in section C2 - Fuel Control System:
"When battery voltage is low, the ECM can compensate for the weak spark delivered by the distributor by:
|Increasing the amount of fuel delivered;
||Increasing the idle RPM; and
||Increasing ignition dwell time."|
Wait a minute. When is battery voltage usually the lowest? Right after cranking the engine, especially if the outside temperature is cold and the battery has begun to show signs of it's age. It takes less than a minute for the alternator to bring things back up to par, and then the ECM abandons this mode.
Could this be the idle speed searching problem? Methinks it is a pretty good hypothesis, especially since mine went away after installing a new battery.
Of course, the argument against the hypothesis might be whether the ECM will go first to the Battery Voltage Correction Mode when starting, or choose the "open loop" values in the Run Mode. Maybe we can have a Battery Voltage Correction Mode in Open Loop? Possible, since open loop looks for the oxygen sensor voltage to vary before switching to closed loop.
From: Randy Agee
"I wonder if it would be worthwhile to replace -all- the engine compartment sensors, one by one or all at once, to see if the car runs better. Or would that cost too much to be practical?"
VALVE, EGR electric vacuum solenoid 10038324 $98.82 VALVE, idle air control 17111288 N.L. SWITCH, cold start fuel injection 14084318 $22.15 SWITCH, netrual start (w/AT only) 10045862 $5.85 SENSOR, coolant (ECM) 25036979 N.L. SENSOR, exhaust oxygen 8990741 $28.57 SENSOR, manifold absolut pressure 16017460 N.L. SENSOR, manifold absolut temp 25036751 $28.79 SENSOR, throttle position 17071825 $63.74 SENSOR, vehicle speed w/AT 25007335 $46.04 w/MT 25036929 $53.75 ------------ $347.71 + N.L. parts
(N.L. means NOT LISTED)
Remember these are wholesale prices from 1988.
From: Scott Backer
When the Service Engine Soon (Check Engine) light comes on, the ECM has detected a problem with one of the sensor circuits in the car, and it sets a trouble code. The ECM holds stored trouble codes in memory as long as it has power from the battery. To retrieve the stored trouble codes, do the following:
It will flash a series of codes at you. First, it should flash:
FLASH-PAUSE-FLASH-FLASH. That is 1-2, code 12. This signifies that the ECM is not recieving reference pulses from the distributor, and therefore that the car is not running.
It will flash this code three times, with a long pause between each code. If there are any stored trouble codes, it will flash them after this, starting with the lowest numbered codes, up to the highest numbered, each one repeated three times. It does NOT flash the codes back in the order in which they were set.
One more example. If you see the following:
Then your ECM is giving you code 13 (oxygen sensor) and code 44 (lean exhaust). (In case you are wondering, these are the codes I got when my Oxygen sensor on my 2m4 went bad.)
Clearing the ECM's memory will erase all of the stored trouble codes. You should do this after you fix a problem which was setting a code. That way, next time you get trouble codes you won't be confused by which one was set this time.
The most common way to clear the codes is to disconnect the negative terminal of the battery for at least 10 seconds.
There is a single pin connector buried in the bundle of wires and fuse links by C500, thats the huge double connector on the right side frame rail rear of the battery, that that is the constant ECM power connection. Looks like an inline fuse holder. Disconnecting this for 10 seconds or so will wipe the memory and erase trouble codes without you having to mess with a 8mm wrench and fiddle with the battery terminals. Besides, it saves your radio memory. This connector is located in the same bundle of wires on the '84s except its in the center of the firewall.
From: Tin Man
"My computer won't flash any codes. Could there be a bad connection somewhere, or is the computer shot?"
The computer should flash a 1-2 code three times before and after any stored trouble codes. Since yours does not, I'll put my money on a bad computer.
However try this to make sure:
Make sure the ignition is _OFF_ before you remove the PROM.
After the PROM is out, turn on the key, ground the diagnostic terminal and look for a 5-1 code. If you get the 5-1, you need a new PROM, it not, you need a new ECM box. However, you should check for low resistance between the ECM box and various solenoid terminals before replacing the ECM: TCC solenoid (if automatic), A/C relay (if equiped) and Cooling fan relay. If these measure less than 20 ohms, they will kill the new ECM box very quickly. If they all measure more than 20 ohms, just replace the box.You'll need a wiring diagram for this last part.
From: Lee Brown
Connector Info Connector Info A01 FuelPomp Relay[A] (Switch to IGN) B01 +12V Batt. A02 B02 A03 B03 EST (0.76V) A04 EVRV[B] (Solid state) B04 EST (Sparktiming input) A05 SES (Switch to Gnd) B05 EST (Distributor ref. puls input) A06 +12V Contact B06 A07 Upshift (Switch to Gnd) B07 A08 ALDL[E] (Serial data) B08 Airco (Compressor control) A09 ALDL[B] (Diagnostic terminal) B09 A10 VSS[U] (Input 2000Pulses/Mile) B10 GSS[A] (Park/Neutral Input) A11 MAT[A] (Air temp input) B11 A12 Gnd B12 C01 D01 Gnd C02 Airco (Compressor control) D02 C03 IAC[D] Coil 2 D03 C04 IAC[C] Coil 2 D04 C05 IAC[A] Coil 1 D05 EST (Ignition mod. bypass output) C06 IAC[B] Coil 1 D06 Gnd C07 D07 OS (Input) C08 D08 EVRV[C] (Solid state) C09 D09 C10 CTS[B] (Input) D10 not used C11 MAP[B] (Input) D11 C12 MAP[B] (Input) D12 TPS[C]/CTS[A] (Common Gnd) C13 TPS[B] (Input) D13 MAT[B]/MAP[A] (Common Gnd) C14 MAP[C]/TPS[A] (Common +5V Ref.) D14 Fuel Injectors 1-3-5 (Gnd Switch) C15 Fuel Injectors 2-4-6 (Gnd Switch) D15 Fuel Injectors 1-3-5 (Gnd Switch) C16 +12V Batt. D16 Fuel Injectors 2-4-6 (Gnd Switch) CTS Coolant Temperature Sensor EST Electronic Spark Timing EVRV Electronic Vacuum Regulator Valve GSS Gear Selector Switch IAC Idle Air Control Valve MAP Manifold Absolute Pressure Sensor MAT Manifold Air Temperature Sensor OS Oxygen Sensor TPS Throttle Position Sensor VSS Vehicle Speed Sensor
From: Fokker ELMO B.V.
[Top] | Online Service Guide Main Page