[[Manual: Detailed.Sensor.Manifold.Config]]
- config.kpafac MAP range (at 5V signal). Unit is 2kPa by default
- unless you used a different KPAFAC_UNIT value in my_make such as
- MY_CONF += -D KPAFAC_UNIT=4 kpafac unit is 4kPa (max 1020 kPa), used for a MAP sensor with higher than 510kPa max range. Note that for MAP > max kpa bin ( see k[] table, that is still max 510 kPa) ignadv, lambda and VE will change no further. This is probably theoretical.
- MY_CONF += -D KPAFAC_UNIT=1 kpafac unit is 1kPa (max 255 kPa)
- unless you used a different KPAFAC_UNIT value in my_make such as
- config.kpaofs pressure offset for MAPsignal=0V (default 80 = decimal 128 = 0kPa offset). 0..255 range is for -32 .. +32kPa
Note that kpaofs meaning changed in firmware 1.0.12, appr. 2005-05-21
kpaofs name was intentionnaly changed to kpaoffs so make mtt warns if old kpaofs is used instead of new kpaoffs. (bin/make_conf.pl could be made cleverer to automatically calculate)
Default KPAFAC_UNIT=2 assumed:
calculate NEW config.kpaoffs = (config.kpafac * config.kpaofs) /256 +128
because old formula was\n
k = ( config.kpaofs + sensor ) * config.kpafac / 256;
new formula is:\nÿ2ÿ
Notes:
- sensor (formula input) is the 11 bit resolution MAP sensor signal, range 0..2047
- formula output is in 250Pa (=1/4 kPa resolution), that is mainly used as a multiplication factor in the final injection pulsewidth calculation
- The /256 is actually /128 for KPAFAC_UNIT=4 and /512 for KPAFAC_UNIT=1
Some old and new values:
MAP range[kPa] | config.kpafac | old config.kpaofs | new config.kpaoffs |
400 | 0xC8 | 0x00 | 0x80 |
400 | 0xC8 | 0x30 | 0x9E |
254 | 0x7F | 0x52 | 0xA8 |
254 | 0x7F | 0x00 | 0x80 |
104 | 0x34 | 0x00 | 0x80 |
Original behavior - (select with kpafac=00) not really useful
Warning! This is history! kpafac!=00 is the way to go, much better precision, bigger range and easy calibration. This old method will be dropped!
Basically all that had to be done is to define what sensor was being used. To maintain compatibility with MegaTune, the values were somewhat obscure.
Bad names inherited from motorola ms. Look for config11..config13 explanation in old sources, snapshot here: http://caffrey.dk/megasquirt/files/veconst.h
- Configuration Parameter: config11
- Bit Value: upper half: number of cyls-1, bit0 0:mpx4115ap, 1:mpx4250ap
- Example: config11=30
read it in global.h and URL above. Leave this 00, especially the speed_density bits. It requires experience to get sane results if this is nonzero.
Q: What factory-installed sensor is supported?
A: Almost any factory sensor is supported that has analog voltage output (not frequency output like some Ford MAP sensors). The GM 1Bar sensors are frequently used with kpafac=34 (=decimal 52 = 104kPa MAP range). VAG (VW, Audi, Porsche, Skoda, Seat) MAP sensors are also analog voltage output so easy to use.
Special pressure sensors for the brave
If you are otherwise good at measurement theory, ask for details how to use a low-signal (40..150mV signal, v3.x only !) sensor:
- either compensated (like MPX2200AP : very linear upto 200kPa and usable for upto 400kPa)
- or uncompensated (like MPX700A : very linear upto 700kPa and usable upto 2800kPa :-).
See [calibration experiment] against the MPX4250AP sensor. It seems that only gain is essential to measure, the typical value from datasheet can be used for gain(temp).
Note that at 4V supply (leaving 1V for series resistor used for sensor-element temperature measurement) an MPX700A's (my calibration value) 120mV/700kPA is almost as high as the MPX2200A's 40mV/200kPa. Unfortunately the MPX200A is out of fashion.
See also