From [ipdown.net]
Revision as of 14:20, 24 January 2015 by Ipdown (talk | contribs) (→‎Bosch ignition module 0 227 100 200 / 0 227 100 204)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

EZ116K Distributor Ignition

EZK Quick Facts

  • Maximum knock controlled retardation 14 deg BTDC
  • Knock retardation step 2.6 deg if RPM < 4895
  • Knock retardation step 2.3 deg if RPM > 4895
  • Re-advance step 0.375 deg
  • Re-advance interval: Specified number of engine revolutions, depending on speed
  • When the car is being started ignition timing is only dependent on engine speed (RPM) and engine coolant temperature (ECT).
  • When the engine is idling ignition timing is only dependent on engine speed (RPM).
  • At temperatures below 55°C ignition is retarded according to temperature.
  • Below 60°C no regard is given to knock sensor (KS) signals.
  • If the engine is over-revving the control module uses the power stage to provide a spark only to every other spark plug so that engine power is reduced.

Dwell control

The control module controls the ignition voltage so that it is independent of battery voltage and engine speed (RPM). At low battery voltage the control module sends a signal to the ignition discharge module (IDM) to start charging earlier thereby extending charging time.

If there is no signal from the knock sensor (KS) the ignition is retarded 10°. If there is no load signal from LH 2.4 ignition timing is calculated for full load except when the throttle position switch (TP switch) indicates that the engine is idling. If there is no engine temperature signal ignition timing is based on the engine being warm. If there is no throttle position (TP) signal the control module takes account of load even when the engine is idling.

The EZ 116 K system receives information about load from the LH 2.4 control module. At high loads, large amounts of fuel/air, ignition is retarded. If engine load changes rapidly the ignition is retarded significantly on all cylinders to revent knocking.

If one of the cylinders begins to knock the ignition is retarded for that cylinder until the knock ceases. When the knocking stops the ignition is advanced by degrees. The rate of advance is dependent on engine speed (RPM). This rate is faster at low engine speeds (RPM) and slower at high speeds.

If the engine is heavily loaded for a long period the ignition will often be retarded by the knock control. To prevent knocking this will cause the control module to retard the ignition by 1° on all cylinders for as long as the engine is unusually loaded

Knock-controlled fuel enrichment

Knock-controlled fuel enrichment means that the injector opening period is extended to enrich the fuel/air mixture, reducing the combustion temperature and brin ging the uncontrolled combustion under control. The function is activated if the ignit ion system control unit detects that knock is occurring in all cylinders above a certain threshold value. On receiving a signal from the knock sensor (2) and having established that knock is present in all cylinders, the control unit (1) connects a terminal on the fuel injection system control unit (3) to ground, causing the latter to transmit a signal to the injectors (4) to extend the opening period.

EZ-116K on B234 F: Retardation of at least 3-4 deg in all cylinders in response to knock detector signals at engine speeds above 3800 r/min and above a certain minimum load.

Theory of temperature-compensated timing advance

Advancing the ignition timing increases the cylinder temperature while reducing the exhaust gas temperature. Under certain conditions, this also yields a reduction in coolant temperature. The higher cylinder temperature is due to the higher pressure of the fuel/air mixture as it is ignited, while the lower exhaust gas temperature is due to the relatively late scavenging of the gases at the end of the combustion process. The lower coolant temperature achieved by advancing the timing when idling is partly due to the fact that the setting is already well retarded and that a relatively high proportion of the fuel does not. as a result. produce mechanical work, the energy being dissipated in the form of heat losses. Advancing the timing under these conditions greatly improves the efficiency of combustion, increasing the amount of energy converted into mechanical work and reducing the amount of heat discharged to the coolant.

Theory of temperature-compensated timing retardation

Although it reduces the cylinder temperature, retarding the ignition increases the exhaust gas and coolant temperatures. The lower cylinder temperature is due to the reduced pressure of the mixture when it is ignited, while the rise in exhaust gas temperature is due to scavenging of the gases closer to the exhaust valve opening point. The higher coolant temperature is attributable to the fact that less of the energy content of the fuel is converted into mechanical work, a higher proportion being dissipated in t he form of thermal losses. As a result, a higher quantity of heat is transferred more quickly to the cyl inder wall, exhaust gas port, intake manifold and coolant passages.

Timing compensation on cold engine

Temperature compensation of the timing on a cold engine usually involves advancing the timing to shorten the warm-up period. However, temperature-controlled functions which retard the timing in a cold engine are also used. One of the effects of this is to bring the catalytic converter up to working temperature more quickly, while another is to increase the coolant temperature, accelerat ing the defrosting action of the climate cont rol system. The temperature sensor signals may also be used by the control unit to determine when the knock sensor signal should be switched in. Blocking this signal when the engine is cold ensures that the control unit is unaffected by spurious signals caused by the mechanical noise typically emilled by the engine as it warms up.

Timing compensation on hot engine

Temperature compensation of the timing on a hot engine means advancing the timing to reduce the coolant temperature. This prevents the engine from boiling (although the cooling water will not begin to boil while the temperature is below approx. 120-125°C, due to the fact that the system is pressurized). The timing advance is normally applied only when idling, since t he setting is normally fairly retarded under these conditions.

The timing will be altered by approx. 3° if the CPS pick-up leads are reversed. Although the magnitude of the induced voltage wilt increase with flywheel speed, the voltage regulator in the control unit ensures that the voltage supplied to the circuits remains constant

Ignition systems supplied by Bosch for Volvo 4-cylinder engines feature a type 60-1 toothed profile. This means that the profile is provided with 60 drilled holes and with one 'long' tooth of twice the length of a 'short' tooth. In other words, the profile is provided with 58 (60-1x2) short teeth and one long tooth which represents the crankshaft position reference point. The angular pitch between two adjacent short teeths is 6.0" (360 deg/60).

The control unit identifies TDC as the point 90 deg after the passage of the long tooth. The type 60-1 toothed profile is used on the EZ-116K system. This means that the control unit applies a factor of 16 to improve the resolution of the pick-up signal. In effect, the control unit can adjust the timing in steps of 0.375 deg.

Knock control

The knock sensor monitors the combustion process continuously. If knock occurs, the device delivers a special signal to the control unit, which takes corrective action by retarding the ignition in the cylinder affected.

Knock control characteristic

The principle of knock control is more or less the same in the case of all systems equipped with knock sensors. The vertical coordinate shows the ignition setting in degrees in relation to the basic timing (indicated here by the angle ALPHA, while the horizontal coordinate is the time scale (which normally varies with engine speed).

Stepped control

The control unit continuously computes the optimum timing on the basis of the running conditions. On detecting knock, the unit retards the ignition by a step of a few degrees (2-3° depending on the system) in the cylinder affected. If the phenomenon persists, the setting is retarded by a further step, and so on until the condition has been corrected. The maximum retardation in relation to the basic timing is approx. 10-16° in the case of EZ-K systems.

Re-advance following correction of knock

After knock has been eliminated, the control unit maintains the retarded setting for a specified number of engine revolutions, depending on the speed (applies to EZ-K systems) before re-advancing the ignition in small steps (0.1-1°), either until the original characteristic has been restored or until the engine again starts to knock. The maximum retardation must not deviate excessively from the basic setting if an excessive rise in exhaust gas temperature is to be avoided. Information on engine speed and/or load is also essential to enable the control unit to impose the maximum retardation, if necessary.

knock retard per cylinder -- 4 elements map? coding plug for different octane rating - pins 18-19? gearbox - auto/manual ? knock counter

max ignition retard map If the engine has detonation (“pinking” or “pinging”) while under test the ignition will be retarded in steps of 3 degrees up to a maximum of 9 degrees. See the “max ignition retard map” description on Page 57. If the knock does not continue, the ignition is automatically advanced in much smaller steps until the mapped value is attained. Note that it can take up to 15 seconds for the timing to be advanced back to the correct value.

This retard is only carried out on the cylinder(s) that have detonation. The EZK can differentiate which cylinder is knocking, as long as the knock and Hall sensor signals are present.


knock retard step in degree (3) recovery time in sec (10-15)

Transient conditions Retard when throttle opened at idle 5.6 deg Retard when throttle opened after deceleration 11.6 deg Retard when sudden increase of load 5.6 deg Max. advance increase rate (deg. per spark event) 1.1 deg

steps 0.375

Cruise warmup map Idle map Idle warmup map WOT map WOT warmup map

Max ignition knock retard map RPM based 1x16 [0]3, [15]9

Connector pinout

Stock ignition maps

Advance/Retard control via selector pins

here are 5 unused pins on the EZK connector. Four of these (pins 18, 19, 21, 25) are so called "selector pins". The EZK software uses only 2 of these pins - 18 and 19. Below you can see how the selector pins are interfaced to the CPU:

EZK selector pins to CPU interface

Table below shows the mapping of the pins with the CPU port bits:

Connector pin CPU port bit
Pin 18 P4.4
Pin 19 P4.5
Pin 21 P4.6
Pin 25 P4.7

Normally when all pins are unconnected (floating) the CPU sees zero on the port P4. By grounding all or none, or some combinations we can get 16 possible combinations:

binary hexadecimal decimal
0000 0x00 0
0001 0x01 1
0010 0x02 2
0011 0x03 3
0100 0x04 4
0101 0x05 5
0110 0x06 6
0111 0x07 7
1000 0x08 8
1001 0x09 9
1010 0x0A 10
1011 0x0B 11
1100 0x0C 12
1101 0x0D 13
1110 0x0E 14
1111 0x0F 15

The selector pins occupy the high nibble of the P4. Only the first two bits of the high nibble are used by the software to form an index and use it for map lookup like shown in the code fragment below:

MOV DPTR, #L1E80             ;137C 90 1E 80
ACALL L1510_2D_MAP_ACCESS    ;137F B1 10      main advance table lookup
MOV R0, A                    ;1381 F8         result from lookup stored to R0

MOV A, P4                    ;1382 E5 E8      read port P4 
NOP                          ;1384 00         sync
SWAP A                       ;1385 C4         swap byte nibbles
ANL A, #0x03                 ;1386 54 03      leave only first 2 bits

MOV DPTR, #L1FF8             ;1388 90 1F F8   selector pin table
MOVC A,@A+DPTR               ;138B 93         lookup from the table using selector pin combination as index

ADD A, R0                    ;138C 28         add to the result from main advance lookup
MOV R0, #0x84                ;138D 78 84      
MOV @R0, A                   ;138F F6         store to RAM result for later use

EZK dwell maps

stock 0 227 400 208 dwell table
6500 5600 5100 4650 4250 3850 3500 3000 2650 2250 1900 1500 1200 900 750 500
low 255 255 255 255 255 255 255 255 255 255 225 174 135 106 83 62
norm 255 255 239 215 194 176 159 138 119 100 83 65 50 38 29 20
high 165 151 140 125 113 102 92 80 68 56 48 36 26 19 14 9
modified dwell table for VAG coils
6500 5600 5100 4650 4250 3850 3500 3000 2650 2250 1900 1500 1200 900 750 500
low 190 175 160 150 140 125 110 100 85 70 55 40 25 20 15 7
norm 135 125 100 95 85 75 65 55 45 35 30 25 19 15 13 9
high 120 110 95 85 75 70 60 50 40 30 25 20 12 10 8 4
stock dwell constants
hex dec
140F 4 4
1414 78 120
1405 87 135
13FF FB 251
VAG modified dwell constants
hex dec
140F 1C 28
1414 AC 172
1405 53 83
13FF E3 227

related addresses 09B1 AC


Connector pinout

Note! All values given are between terminal in column 1 and terminal 20. It is therefore important that this ground terminal is correctly connected to the battery negative terminal before taking measurements.

Ubat = Battery voltage
f = Frequency in Hertz (Hz)
Ulow = Voltage close to 0 V.
% = duty cycle in %

Terminal Signal type Function Ignition on Idling Engine speed (RPM) higher than idling
1 Data link connector (DLC). Duplex communication between control module and data link connector (DLC) ≈ 9 V ≈ 11 V
2 Engine coolant temperature (ECT) sensor. Used to adjust ignition advance when temperature deviates from normal U≈ 1.5 V warm engine. Signal drops as temperature rises. Signal increases as temperature drops.
3 Malfunction indicator lamp (MIL), a.k.a
Check engine light (CEL)
4 Knock enrichment (not B204 FT/GT, B230 F). signal to fuel injection system (# 28) that control module has detected knock on all cylinders. On B204 FT/GT this signals the TCU to lower the boost. 900 - 950 mV ≈ 7.5 V
5 Supply voltage 30+. Power supply for on-board diagnostic (OBD) system memory and the the adaptive function U = Ubat U = Ubat
6 Supply voltage 15+. Power supply via ignition switch to control module U = Ubat U = Ubat
7 Idling switch. Grounded if throttle in idling position. ≈ 1.4 V ≈ 2.3 V Increases with engine load
8 Load signal. Digital load signal from fuel injection system (# 25) for ignition advance adjustment depending on load 250 - 300 mV ≈370 mV Increases with engine load
9 Unknown input
10 Engine speed (RPM) sensor ground. Engine speed (RPM) and position in relation to TDC U = Ulow U = Ulow
11 Engine speed (RPM) sensor shield. Engine speed (RPM) and position in relation to TDC U = Ulow U = Ulow
12 Knock sensor (KS) ground. Internal connection to # 20 in control module U = Ulow U = Ulow
13 Knock sensor (KS) signal. Information on engine knock status U = Ulow U = Ulow
14 EGR power ground (Only Calif). Ground terminal on intake manifold. A separate ground is required to avoid interference with other components in the system U = Ulow U = Ulow
15 EGR control signal (Only Calif). Controls EGR valve to return exhaust to intake manifold during engine loading. Not during crawling road speed with even loading U = Ubat U = Ubat Drops when EGR operating
16 Trigger signal to ignition discharge module (IDM). Sends ignition timing signal to ignition discharge module (IDM) U ≈100 mV U ≈850 mV
f ≈27Hz
Increases as engine speed (RPM) increases
17 Engine speed (RPM) signal. Engine speed (RPM) signal to LH 2.4 (# 1) > 500 mV U = 7–8 V
f ≈27Hz
f increases with engine speed (RPM)
18 Selector pin. Used to statically advance or retard the ignition. Active when grounded.
19 Selector pin. Used to statically advance or retard the ignition. Active when grounded.
20 Signal ground. Signal ground terminal on intake manifold U = Ulow U = Ulow
21 Selector pin. Used to statically advance or retard the ignition. Active when grounded.
22 EGR temperature signal PTC 1.5 - 2 V 1.5 - 2 V Increases when EGR operating.
22 EGR temperature signal NTC 1 - 4.7 V 1 - 4.7 V Drops when EGR operating.
23 Engine speed (RPM) sensor, signal. Engine speed (RPM) and position in relation to TDC U = Ulow 1.6 - 2.3 V AC, ≈ 770 Hz Both freq and voltage increases as engine speed (RPM) increases
25 Selector pin. Used to statically advance or retard the ignition. Active when grounded.

Stock ignition maps

B230FT ignition map, 148 EZK

B230FT ignition map, 0 227 400 148 EZ-116K B230FT stock ignition map 148EZK.jpg

B200FT ignition map, 177 EZK

B200FT ignition map, 0 227 400 177 EZ-116K B200FT stock ignition map 177EZK.jpg

B230F ignition map, 169 EZK

B230F ignition map, 0 227 400 169 EZ-116K B230F stock ignition map 169EZK.jpg

B204FT ignition map, 208 EZK

B204FT ignition map, 0 227 400 208 EZ-116K B204FT stock ignition map 208EZK.jpg

EZK internal RAM addresses

RAM 0x40 - Normalized RPM

RAM 0xAE - Normalized Load

RAM 0x82 - Normalized voltage scale

RAM 0x46 - Unknown

Volvo EZK 116K

All references are relative to first copy of code @ 0x0000-0x1FFF

Memory Map: Address Space Locations Addressing Mode Lower 128 bytes of RAM 00H to 7FH direct/indirect Upper 128 bytes of RAM 80H to 0FFH indirect Special function registers 80H to 0FFH direct

RAM_LOW: 20h Bitmask (ACTIVE):

           Bit 0 = R6 = 1, R7 <= 0x8D (Val @RAM 7Eh == 0)
           Bit 1 = !0x2D bit 3 *** Checksum related ?
           Bit 2 = CEL_ACTIVE
           Bit 3 = Warmup *VERIFIED*
           Bit 4 = Spark
           Bit 5 = ?? (Relation to RAM 4Eh)
           Bit 6 = ? CLT related
           Bit 7 = Tooth 0 ?

21h Bitmask (Bit 0->5 set in 60-2 interrupt):

           Bit 0 = tooth counter @0x00a9
           Bit 1 = tooth counter
           Bit 2 = tooth counter @0x00b0
           Bit 3 = tooth counter
           Bit 4 = tooth counter
           Bit 5 = tooth counter @0x00b3
           Bit 6 = Timer 1 available
           Bit 7 = 0 (Set @Post_init) 60-2 related

22h Bitmask (ENABLED):

           Bit 0 = ?
           Bit 1 = Timer 1 enabled
           Bit 2 = EGR PWM (H/L)???
           Bit 3 = External interrupt 1 enabled (Clear: RAM 25h bit 7, P4.1, IE0 - Set: EX0)
           Bit 4 = NOT USED
           Bit 5 = TMR0,IRQ0 enabled
           Bit 6 = ODB related ?

23h Bitmask:

           Bit 0 = 60-2 offsets loaded
           Bit 1 = CLT_NORMAL *TESTME*
           Bit 2 = CLT failsafe loaded *VERIFIED*
           Bit 3 = EGR bit loaded
           Bit 5 = ?
           Bit 7 = Timer 1 values loaded

24h Bitmask:

           Bit 0 = ??
           Bit 1 = ??
           Bit 2 = (Knock related) ??
           Bit 3 = Knock_sensor_noise ?? Tested: bit = 1 when 60-2 signal present
           Bit 4 = ODB RX active
           Bit 5 = NOT USED
           Bit 6 = 9 bit UART, RX Enable
           Bit 7 = Serial interrupt disabled

25h Bitmask (SET):

           Bit 0 = Knock present ??
           Bit 1 = ? Knock related ?? 
           Bit 2 = Knock sensor present ?? Tested: alternates below idle ?
           Bit 3 = CEL ON bit
           Bit 4 = Timer 0 LSB <= 12 (Load sync present or failsafe ?)
           Bit 5 = 0 (Set @Post_INIT)
           Bit 6 = Tooth related ?
           Bit 7 = Set RPM out

26h Bitmask:

           Bit 1 = ?
           Bit 6 = Set @ Init2, Ref 0x0807 ???
           Bit 7 = ODB_BIT_TX_LOW

27h Bitmask (TX):

           Bit 1 = 
           Bit 7 =

28h Bitmask (RX):

           Bit 5 =
           Bit 6 =
           Bit 7 = ODB_BIT_RX_SERVICED

29h Bitmask (ODB):

           Bit 2 = ? 0x0ec0, 0x0ec7
           Bit 4 = ODB_BIT_RX_READY ??
           Bit 5 = ODB_BIT_RX_VAL
           Bit 6 = ODB_BIT_TX_READY ???
           Bit 7 = ODB_BIT_TX_VAL

2Ah Bitmask (HIGH):

           Bit 1 = CLT_OVERHEAT
           Bit 6 = (0 = 60-2 tooth #2)
           Bit 7 = ? set @ 0x0E18

2Bh Bitmask (LOW):

           Bit 1 = EGR ???
           Bit 3 = IDLE ???
           Bit 4 = 0 (Set @INIT_RAM_and_Ports)
           Bit 5 = 0 (Set @INIT_RAM_and_Ports)
           Bit 7 = ?

2Ch Bitmask:

           Bit 0 = 0 (Set @INIT_RAM_and_Ports)
           Bit 1 = ERROR (Post_INIT)
           Bit 2 = ???
           Bit 3 = 0 (Set @INIT_RAM_and_Ports)
           Bit 4 = 0 (Set @INIT_RAM_and_Ports)
           Bit 5 = 0 (Set @INIT_RAM_and_Ports)
           Bit 6 = 0 (Set @INIT_RAM_and_Ports)
           Bit 7 = 0 (Set @INIT_RAM_and_Ports)

2Dh Bitmask (Select):

           Bit 0 = 1 -> Select IGN +12V A/D input
                   0 -> select CLT temp A/D input
           Bit 2 = Relation to RAM 2Ch bit 2 ???
           Bit 3 = ? Relation to 20h bit 1

RAM Address Description
2Eh @0x08ad: 0x90 (modified 60-2 val 1, Relation to RAM 3Dh)
2Fh Counter Post_INIT, set to 0x0 in IRQ0 routine
30h TMR0,IRQ0 R2 result
31h TMR0,IRQ0 R3 result
32h Timer 0 LSB modified val, IRQ0
33h Timer 0 LSB modified val, IRQ0 -1 (Set to 0xFF @INIT_RAM_and_Ports)
34h Previous IRQ0 Timer0 mod val + Current IRQ Timer0 mod val (Set to 0x20 @INIT_RAM_and_Ports) Related to RAM A3h ???
35h Value from Table 0x1C4D (0x1C)
36h @0x08b1: 0x58 (88d) (Max advance or tooth 2 ?)
37h Knock A/D Value
39h Value from table 0x1EDB (Copied from RAM 8Ch @0x07A2), @0x08a0: 0x01
3Ah IGN +12V A/D Value
3Bh CLT temp A/D Value
3Dh RAM A9h + Val from table 0x1BBF, @0x08ab: 0x90 (modified 60-2 val 1, Relation to RAM 2Eh)
3Eh ?
3Fh @0x0893: 0x80, ? ODB counter ?
40h ? ODB status bits ?
41h @0x0898: 0x28, Knock counter ???
42h @0x0895: 0x00, Knock counter ??
43h Knock value ???
44h Knock value ???
46h CLT temp
47h Val @0x0DDC (0x60)
48h @0x08cf: 0x11 (17d, tooth# @ TDC ?)
49h @0x08d2: 0xFF
4Ah @0x08d5: 0xFF
4Bh @0x08d8: 0x17 (23d)
4Ch @0x08db: 0xFF
4Dh @0x08de: 0xFF
4Eh @0x08b9: 0x0A (10d) (Min advance ?)
4Fh @0x08bb: 0xFF
50h @0x08be: 0xFF
51h @0x08c7: 0x0E (14d) (Idle advance ?)
52h @0x08c9: 0xFF
53h @0x08cc: 0xFF
58h 0x55 (Set @Init)
59h 0xAA (Set @Init)
5Ah Counter 0x07DA, 0x0F0F
7Eh 0x05 (Set @Init2)
7Fh 0x01 (Set @Init)
80h 0x99 (Set @ init2)
81h 0x67 (Set @ init2)
82h ?
83h ?
84h Ignition map Z axis (calculated) value - *VERIFIED*
86h @0x0c77 ()
89h 0x0 (Set @INIT_RAM_and_Ports), @0x089e: 0x00
8Bh ?
8Ch Value from table 0x1EDB
8Dh Val @0x0D8A (0x10)
8Eh Checksum MSB (Val @0x1FFE)
8Fh Checksum LSB (Val @0x1FFF)
90h EGR PWM - Timer 2 MSB value (Inverted) (Val @table 0x1EF7 = 0xA2)
91h EGR PWM - Timer 2 LSB value (Inverted) (Val @table 0x1EF7 + 0x1 = 0xD2)
92h EGR PWM - Timer 2 MSB value (Inverted)
93h EGR PWM - Timer 2 LSB value (Inverted)
94h EGR PWM - (Val @RAM 95h - Val @RAM 92h) Inverted
95h EGR PWM - (Val @RAM 91h - Val @RAM 93h) Inverted
97h EGR overflow ???
9Fh ?
A0h B reg @0x07A8, @0x07E2
A2h Counter (0x078C sub)
A3h Related to RAM 34h ???
A5h 0x20 @0x0798
A9h ?
ABh 0x0 @0x07AE
ACh ?
ADh ?
B0h ?
B1h ?
B2h ?
B3h ?
BCh ?
C4h 0x0 (Set @INIT_RAM_and_Ports)
C5h 0x0 (Set @INIT_RAM_and_Ports)
C6h 0x0 (Set @INIT_RAM_and_Ports)
C7h 0x0 (Set @INIT_RAM_and_Ports)

EZK116K Pin Mapping:

Name MCU pin Signal EZK external Pin
P0.0 52 D0 (ALE -> A0) N/A (Eprom pin 11)
P0.1 53 D1 (ALE -> A1) N/A (Eprom pin 12)
P0.2 54 D2 (ALE -> A2) N/A (Eprom pin 13)
P0.3 55 D3 (ALE -> A3) N/A (Eprom pin 15)
P0.4 56 D4 (ALE -> A4) N/A (Eprom pin 16)
P0.5 57 D5 (ALE -> A5) N/A (Eprom pin 17)
P0.6 58 D6 (ALE -> A6) N/A (Eprom pin 18)
P0.7 59 D7 (ALE -> A7) N/A (Eprom pin 19)
P1.0 /INT3 CC0 36 Test pad under MCU N/A
P1.1 INT4 CC1 35 IGN out (Inv) 16 (transistor CX58 basis)
P1.2 INT5 CC2 34 EGR out 14+15 (R746)
P1.3 33 GND N/A (Unused)
P1.4 32 GND N/A (Unused)
P1.5 31 GND N/A (Unused)
P1.6 30 GND N/A (Unused)
P1.7 29 GND N/A (Unused)
P2.0 41 A8 N/A (Eprom pin 25)
P2.1 42 A9 N/A (Eprom pin 24)
P2.2 43 A10 N/A (Eprom pin 21)
P2.3 44 A11 N/A (Eprom pin 23)
P2.4 45 A12 N/A (Eprom pin 2)
P2.5 46 A13 N/A (Eprom pin 26)
P2.6 47 A14 (R951 miss) N/A (Eprom board R951)
P2.7 48 A15 (not connected) N/A
P3.0 RxD 21 ODB In (Inv) (1) (IC S401 pin 6) opamp pin 1
P3.1 TxD 22 ODB Out (Inv) 1 (IC S401 pin 3)
P3.2 /INT0 23 Load Inp (Inv) 8 (IC S401 pin 12)
P3.3 /INT1 24 VR In (60-2) (Inv) 10+23 (IC S401 pin 10)
P3.4 T0 25 /Throttle Closed (Inv) 7 (IC S401 pin 8)
P3.5 T1 26 Unknown In 9 (Inv) 9 (IC S200 pin 6) Changes DPTR
P3.6 27 GND N/A (Unused)
P3.7 28 GND N/A (Unused)
P4.0 1 Unknown Out 24(Inv) 24 (IC S700 pin 1) USED
P4.1 2 RPM out (Inv) 17 (IC S700 pin 3)
P4.2 3 CEL out (Inv) 3 (IC S700 pin 5+6+7)
P4.3 5 Knock enrich Out (Inv) 4 (IC S700 pin 4)
P4.4 6 /Select 1 In (Inv) 18 (IC S200 pin 8)
P4.5 7 /Select 2 In (Inv) 19 (IC S200 pin 12)
P4.6 8 Unknown In 21 (Inv) 21 (IC S200 pin 10)
P4.7 9 Unknown In 25 (Inv) 25 (IC S200 pin 4)
P5.0 67 Unknown N/A (IC S101 pin 5) Knock bias?
P5.1 66 Unknown N/A (IC S101 pin 6) Knock bias?
P5.2 65 Unknown N/A (IC S101 pin 12) Knock bias?
P5.3 64 Unknown N/A (IC S101 pin 13) Knock bias?
P5.4 63 Knock window ena (Inv) N/A (T100 Base)
P5.5 62 GND N/A (Unused)
P5.6 61 GND N/A (Unused)
P5.7 60 Unknown (Out?) N/A (R128) knock noise?
AN0 20 GND N/A (R234)
AN1 19 Ign +12V 6 (R507)
AN2 18 CLT Temp 2 (R202)
AN3 17 GND N/A (Unused)
AN4 16 GND N/A (Unused)
AN5 15 Knock signal input 13 (IC S100 pin 14)
AN6 14 GND N/A (Unused)
AN7 13 GND N/A (Unused)

C8h 0x0 (Set @INIT_RAM_and_Ports)
C9h 0x0 (Set @INIT_RAM_and_Ports)
CAh 0x0 (Set @INIT_RAM_and_Ports), @0x088e: 0x00
CCh 0xF9 (Set @INIT_RAM_and_Ports)
CDh 0x0 (Set @INIT_RAM_and_Ports)
CFh X1339,
E0h 0xE2 (Set @INIT_RAM_and_Ports)
E1h 60-2 Tooth 17 (0x11) (Set @INIT_RAM_and_Ports)

Chip reference:

     EPROM = B57423 = 27c256 Eprom 256
     S100 = B57415 = Unknown Opamp
     S101 = B57794 = Unknown
     S200 = B57425 = CD40106 Hex Schmitt trigger
     S400 = B57582 = LM2903 Opamp
     S401 = B57425 = CD40106 Hex Schmitt trigger
     S500 = = ? regulator/amp ?
     S900 = B57656 = SAB80C535 clone
     S700 = = ULN2003 Darlington array

EPROM Code only uses 64K, its mirrored 4 times at:


EZK runs fine with only one copy in a 64K 27C64 EPROM, no change.

EPROM daughter board

     A14 is jumped by a resistor to VCC 
     A15 is not connected

EZK wasted spark mod

Bosch 2x2 Motorsport coil 0 221 503 407

Bosch ignition module 0 227 100 200 / 0 227 100 204

0227100200 conn.png