Bench Testing MAP Sensor - Boost

A1C calibration can be modified and configured to operate all EFI-SD4x ECUs in 4 cylinder, 6 cylinder and 8 cylinder configurations.
mechanicalmatch
Posts: 88
Joined: 2021 Apr 15, 10:56
Location: Spring Texas
Vehicle Information: 00 F150 4.6L Extended cab
CVAF1
4R70 3.08

Re: Bench Testing MAP Sensor - Boost

Unread post by mechanicalmatch »

i did not pull those myself. i think those came from eec analyzer site. i will do some more digging.
decipha
Posts: 4956
Joined: 2021 Feb 15, 12:23
Location: Metairie, LA
Vehicle Information: Work Truck
'19 F-150 3.3L

Re: Bench Testing MAP Sensor - Boost

Unread post by decipha »

svo and turbocoupes were not map they were vam with a bap
mechanicalmatch
Posts: 88
Joined: 2021 Apr 15, 10:56
Location: Spring Texas
Vehicle Information: 00 F150 4.6L Extended cab
CVAF1
4R70 3.08

Re: Bench Testing MAP Sensor - Boost

Unread post by mechanicalmatch »

what about cosworth stuff
jsa
Posts: 261
Joined: 2021 Feb 16, 15:46
Location: Australia
Vehicle Information: 95 Escort RS Cosworth
2.0 YBP
CARD / QUIK / COSY / ANTI
GHAJ0
SMD-190 / SMD-490 EEC-IV

Binary Editor
ForDiag

Re: Bench Testing MAP Sensor - Boost

Unread post by jsa »

GHAJ0 is MAF.
efloth
Posts: 274
Joined: 2021 Feb 15, 22:12
Location: Sacramento CA
Vehicle Information: 1991 F150 4.9L J1X 80lb Injectors E85
1995 F150 5.8L MOB1

Re: Bench Testing MAP Sensor - Boost

Unread post by efloth »

Well based on this I think we can just change some hard coded limits here to allow for more than 162hz. It is literally hard coded to not read anything beyond 162hz (WOT in death valley I guess) This is the A1C MAP Subroutine. I tabbed out the if statements and converted the words to decimal and divided by 256 to get the values. C code only down below. We should be able to determine what R56 and R5c represent and set appropriate values for boost. Seems easy enough unless this is just the tip of the iceberg.

Code: Select all

Sub_38ff:
38ff: c3,e4,a2,58         stw   R58,[Re4+a2]     [122] = R58;
3903: 89,db,7c,58         cmpw  R58,7cdb         
3907: db,30               jc    3939             if (R58 < 7cdb)  {
3909: 89,5f,64,58         cmpw  R58,645f         
390d: db,10               jc    391f             if (R58 < 645f)  {
390f: 89,6c,59,58         cmpw  R58,596c         
3913: d3,54               jnc   3969             if (R58 < 596c) goto 3969;
3915: a1,bd,6e,56         ldw   R56,6ebd         R56 = 6ebd;
3919: a1,21,23,5c         ldw   R5c,2321         R5c = 2321;
391d: 20,64               sjmp  3983             goto 3983; }

391f: 89,5a,71,58         cmpw  R58,715a         
3923: db,0a               jc    392f             if (R58 < 715a)  {
3925: a1,f1,69,56         ldw   R56,69f1         R56 = 69f1;
3929: a1,4a,21,5c         ldw   R5c,214a         R5c = 214a;
392d: 20,54               sjmp  3983             goto 3983; }

392f: a1,88,63,56         ldw   R56,6388         R56 = 6388;
3933: a1,7b,1e,5c         ldw   R5c,1e7b         R5c = 1e7b;
3937: 20,4a               sjmp  3983             goto 3983; }

3939: 89,72,96,58         cmpw  R58,9672         
393d: db,1a               jc    3959             if (R58 < 9672)  {
393f: 89,e0,88,58         cmpw  R58,88e0         
3943: db,0a               jc    394f             if (R58 < 88e0)  {
3945: a1,c4,5e,56         ldw   R56,5ec4         R56 = 5ec4;
3949: a1,2a,1c,5c         ldw   R5c,1c2a         R5c = 1c2a;
394d: 20,34               sjmp  3983             goto 3983; }

394f: a1,10,59,56         ldw   R56,5910         R56 = 5910;
3953: a1,19,19,5c         ldw   R5c,1919         R5c = 1919;
3957: 20,2a               sjmp  3983             goto 3983; }

3959: 89,3f,a2,58         cmpw  R58,a23f         
395d: db,18               jc    3977             if (R58 >= a23f) goto 3977;
395f: a1,7e,53,56         ldw   R56,537e         R56 = 537e;
3963: a1,d3,15,5c         ldw   R5c,15d3         R5c = 15d3;
3967: 20,1a               sjmp  3983             goto 3983; }

3969: a1,6c,59,58         ldw   R58,596c         R58 = 596c;
396d: a1,bd,6e,56         ldw   R56,6ebd         R56 = 6ebd;
3971: a1,21,23,5c         ldw   R5c,2321         R5c = 2321;
3975: 20,0c               sjmp  3983             goto 3983; }

3977: a1,3f,a2,58         ldw   R58,a23f         R58 = a23f;
397b: a1,7e,53,56         ldw   R56,537e         R56 = 537e;
397f: a1,d3,15,5c         ldw   R5c,15d3         R5c = 15d3;
3983: 6c,56,58            ml2w  R58,R56          lR58 *= R56;
3986: 68,5c,5a            sb2w  R5a,R5c          R5a -= R5c;
3989: c3,e4,a6,5a         stw   R5a,[Re4+a6]     [126] = R5a;
398d: 91,40,a0            orb   Ra0,40           B6_Ra0 = 1;
3990: 91,01,a1            orb   Ra1,1            B0_Ra1 = 1;
3993: 38,a7,19            jb    B0,Ra7,39af      if (B0_Ra7 = 0)  {
3996: 71,f7,a6            an2b  Ra6,f7           B3_Ra6 = 0;
3999: c3,e4,a4,5a         stw   R5a,[Re4+a4]     [124] = R5a;
399d: 09,03,5a            shlw  R5a,3            R5a <<= 3;
39a0: b0,5b,ba            ldb   Rba,R5b          Rba = R5b;
39a3: 91,20,52            orb   R52,20           B5_R52 = 1;
39a6: c3,e4,a0,00         stw   R0,[Re4+a0]      [120] = 0;
39aa: c3,e4,a8,00         stw   R0,[Re4+a8]      [128] = 0;
39ae: f0                  ret                    return; }

Code: Select all

[122] = R58;
 
if (R58 < 7cdb){ //124hz
 
    if (R58 < 645f){ //100hz
 
        if (R58 < 596c) goto 3969; //89hz
        R56 = 6ebd;
        R5c = 2321;
        goto 3983; }

    if (R58 < 715a){ //113hz
    R56 = 69f1;
    R5c = 214a;
    goto 3983; }

R56 = 6388;
R5c = 1e7b;
goto 3983; }

if (R58 < 9672){ //150hz
 
    if (R58 < 88e0){ //136hz
    R56 = 5ec4;
    R5c = 1c2a;
    goto 3983; }

R56 = 5910;
R5c = 1919;
goto 3983; }

if (R58 >= a23f) goto 3977; //162hz

R56 = 537e;
R5c = 15d3;
goto 3983; 

3969: R58 = 596c;
R56 = 6ebd;
R5c = 2321;
goto 3983; 

3977: R58 = a23f; //162hz
R56 = 537e;
R5c = 15d3;

3983: lR58 *= R56;
R5a -= R5c;
[126] = R5a;
B6_Ra0 = 1;
B0_Ra1 = 1;

if (B0_Ra7 = 0){
B3_Ra6 = 0;
[124] = R5a;
R5a <<= 3;
Rba = R5b;
B5_R52 = 1;
[120] = 0;
[128] = 0;
return; }
efloth
Posts: 274
Joined: 2021 Feb 15, 22:12
Location: Sacramento CA
Vehicle Information: 1991 F150 4.9L J1X 80lb Injectors E85
1995 F150 5.8L MOB1

Re: Bench Testing MAP Sensor - Boost

Unread post by efloth »

Thinking about removing all of the nested if statements and adding functions to lookup values for r56 and r5c. It should look something like this:
chart_maker_pro_1662460775184.jpg
Thoughts?
decipha
Posts: 4956
Joined: 2021 Feb 15, 12:23
Location: Metairie, LA
Vehicle Information: Work Truck
'19 F-150 3.3L

Re: Bench Testing MAP Sensor - Boost

Unread post by decipha »

try it out and see

unfortunately I won't be of any help any time soon I'm backed up pretty good
efloth
Posts: 274
Joined: 2021 Feb 15, 22:12
Location: Sacramento CA
Vehicle Information: 1991 F150 4.9L J1X 80lb Injectors E85
1995 F150 5.8L MOB1

Re: Bench Testing MAP Sensor - Boost

Unread post by efloth »

No worries, I've started writing the code maybe one of you other guys can help me figure out how the argument address location is calculated. It made sense to me in the past, but I can seem to figure out how from address 4b51 in the example below using 0218 the computer addresses the function at a618.

Code: Select all

4b4e: ef,b8,fb            call  4709             UUWFuncLU_4709 (
4b51: 18,02                     #arg 1              Func_a618,
4b53: 38,00                     #arg 2              38 );
Is it a reference address + 0218?
decipha
Posts: 4956
Joined: 2021 Feb 15, 12:23
Location: Metairie, LA
Vehicle Information: Work Truck
'19 F-150 3.3L

Re: Bench Testing MAP Sensor - Boost

Unread post by decipha »

An argument is based on the calling routine. You have to go to the 4709 routine to see whats its doing to get that.
jsa
Posts: 261
Joined: 2021 Feb 16, 15:46
Location: Australia
Vehicle Information: 95 Escort RS Cosworth
2.0 YBP
CARD / QUIK / COSY / ANTI
GHAJ0
SMD-190 / SMD-490 EEC-IV

Binary Editor
ForDiag

Re: Bench Testing MAP Sensor - Boost

Unread post by jsa »

Code: Select all

   UUWFuncLU_4709:
4709: cc,36               pop   R36              R36 = pop();      # 0x4B51
470b: b2,37,32            ldb   R32,[R36++]      R32 = [R36++];    # 0x18
470e: b2,37,33            ldb   R33,[R36++]      R33 = [R36++];    # 0x02
4711: ac,33,34            ldzbw R34,R33          wR34 = yR33;      # 0x02
4714: 71,0f,33            an2b  R33,f            R33 &= f;         # 0x02
4717: 08,04,34            shrw  R34,4            R34 >>= 4;        # 0x00
471a: 67,35,f0,00,32      ad2w  R32,[R34+f0]     R32 += [R34+f0];  # 0xA618=0x0218+[0x0+0xA400]
Post Reply