Knock control

From M232 Wiki
Jump to navigation Jump to search

Working principles


The M2.3.2 ECU runs a bog-standard distributor based logic in the fuel/ign chip, except that it's output does not go directly to an ignition driver (which it could), but into a solid state distributor/knock controller instead.
To give you a bit of history - on the older Motronics, Porsche had the DDE and the KLR, a separate knock control box. M2.3.2 is simply the amalgamation of that, where electronics were downsized and placed into one single unit. It's still two ECU's in one, connected by ribbon cable.

Knock retard

The ignition output consists of two steps - pull the ignition line high, wait for the dwell time, pull the ignition line low to fire the spark.
This signal gets intercepted by the boost/knock controller. The boost knock/controller looks at the incoming pulse and:

  • Determines which cylinder COP it is supposed to go to.
  • Looks up it's knock array and sees if the timing must be retarded for this cylinder due to knock on previous combustion. If it needs to be retarded, it waits for the amount of crank degrees specified (in 0.5 degree increments).
  • It starts charging the coil.
  • When it sees the signal go low, it waits for the amount of crank degrees specified in the knock array and fires the spark.

Thus in essence, the boost/knock controller is like a piggyback.

Knock detection

There is no knock chip, the entire circuit is visible, it consists of:

  • Level control
  • Switchable capacitors for different noise suppression/filtering
  • Input selection for sensor 1/2

After the spark is fired, during the knock window, the signal is continuously sampled on the ADC. The min/max are recorded. For every cylinder there are knock threshold maps. They are essentially the maximum allowable difference between the min and max on the ADC. If the noise spike exceeds the difference, knock is detected.


The knock control is "adaptive".
There are three types of knock trim:

  • Per cylinder trim - the simplest. If during the knock window knock is detected for a cylinder, the timing is retarded next time on this cylinder.
  • Global trim - Once the sum of all per-cylinder trims exceeds a certain threshold, the global trim is increased each time further knock is detected. Global trim is applied uniformly to all cylinders on top of the per-cylinder trim. It is also very slow to reset, and when tuning, you should never ever have so much knock retard, that you are triggering this trim. This is the doomsday scenario, the code that saves your engine on a bad batch of fuel, the code that has saved thousands and thousands of engines from complete destruction.
  • Dynamic trim - each time there is a sharp throttle gradient, there is a time window during which it is checked whether knock is present. If it is, the dynamic trim is incremented. If there isn't, the dynamic trim is decremented. This is like the global trim, in that it gets applied to all cylinders in addition to the global trim and the per cylinder trim. If you have issues with this, modify the fuel/ign chip to retard more on sharp throttle movements, and increase accel enrichment.


  • Cyl. selective KR activation threshold - This is the MAP value, at which cylinder selective trim becomes active. Below that, it is frozen and not incremented/decremented. You MUST change the values here if using a different MAP sensor than the MPXH6400A.
  • Global KR activation threshold - As above, but for the Global trim. You MUST change the values here if using a different MAP sensor than the MPXH6400A.
  • P5.5 setting threshold - As above, but for setting P5.5. This pin goes to the IO extender, and it is either the ignition map switch or the fuel enrichment on excessive retard. You MUST change the values here if using a different MAP sensor than the MPXH6400A.
  • Cylinder selective KR sum threshold for global KR - If all per cylinder trims added together exceed this number, gobal trim starts to get incremented.
  • Global KR limit - the maximum limit for Global KR trim.
  • Global KR phase-in/phase-out time - How long without knock until Global KR gets decremented back.
  • Knock detection threshold cyl.1-5 - these are the knock peak-to-peak thresholds also called cylinder noise maps. The second axis is amplification switch status. By modifying these maps incorrectly, you can destroy your engine in one pull. Higher numbers here do not magically mean more power. It simply means your knock will be detected much later, runaway reactions are possible, and the power will be cut very abruptly.
  • Cylinder selective knock retard step - P/T - how many degrees to retard on a knock event. If you are getting runaway knock conditions, try increasing the retard. The retard should be sufficient, that it should not knock again, until the timing has been phased back in.
  • Cylinder selective knock retard step - WOT - same as above, at wide open throttle.
  • Cylinder selective knock retard limit - WOT and P/T - maximum per cylinder knock trim
  • Cylinder selective knock phase-in delay - how quickly to phase the timing back in. If you are getting runaway conditions of multiple knock events in a row on a single cylinder, try to increasing the time.
  • Throttle gradient for dynamic KR activation - The gradient in throttle degrees the throttle has to travel within a second to activate the dynamic KR trim.
  • Dynamic KR duration - the time window during which knock is monitored after a sharp throttle event.


Be aware, that you will almost never need to modify this module. It works really well even at 700hp with the standard calibration. If you have issues with knock control, most of the time the issue will not be due to the ECU calibration.