Results 1 to 15 of 509

Thread: 1997 F-Body ECM

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Quote Originally Posted by kur4o View Post
    The pcm outputs 5v on low and high res pins and the opti drives the signal low on empty slot I guess.
    The simulator should be pretty easy if I had a spare pcm.
    I thought you might already have what you would need. Otherwise, almost any of the single board computers available for a few $s can easily do. It is logistically easier if the part is 5V based but almost anything will do. Doesn't need to be Motorola at all. A PIC or an old intel 8051/31 type board would be ideal. In fact now that I think of it... your PC could output the pulse train through a parallel port under dos. I wouldn't want to use windows/linux/some big OS because the timing will be un-steady due to latency. Also the larger OSs might be slower and limit "RPM". Even so, you could try it under windows and see if it meets your need.

    -Tom

  2. #2
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Still working on TPU but,

    I have a question regarding MAF. My understanding is that the MAF unit produces a frequency that is interpreted by the TPU. Is the frequency proportional to air flow or air flow mass? I know mass will be affected by temperature (IAT) and pressure (Barometer) the question is, does the MAF unit factor all this in or is it actually a measure of air flow and uses software to come up with the mass rate? I think the MAF might be mis-named (?)

    If anyone can provide some clarity it will be a help.

    -Tom

  3. #3
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,478
    Maf is a mass air flow, It measures mass with a heat element being cooled. It is supposed to compensate for temperature and pressure, however humidity kind of screw the reading. However in the code there is only baro correction and some temperature correction for subzero temperatures. The corrections might not be output related but different engine requirements at that range.It also updates so quickly that gm put some smoothing routine to compensate for rapid changes.

    The TPU outputs 4 maf values and eside gets an average of them for final calculation. It uses the raw TPU output for a maf table lookup and takes the value from table and interpolates between 2 adjacent cells. The first byte of RAW output is the vector for the table lookup and the second byte is the interpolation factor 0-255 or 0.01-0.99.

    I will try to find a 68hc11 pcm to run a custom code for opti simulation. For variable rpm output I think a table for 1 high res pulse vs time vs rpm needs to be done and low res will just follow the high res.

  4. #4
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    I took a deep dive into injector offset. This parameter is set in the TPU at address $14B2. I believe the calculation goes like this:

    -Read ignition voltage from A/D ch0
    -Apply a transfer function to the voltage value such that points on the table are further apart under abnormal conditions and close together in the normal working area
    -Transfer function is then used in an interpolation routine
    -The output is an 8b value, a 16b value is developed by multiplying by 2
    -That 16b value is the one applied to the TPU

    Given the table for a '97 Z28, this is the stock graph. PS... missed some of the graph. Red is transfer function, green is injector offset. Decimal point missing in the voltage...
    InjectorOffset.jpg

    I plan to try various values for offset to determine how this is applied into the calculation of end of injection and/or pulse width. More work is needed on my end to understand when this parameter is calculated. I see it done in at least two places with code that is for the most part the same. Not sure why it is duplicated.

    -Tom
    Last edited by Tom H; 02-20-2020 at 10:28 PM.

  5. #5
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,478
    It is done at reset and than at oc4i.
    The update of offset value is every 100ms and it is stored at the TPU every 112.5 ms. I am sure it will be the same or close at the 96-97 code.
    It will be nice to figure how it is handled by the tpu. The 16bit value is converted to ms by the same factor for BPW and low res signal.
    I suspect that tpu adds the offset to the BPW before commanding the injector. Since you are at the injectors side, do you think that there is a setting in the tpu to fire injectors in batch mode. Does it use some average bpw value or still use the ind cyl bpw but fire 4 of them at the same time with the bpw set different for each cylinder.

  6. #6
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Quote Originally Posted by kur4o View Post
    It is done at reset and than at oc4i.
    The update of offset value is every 100ms and it is stored at the TPU every 112.5 ms. I am sure it will be the same or close at the 96-97 code.
    It will be nice to figure how it is handled by the tpu. The 16bit value is converted to ms by the same factor for BPW and low res signal.
    I suspect that tpu adds the offset to the BPW before commanding the injector. Since you are at the injectors side, do you think that there is a setting in the tpu to fire injectors in batch mode. Does it use some average bpw value or still use the ind cyl bpw but fire 4 of them at the same time with the bpw set different for each cylinder.
    Thank you for the details.

    I wrote a simple test that writes a table of values to $1400 and $14B2. I believe $1400 to be injection pulse width and $14B2 to be injector offset. While monitoring the injection signal, I changed both PW and Offset. I looks like the two are added and the pulse width is the sum of both. Next is to measure pulse width vs EClock.

    -Tom

  7. #7
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,478
    Nice progress. Can you look at the end of injection target and how it is used by the tpu. The math here is some what guessed it will be nice to get a confirmation how to convert the eoit target to degrees.

    14d6 is modified before and after the EOIT target is updated in the tpu.?/some timer maybe. it is missing on the 94-95 code.
    These are the other tpu addresses, there are 4 of them. Could be for some individual eoit targets by cylinders.
    Code:
    loc_5F28:
    std     byte_EA
    lsrd
    lsrd
    lsrd
    lsrd
    adcb    #0
    adca    #0
    pshb
    tab
    clra
    std     word_141C
    std     word_141E
    pulb
    std     word_143C
    std     word_143E
    The value of EOIT target is 00-6f, First digit could be low res pulses from TDC, and the second digit could be some % between low res pulse. 0-f=15 90*/15=6* accuracy.
    It is only speculations but it is also the most logic one.

  8. #8
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Quote Originally Posted by Tom H View Post
    I wrote a simple test that writes a table of values to $1400 and $14B2. I believe $1400 to be injection pulse width and $14B2 to be injector offset. While monitoring the injection signal, I changed both PW and Offset. I looks like the two are added and the pulse width is the sum of both. Next is to measure pulse width vs EClock.
    I posted quickly and missed important detail perhaps obvious (?)
    $1400 is one of eight pulse width channels, there is one for each injector. $1400, $1402, $1404, $1406, $1408, $140A, $140C, $140E are the addresses used to set pulse width. The GM design assumes that all the injectors are powered with the same voltage (I am sure that is valid). The 2port RAM at $14B2 is added to each of the pulse widths to adjust for the delay between when the TPU fires the injector and when fuel starts to flow.

    I will be on the outlook for a similar register with a multiplication factor that might be built in to handle fuel pressure variations. This is not in the system design but might be built in as a contingency.

    Wonder if anyone can name all (most) of the 2port RAM addresses GM uses to set pulse width in the various modes. Since I can't get at the internal code to figure this out, all I can do is to work through more and more assembly code.
    -Tom

Similar Threads

  1. 94-95 LT1 $EE Y-body vs. F/B-body PCM differences
    By johnny_b in forum GM EFI Systems
    Replies: 5
    Last Post: 01-15-2023, 02:41 PM
  2. Tuner Pro XDF 1999-2000 F Body + Y Body
    By john h in forum OBDII Tuning
    Replies: 33
    Last Post: 02-02-2020, 11:12 PM
  3. Replies: 31
    Last Post: 09-20-2018, 06:00 AM
  4. F-body engine install to B-body
    By serge_an in forum GM EFI Systems
    Replies: 4
    Last Post: 09-22-2016, 02:51 PM
  5. 95 F-body Fuel Pump with 95 B-Body Engine/Tank
    By EPS3 in forum GM EFI Systems
    Replies: 7
    Last Post: 09-19-2016, 02:40 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •