S2 AFM Transfer Function and Flow Graph
#1
Three Wheelin'
Thread Starter
![Default](https://rennlist.com/forums/images/icons/icon1.gif)
OK, here is the AFM transfer function plotted against the flow data that Joshua supplied to me.
The address for the transfer function in the EPROM is h6560. The data consists of the usual 8 (AFM1) x 8 (AFM2) x 32 (AFM3) function.
The formula is AFM1 x 2^AFM2 x AFM3 for banks 0-7.
So Bank 0 would equal AFM1 {Bank 0} x 2^(AFM2{Bank 0}) x AFM3 (n=1 to 32) to give the first 32 values. This is repeated 7 more times for Banks 1-7.
Voltage is divided into 0.625V for each bank (8 x 0.625v = 5v). So each x value is an increment of 0.625V/32.
The values for AFM2 are a bit strange in the 16v code. I had to take a punt here to decode these as they are 252 253 254 255 255 0 1 2. I interpreted these as 1 2 3 4 4 5 6 7 (ie subtract 251 and if negative add 256). Not sure why the engineers would write code like this, unless there is some trigger associated between the 255 and 0 that feeds into another parameter. As a check the first graph uses AFM2 values of 0 1 2 3 3 4 5 6 to see if the function changes much - very little difference in fact.
As you can see the flow data matches the calculated values extremely closely except at the upper end (Bank 7). This could either be due to the resolution of the AFM at these flows, or an error in my assumptions in the AFM 2 adjustment values.
I have used trial and error to scale the y axis values down, as they calculate as a dimensionless number. I simply divided by 10000 to approximate CFM and fit the flow data I had. I am not sure how the DME converts these raw numbers to a load value. Perhaps Josh may elaborate as it is probably similar to the 951 code.
I have also overplotted data for a particular Bosh MAF to see how closely it fits the curve - fairly close in this respect perhaps almost plug and play once the temperature vs density maps are set to neutral in the code.
The address for the transfer function in the EPROM is h6560. The data consists of the usual 8 (AFM1) x 8 (AFM2) x 32 (AFM3) function.
The formula is AFM1 x 2^AFM2 x AFM3 for banks 0-7.
So Bank 0 would equal AFM1 {Bank 0} x 2^(AFM2{Bank 0}) x AFM3 (n=1 to 32) to give the first 32 values. This is repeated 7 more times for Banks 1-7.
Voltage is divided into 0.625V for each bank (8 x 0.625v = 5v). So each x value is an increment of 0.625V/32.
The values for AFM2 are a bit strange in the 16v code. I had to take a punt here to decode these as they are 252 253 254 255 255 0 1 2. I interpreted these as 1 2 3 4 4 5 6 7 (ie subtract 251 and if negative add 256). Not sure why the engineers would write code like this, unless there is some trigger associated between the 255 and 0 that feeds into another parameter. As a check the first graph uses AFM2 values of 0 1 2 3 3 4 5 6 to see if the function changes much - very little difference in fact.
As you can see the flow data matches the calculated values extremely closely except at the upper end (Bank 7). This could either be due to the resolution of the AFM at these flows, or an error in my assumptions in the AFM 2 adjustment values.
I have used trial and error to scale the y axis values down, as they calculate as a dimensionless number. I simply divided by 10000 to approximate CFM and fit the flow data I had. I am not sure how the DME converts these raw numbers to a load value. Perhaps Josh may elaborate as it is probably similar to the 951 code.
I have also overplotted data for a particular Bosh MAF to see how closely it fits the curve - fairly close in this respect perhaps almost plug and play once the temperature vs density maps are set to neutral in the code.
Last edited by Eric_Oz_S2; 06-08-2011 at 08:44 AM.