DIY PROM Do It Yourself PROM chip burning help. No PROM begging. No PROMs for sale. No commercial exchange. Not a referral service.

How is LV8 calculated on MAF cars?

Thread Tools
 
Search this Thread
 
Old Mar 31, 2005 | 08:39 AM
  #1  
blue86iroc's Avatar
Thread Starter
Supreme Member
20 Year Member
iTrader: (2)
 
Joined: Jul 2001
Posts: 1,000
Likes: 1
From: Western PA
Car: 1986 IROC-Z
How is LV8 calculated on MAF cars?

As you all know, the search feature is currently quite lacking, so I guess I have to be a nuisance and ask a question that's probably been answered a hundred times before...

In a MAF car, how is the LV8 load variable calculated? I know it involves MAF airflow, but I don't know what else. I looked through ALL of the old mailing list archives at GM ECM, and found the following two possibilites.

LV8 = (MAF flow @ RPM) / (Max Airflow & RPM) * 255

LV8 = (MAF flow @ RPM) / RPM * scale factor

The first one seems mostly incorrect, as any attempts to make it work failed. The second one showed more promise, and I reconstructed the equation to solve for the scale factor, based upon my logged data -- the average value came to be somewhere around 4800, but it went anywhere from the mid-3000s to the low-5000s -- if this were a scale factor, I don't think there'd be that much variation. Also, if it matters, the BUA hack indicates a scale factor of 80 in hex, with is 16 in decimal (obviously far too small if using the equation above).

What's the correct formula for calculating LV8?
Reply
Old Mar 31, 2005 | 11:55 AM
  #2  
RBob's Avatar
Moderator
iTrader: (1)
 
Joined: Mar 2002
Posts: 18,432
Likes: 233
From: Chasing Electrons
Car: check
Engine: check
Transmission: check
LV8 = inverse RPM * airflow * scalar


https://www.thirdgen.org/techbb2/sho...hreadid=114856

RBob.
Reply
Old Mar 31, 2005 | 12:32 PM
  #3  
blue86iroc's Avatar
Thread Starter
Supreme Member
20 Year Member
iTrader: (2)
 
Joined: Jul 2001
Posts: 1,000
Likes: 1
From: Western PA
Car: 1986 IROC-Z
Thanks for the thread and equation, RBob. Looking at the BUA hack, there are two references to an LV8 scale factor.

FCB 80 ; CAL = arg + 64, (16)

and

80d = 80/64 = 16

So, I tried either 192, per the first calculation, and 16, per the second. I'm not able to reproduce the same LV8 values I'm seeing with my data logger. Example:

1/1550 * 14.01 * 16 = 0.144

1/1550 * 14.01 * 192 = 1.735

The value I'm looking for is 43. What do you think I did wrong?

In case you're wondering why I'm curious about this, it's because I'm doing a university project that is a formal paper discussing the breakdown and operation of GM's fuel control system.
Reply
Old Mar 31, 2005 | 04:46 PM
  #4  
RBob's Avatar
Moderator
iTrader: (1)
 
Joined: Mar 2002
Posts: 18,432
Likes: 233
From: Chasing Electrons
Car: check
Engine: check
Transmission: check
School paper eh? I earned a few credits myself with a couple of papers on EFI. Good stuff. Here is the LV8 equation as actually implemented in the BUA code:

LV8 = (((DRP * gms/sec) / 256) * Scalar) / 64

The DRP can be found be reversing the RPM calculation:

DRP = 983040 / RPM

-gives-

983040 / 1550 = 634

Then gms/sec at 14.01 and the scalar of 80 (decimal):

(((634 * 14.01) / 256) * 80) / 64 = 43 (the LV8, or Load Variable, 8 bits).

Here is the Bua code simplified. I removed the crank RPM limiter and the saving of one & two delayed LV8 terms:

Code:
;-------------------------------
;
; Calculate the LV8 term
;
;-------------------------------

;
; do 16 * 16 Mult of DRP (inverse RPM) and airflow
;

	LDX	L0095		; Current Minor LP Ref Period
LD77B:	LDD	L00EA		; Gms/Sec Disp Value, (Mult'plr)

	JSR	LF2F0		; 16 * 16 Mult routine
				; 
	PSHB			; Save Middle 2 Bytes of Product
	PSHA			; Save Middle 2 Bytes of Product
				;
;
; mult result of above calc by scalar term
;

	TSX			; point to middle 2 bytes of prev calc
				; 
	LDAA	LC69A		; Ld VAR FOR SCALING LV8 Scale factors
				; 80d = 80/64 = 16
	JSR	LF472		; FACTOR IN 8x16 MULT

	LDD	0,X		; get result of 8x16 mult
	ROLB			; AB *= 2
	ROLA			;
	BCC	LD798		;
	LDD	#$FFFF		;
				; 
LD798:	ASLB			;  ROUND up A
	ADCA	#0		; ROUND
				; 
	PULX			; stack clean up
				; 
	BCC	LD7A0		; bra if no ovf of adca
	LDAA	#255		; USE MAX VAL
				; 
LD7A0:	STAA	L0063		; Save LD VALUE (LV8)
RBob.
Reply
Old Mar 31, 2005 | 05:14 PM
  #5  
blue86iroc's Avatar
Thread Starter
Supreme Member
20 Year Member
iTrader: (2)
 
Joined: Jul 2001
Posts: 1,000
Likes: 1
From: Western PA
Car: 1986 IROC-Z
A tremendous thanks to you, RBob! I figured that there had to be a few more factors to multiply or divide by... .

Does "DRP" actually stand for anything? I've seen it a few times and it was always just labeled "inverse RPM."

While we're on the subject of formulas, I think I'm going to hijack my own thread. I've been trying to figure out the base pulsewidth calculation for $32 and $6E masks, but I cannot reproduce the same values that I'm seeing through my data logger.

To be honest, my assembly reading ability is quite low, so trying to understand the hacks isn't always easy. I came across a thread in which you explained the BPW calculation to be the following:

PW = (((((DRP * gms/sec) / 512) * AFR) / 256) * InjFlwRate / 128) * 0.01526

Entering the corresponding values from one of my logs yields readings that are typically lower than what I have. Even correcting for the BLM doesn't make things line up. There is probably some additional modifier that I'm not seeing. Can you shed some light on this?

Yep, this is all for an engineering presentation that I'm giving next week. While everyone else is doing mundane topics such as "Women in Science" and "Rollercoaster Physics," I decided to do something a little more challenging (and interesting!). Too bad it's making my head spin!
Reply
Old Mar 31, 2005 | 07:05 PM
  #6  
RBob's Avatar
Moderator
iTrader: (1)
 
Joined: Mar 2002
Posts: 18,432
Likes: 233
From: Chasing Electrons
Car: check
Engine: check
Transmission: check
Dunno, I think the thread you posted explains and examples the PW calc quite well. Have you run through the calculations and found something amiss?

RBob.
Reply
Old Mar 31, 2005 | 07:35 PM
  #7  
blue86iroc's Avatar
Thread Starter
Supreme Member
20 Year Member
iTrader: (2)
 
Joined: Jul 2001
Posts: 1,000
Likes: 1
From: Western PA
Car: 1986 IROC-Z
Here's a sample of the data that I'm working with:

RPM - 2050
MAF - 33.18 g/sec
BLM - 144
INT - 130
AFR - 14.71

First, let's get a few things in the right format.

AFR = 6554 / 14.71 = 446
DRP = 983040 / 2050 = 480

I'm running 24 lb/hr injectors, so the flow rate for single-fire mode is 441.

Using the equation...

PW = (((((DRP * gms/sec) / 512) * AFR) / 256) * InjFlwRate / 128) * 0.01526

PW = (((((480 * 33.18) / 512) * 446) / 256) * 441 / 128) * 0.01526

I get a value of 2.85 ms, but the BPW observed in my log is 3.23 ms. I'm assuming that the BLM/INT values correct this, and taking (144 / 128) * 2.85 equals 3.21 ms, which is pretty close to the BPW that I saw. The INT probably corrects this further, but I understand that it carries "less weight" in the correction, and frankly, I don't know what that weight is.

Hmm, it seemed like it worked this time. Was I right in factoring in the BLM correction to this value? If so, shouldn't my data logger read "pulsewidth," not "BASE pulsewidth"? I thought that the base values were calculated before any correction.
Reply
Related Topics
Thread
Thread Starter
Forum
Replies
Last Post
specialized
TPI
27
Jun 18, 2022 09:26 AM
Reddeath210
Firebirds for Sale
14
Oct 6, 2015 08:20 AM
NBrehm
Engine/Drivetrain/Suspension Parts for Sale
1
Aug 25, 2015 11:49 PM
Linson
Auto Detailing and Appearance
40
Aug 21, 2015 02:12 PM
IROCThe5.7L
DIY PROM
1
Aug 10, 2015 11:24 AM




All times are GMT -5. The time now is 02:59 AM.