saab Workshop Repair Guides

Saab Workshop Service and Repair Manuals

Diagram Information and Instructions|Page 18603 > < Diagram Information and Instructions|Page 18601
Page 11
background image

Internal control module faults

Upon starting, the processor (CPU) checks that the check sum is the right one for the ROM. This value is written to the RAM and then read back again to
check that the value is the same as the original one.

During operation, a check is carried out to ensure that the program executes certain routines.

See diagnostic trouble code P0601 for Trionic 8 by way of example.

1. The ROM has to be correct as the program is stored there. An error in the program could cause the control module to activate an output in the

wrong position or make entirely wrong decisions. The check sum is the sum of the program's entire code and is attached when the control module
is programmed. When the control module processor is woken, the entire program will be checked again. The check sum just calculated is
compared with the programmed one, and these must be the same, otherwise diagnostic trouble code P0605 is generated.

2. All bytes in the RAM are checked in connection with startup. One byte equals 8 bits, and the process writes 4 different bit patterns and reads them

back. The values written and read must be the same. 4 different bit patterns are used because we want to be sure that bits do not infect one another.
The table below shows an example of how an error is detected in a byte in the RAM:

The error is that the second-last bit is infecting the last one with a one. This generates diagnostic trouble code P0604.

3. "Dog Error" is short for "Watchdog Error". A check is carried out to ensure that the program passes certain program steps which are always run.

Analog inputs

The voltage interval 0-5 V from a temperature sensor or pressure sensor is converted in the control module into a digital value, often 0-255 (256 steps),
which is equivalent to a byte.

If we know that the bit value is never less than 10 or more than 245 under normal operation, we can set a diagnostic trouble code if the value falls outside
of this range.

See diagnostic trouble code P0117 for Trionic 8 by way of example.

In the example above, you can see that the diagnosis is unable to differentiate between interference and a short-circuit to 5 V. The reason for this is that
the input has a Pull-Up at 5 V, and this is equivalent to a bit value of 255. This is the greatest value the control module can read. Thus interference
generates the same diagnostic trouble code as a short-circuit to 5 V or B+.

The A/D value has to be too high for 0.5 s in order to set the diagnostic trouble code. This is known as the filter time. The filter has to be in place to
prevent short-term interference from mobile telephones or the ignition system, for example, from setting diagnostic trouble codes.

The diagnostic trouble code is set after 0.5 s. The MIL (Malfunction Indicator Lamp) or Check Engine, as it is also known, is activated only during the
second run in a row where faults have occurred. If the fault is rectified without deleting the diagnostic trouble code, Check Engine will go out after the
third fault-free run.

The control module uses a substitute value for coolant temperature which is based on the intake air temperature.

As long as the fault is active, a bus message is sent indicating that the cooling temperature value is implausible. This means that the receiving control
module is able to undertake certain action, such as starting the radiator fan and resetting the temperature gauge.

Digital inputs

The camshaft and crankshaft sensor and a door switch are examples of digital inputs. These are more difficult to diagnose. In the case of the camshaft
and crankshaft sensor, it may be concluded that there is a fault in the camshaft sensor if only the crankshaft sensor is transmitting signals (Motronic).

Diagram Information and Instructions|Page 18603 > < Diagram Information and Instructions|Page 18601