I want to test the knock detection function on a bench before on the car...
Knock signal is from frequency generator and I can also use the ignition signal to make some noise.
1) Genboad is Vems V3.6, firmware 1.1.90. I get the knock sub menu under the tool menu !!! weird ?? ok I download firmware 1.1.95.
2) Genboad is Vems V3.6, firmware 1.1.95. I get 2 Knock submenus in the Base Setup Menu.
As said on the sheet which came with the Vems V3.6 ECU, pin outs are
- Knock1: EC18-1 (ch.0)
- Knock2 : EC18-2 (ch5)pullup
No second wire input, the second wire from the sensor has to go with the other sensor grounds.
This is a quite different setting from the previous version as shown by Phat Bob/User guide, but alright.
It is also said on the sheet that there is a pull up for Knock 2? Are we using Variable Reluctance accelerometer ? probably no, they are all piezo.
- Voltmeter gives: EC18-1 : 2 - 1.8V, EC18-2 : 0V !!
Thanks for an explanation. Anyway I would go for EC18-2.
4) Knock menus
Knock detection is done by the TPIC8101 chip and by firmware for threshold and scale factors calculation.
The TPIC8101 setup is given the "Knock Sampling" (why this name ??) submenu which options are quite clear except for the way the Genboard input is linked with the CH1 and CH2 inputs of the chip. This should be done through the knock_chan parameter.
Some values of the knock_chan are related to the SD Card function. I do not see why...
- Bob has put knock_chan = 0 for Knock 1, why not ?
- I went through the firmware change history, I found with version 1.1.26:
Knock_chan=00 select knock channel 0 for all ignition entry
Knock_chan=FF selects knock channel 1 for all ignition entries
Knock_chan= AA selects knock channe1 for every other ignition entries … )
knock_threshold and knock_noise_scale
They are with the Knock Action submenu. (why not to have sub menus "Knock set up" and "Knock action"
I was not able to find definition for these parameters.
To observe the output of the knock detection function we possibly have
- Knock Diff gauge
- Knock Advance Adjust gauge
- Adjust and Knock gauges for each cylinder ignition.
- ADC input gauge related to "channels".
- I input some DC or AC signal in EC18-1 and EC18-2 ( I used EC18-1 as a puldown), nothing is shown in any channel
- I test EC18-16: CH1: the related gauge moves accordingly.
- mcd on page 05
I probably should go first with Knock Diff and Knock gauges even if I do not understand what they are supposed to show.
TESTING with Vems V3.6
1-Input : 2 Vpp sine wave at different frequencies on EC18-2, testing any combination of the parameters and channels and playing with knock_threshold and knock_noise_scale.
-> NO OUTPUT ON ANY GAUGE
2) Input : an ignition signal
Indeed I thought that there may be no detection if the noise is the same inside and outside of the window detection.
-> NO OUTPUT ON ANY GAUGE
TESTING with Vems V3.3
Knock sensor input is EC18-1 for Knock 1 or EC18-3 for knock 2. I select channel 0, this is for Knock 1, I put Knock_chan=0.
Whatever I did as above
-> NO OUTPUT ON ANY GAUGE
Then I looked the mcd page 05
I made firts the thing running:
* the EC18-1 not connected to any wire
D:005B 00 15 d: -128
D:0053 00 25 d: -122
Bob seems to know what are D and R, I do not
- EC18-1 wired whatever the signal
D:03F5 00 45 d: -?19
I do not see what else to do.
Does someone know how to test the knock detection function on a bench?
We are just reworking the knock code.
- The old code makes 2 measurements per ign event, one "windowed" where knock can happen, and another where knock should not happen.
- (hard to test because knock-signal must be synchronized to ignition).
- The new code makes 1 measurement per ign event, and uses loadsite dependent lookup table to decide if the measured amplitude is knock (too high) or no-knock.
- (easy to test because knock-signal can be continuous, no syncronization needed).
- We had some weird side effects of the new code, so currently disabled, but we definitely want to enable it soon, before 2.0.0
The inputs are as [in shop]
- Knock signal: EC18/1 (knock1)
- EC18/2 (knock2, only if dual-knock option selected).
- Knock GND: EC18/17 (also used for RS232 GND, internally connected to EC36pin26).
We'll get back to it soon, thanx !
- Hint: the firmware change page should say that the knock function is disabled for 1.1.95 (if it is the case)
An S2Forum member that tunes Motornic ECUs commented the following as t ohow Motronic works in regard to the Knock sensing:
"AFAIK there is no frequency filtering in Motronic 2.3.2... the frequency filter is built into the knock sensors.
There are three gates - one for knock window, and one on each sensor to select which sensor to listen to.
Then there is a special resistor array that it controls, and using that resistor array it selects gain. It dynamically alters gain based on noise.
The most important thing to make a good knock detection system is knock window. Without knock window, you will never reach a very good result. Motronic uses hall sensor for that, to determine engine phasing and time the knock window and knock sensor select events.
The way motronic works is, after every ignition event, after the knock window passes, it runs an algorithm (threshold mappable, some other things too) to determine whether knock has occured.
If knock has occured, next time an ignition event happens, timing is retarded for that cylinder.
Knock control is adaptive, this means that it retards the timing based on a constantly changing map. In that map it remembers how many times it had to step back from the base timing before to achieve knock free operation. Then it starts slowly advancing the timing back up.
You don't see any of that happening in VAG-COM, this is all handled by boost/knock chip.
If the knocking is persistant, then the boost/knock chip sends a request to the fuel chip to increase safety. Based on some parameters the fuel chip decides if it should step down a map (to lower octane timing map) or to enrich fuel. This is when you see a jump in timing or IPW in VAG-COM.
If knocking continues, or if the knocking was on many cyls in a row, it also starts cutting boost bit by bit...
Very good summary, thanks a lot, Phil !
in newer Motronics this is handled by a separate chip, which also has bandpass filter.
It is Bosch CC195, http://common.leocom.jp/datasheets/174382_22751.pdf or newer chips.
In the old Motronics it is an analogue schematic on the board and a bandpass filter is built into the knock sensors themselves.
There is a less proprietary circuit, from Texas Instruments, which should handle knock detection quite well.
VEMS has TPIC8101 placed onboard for ages, since v3.0, see the corner near the main processor
VEMS firmware has code for knock-window, actually using 2 windows (one window when knock could happen and one reference when knock should not happen).
- We are throwing out the reference window and replacing with user-adjustable threshold table.
- persistent retard table should be added (that is not lost after reboot)
And here is an interesting paper about knock detection from TI:
I suggest reading it, worth it's value in gold"
(Fphil) Windowed signal filtering followed by summation, as knock wave recognition process, was offered by the new integrated chips which came on the market in the 90's. On our days, one can find fast cross-correlator which allows to identify wave patterns. Hence, as it is done for the Reversys sytem (www.sensitive-object.com/-ReverSys?-R-) one can fancy that possible knock signals are tested for correlation with effective knock signals previously recorded (or processed by whatever "neuromorphic" toy).
Meanwhile, we get the TI chip ;). I would suggest that the Vems interface offered as a core the same fonctions that the TI chip, as they are, using the same TI designation and names.