Page 1 of 34 12345611 ... LastLast
Results 1 to 15 of 509

Thread: 1997 F-Body ECM

  1. #1
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477

    1997 F-Body ECM

    I have been working through the code on this ECM for a while. I plan to share information about this ECM here if there is interest. I have started with the analog bits that are written up here. I must thank a number of sources that have helped me find my way through the code. I will appreciate any assist that this list can give. As I get further along through the code, I will post here from time to time

    I have just updated this post. More detail on unused A/Ds and an important correction re confusion about battery/ignition voltage. The multiplexers involved in all this analog switching are TI CD4051 or very similar. Manufacturer is TI for sure because of markings I recognize on the packaging. I believe the oxygen sensor interface makes use of another TI part LM9044. Can't be 100% on this, but the pinout and features match.

    One last issue, I have a Motorola M68HC11 reference manual revision 3. There is an error in the chip pinout for the F1 variant: Pin 61 is incorrectly labeled as PE1/AN2 s/b PE1/AN1 later editions are corrected (time killer).

    Thanks to members for help and corrections offered!

    Cheers -Tom
    ======================================


    The 68HC11 has 8 channels of D/A on chip. The input port is designated "Port E". The eight inputs are designated PE0 through PE7. There are more than eight inputs to the 1997 Camaro ECM thus multiplexing is used on some inputs as below. Port G bits 0-2 select which of the inputs are connected to the A/D inputs PE5-PE7.

    A/D PE0, NON-MUXED A/C pressure C4 Blue pin 12

    I am not sure what is measured on with PE1, PE2, PE3 and PE4. In the 1997 Camaro with an M6, it would seem these are not used. There are a bunch of possibilities... I believe these inputs are not multiplexed.

    A/D PE1, Default 0 Volt
    A/D PE2, Default 0 Volt
    A/D PE3, Default 0 Volt
    A/D PE4, Default 0 Volt

    The following inputs are measured through A/D inputs PE5 - PE7. They are multiplexed and reading is done once each eight calls of the routine. A CD4051 or similar is used to preform the multiplexing. A modulo eight counter is set up such that the analogs are updated on a round robin basis. The analogs are:

    A/D PE5, MUX INPUT 0 Throttle position sensor C3 Clear pin 22 Mux1 pin 13
    A/D PE5, MUX INPUT 1 Manifold absolute pressure C3 Clear pin 23 Mux1 pin 14
    A/D PE5, MUX INPUT 2 Engine coolant temperature C3 Clear pin 25 Mux1 pin 15
    A/D PE5, MUX INPUT 3 Intake air temperature C3 Clear pin 21 Mux1 pin 12
    A/D PE5, MUX INPUT 4 Not used Default 0 Volt Mux1 pin 1
    A/D PE5, MUX INPUT 5 Not used Default 0 Volt Mux1 pin 5
    A/D PE5, MUX INPUT 6 Not used C3 Clear pin 27 Mux1 pin 2
    A/D PE5, MUX INPUT 7 EVAP TEMPERATURE C4 Blue pin 24 Mux1 pin 4

    A/D PE6, MUX INPUT 0 ALDL field service enable C4 Blue pin 20 Mux2 pin 13
    A/D PE6, MUX INPUT 1 Not used Default 0 Volt Mux2 pin 14
    A/D PE6, MUX INPUT 2 Knock sensor Knock filter pin 2 Mux2 pin 15
    A/D PE6, MUX INPUT 3 O2 sensor From TI LM9044 chip Mux2 pin 12
    A/D PE6, MUX INPUT 4 O2 sensor From TI LM9044 chip Mux2 pin 1
    A/D PE6, MUX INPUT 5 Knock filter pin 1 Mux2 pin 5
    A/D PE6, MUX INPUT 6 Not used Default 0 Volt Mux2 pin 2
    A/D PE6, MUX INPUT 7 Not used Default 0 Volt Mux2 pin 4

    A/D PE7, MUX INPUT 0 IGNITION VOLTAGE C4 Blue pin 3 Mux3 pin 13
    A/D PE7, MUX INPUT 1 AUTO TRANS TEMP C4 Blue pin 28 Mux3 pin 14
    A/D PE7, MUX INPUT 2 ENGINE OIL TEMP C4 Blue pin 26 Mux3 pin 15
    A/D PE7, MUX INPUT 3 O2 sensor From TI LM9044 chip Mux2 pin 12
    A/D PE7, MUX INPUT 4 O2 sensor From TI LM9044 chip Mux2 pin 1
    A/D PE7, MUX INPUT 5 Not used Default 0 Volt Mux3 pin 5
    A/D PE7, MUX INPUT 6 Not used Default 0 Volt Mux3 pin 2
    A/D PE7, MUX INPUT 7 Not used Default 0 Volt Mux 3 pin 4

    Oxygen sensors connect to the ECM with four wire pairs through the C3 (gray) connector pins:
    3,4 Front left heated oxygen sensor (HO2S B1 S1)
    7,8 Rear left heated oxygen sensor (HO2S B1 S2)
    17,18 Front right heated oxygen sensor (HO2S B2 S1)
    19,20 Rear right heated oxygen sensor (HO2S B2 S2)

    These inputs connect to four TI lambda sensors. These interface chips have a number of features that both protect and provide default values int the event of faults. This tripped over this when trying to measure these inputs without ground referencing. The interface chips output a default voltage in this condition, which has no relation with the applied differential voltage (fault condition default). I can not be 100% certain of the chip number because only house numbers are marked. I believe them to be LM9904 Lambda Sensor Interface Amplifier.

    A/D PE6, MUX INPUT 3 HO2S B1 S1
    A/D PE6, MUX INPUT 4 HO2S B1 S2
    A/D PE7, MUX INPUT 3 HO2S B2 S1
    A/D PE7, MUX INPUT 4 HO2S B2 S2

    A/C pressure sensor is referenced to the ECMs internal 5V reference and sensor ground. It is connected to the ECM through connector C4 (blue) pin 12. There is no multiplexer used on PE0.

    ===================
    If you have any additions or corrections to this, or just want to comment Please PM me.

    -Tom
    Last edited by Tom H; 01-25-2019 at 05:51 PM.

  2. #2
    Fuel Injected! Terminal_Crazy's Avatar
    Join Date
    Oct 2015
    Location
    Lancashire England
    Posts
    410
    Hi
    Ignore this if i’m talking rubbish.
    I’m no expert on the code and only know about 95’s
    What i noticed is the ref to
    Pe7 input 0 battery voltage.

    On the 95 xdf? It shows as pcm voltage.
    This isn’tthe same as battery voltage or injector voltage as i’d presumed at the time.
    So i’m guessing it’s the the pcm working voltage?

    Just to avoid confusion ��

    Mitch
    '95 Z28 M6 -Just the odd mod.
    '80 350 A3 C3 Corvette - recent addition.

  3. #3
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    I am working from various sources, it's where I got the name. I think it is the ignition voltage (pink wire into ecm) that is being measured. With key on s/b same. Having said that, it may be measuring elsewhere as you suggest. I will try putting a diode drop in the ignition wire and see if we drop a volt or so. Reverse engineering sucks.

    Could you PM me with some details of what an xdf is? They have been mentioned in some posts I have read. I would like to find out what is already discovered about all this. Could save me a bunch of time.

  4. #4
    Fuel Injected! Terminal_Crazy's Avatar
    Join Date
    Oct 2015
    Location
    Lancashire England
    Posts
    410
    I think they are xdf,
    Tuner pro files with data points listed.

    I can’t remember without looking at my notes.
    I seem to recall watching it show about 11.8 v. On the scanner .
    I was thinking it was system voltage ie feeding the injectors which are at 13.8v
    When alternator is running.
    Ie it didn,t match battery or alternator voltages.

    Hth
    Mitch
    '95 Z28 M6 -Just the odd mod.
    '80 350 A3 C3 Corvette - recent addition.

  5. #5
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,469
    It will be really cool to trace these channels to the connectors pins and mark the software RAM address the values of them are stored.
    There is also alot of unused pins that can be mapped that way. It is a little hack job, but that way alot of free channels can be discovered for future use.

    Do you have a detailed pictures of the PCM board. We can compare it with the obd1 pcm and see if there is any difference.

    Now it`s time to map the eside channels. If they follow the obd1 pattern there will be 8 of them.

  6. #6
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    PCBs

    IMG_1650.jpg
    IMG_1650.jpg
    Attached Images Attached Images

  7. #7
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    I have been working my way through the '97 Camaro code and making good progress. It is a bit daunting to look at how much still remains, but I keep plugging away at it.

    It has been suggested to me that the Optispark is the heart of the system and that I won't make much progress without a good understanding of it. I thought it would be easy to simulate the physical unit for use on the bench and I set out make one. I had an old board that we used way back when 68HC11 was newish. I ran into any number of troubles with this idea. I will keep the whining to a minimum BUT first the reset chip had a watchdog that needed s/w service. Hard to do when you want to use bootstrap mode. This particular board had three interconnected 68hc11 chips all running in single chip mode. The interaction between all this caused hours of delight OK OK whine mode off

    I have completed the program and will describe the result along with what assumptions I have made. The first assumption I made is that the windows in the optical disk represent logic 1. That is when the light shines through the output is set. I have not yet connected it to my bench ECM. This is the first thing I need to confirm.

    Second, from pictures of the optical disk I see that the "High resolution" will transition low to high in the center of the "Low resolution". This is the relationship I set up on my Opti-Simulator.

    Here are the waveforms...
    IMG_1662.jpg
    This screen shot is the low resolution and high resolution. You can't make out the timing of the high because there are way too many pulses

    IMG_1665.jpg
    This shot is the low and high resoluton for one of four cylinders 1, 4, 6, 7

    IMG_1655.jpg
    This shot is of cyl 8

    IMG_1666.jpg
    This shot is of cyl 3

    IMG_1667.jpg
    This shot is of cyl 5

    IMG_1668.jpg
    This shot is of cyl 2

    If you have any interest in the code, pm me.

    I needed and wrote a console app to convert S-records to the binary that bootstrap mode needs (leading sync for auto baud) I have that also if there is any interest.

    I look forward to following this up with details of the ECM code it drives.

    If there are any errors above, please let me know!

    -Tom










    The software I wrote is crude. The maximum rate could be increased from 4000 with a little code clean up. This is intended to give me a good start. I will post some results

  8. #8
    Fuel Injected! Terminal_Crazy's Avatar
    Join Date
    Oct 2015
    Location
    Lancashire England
    Posts
    410
    Hi
    Is this part correct?
    from pictures of the optical disk I see that the "High resolution" will transition low to high in the center of the "Low resolution".
    Should that be the other way around? The low res pulse transitions in the center of the high res.

    I still don’t get why they’d go to the trouble of ID’ing only 4 out of 8 cylinders when you could ID all 8.


    Mitch
    '95 Z28 M6 -Just the odd mod.
    '80 350 A3 C3 Corvette - recent addition.

  9. #9
    LT1 specialist steveo's Avatar
    Join Date
    Aug 2013
    Posts
    4,002
    keep at it! nobody in public has really tried to understand this ECM, it's been restricted to commercial developers.

    since $EE is so well understood, you should get ahold of kur4o's disassembly of $EE since there is no way they don't share some code or methodology, there's no way they did a ground up rewrite.. all of the attached sensors and devices are identical and they use very similar internal hardware. no need to reinvent the wheel and figure it all out from scratch. when i was working with $EE i used some other P66 disassemblies and got lots of clues to fill in the gaps, helped a lot

  10. #10
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Hi Terminal_Crazy,

    Have a close look at the optical wheel...
    OWheel2.jpg

    Looking at the wheel from the front it turns clockwise. If the slot represents a "1" then the opening of hi res is rising centered on the low res. A designer might use the high res to clock in the low. I believe the leading edge of the low indicates TDC for one of the cylinders. The machine then measures the duration to determine which. Once in sync it is just about keeping count. Why four and not eight? Perhaps it had to do with GMs design goals in terms of how much of a revolution takes place before sync is determined. I am sure that start up is complex looking forward to figure it out if I can.

    Does anyone know if the wheel is removed from the optical path... do you measure a 1 or a 0 on high and low resolution inputs???

    -Tom

  11. #11
    Fuel Injected! Terminal_Crazy's Avatar
    Join Date
    Oct 2015
    Location
    Lancashire England
    Posts
    410
    Sorry, I think its semantics on the wording.
    The outer high res transitions from slot to disk (1 to 0 )first as it’s rotating, then the inner low res transitions to a slot ( 0 to 1)

    That also presumes the 2 sensors are radially aligned ?
    I would imagine they are.
    Mitch
    '95 Z28 M6 -Just the odd mod.
    '80 350 A3 C3 Corvette - recent addition.

  12. #12
    Fuel Injected! Terminal_Crazy's Avatar
    Join Date
    Oct 2015
    Location
    Lancashire England
    Posts
    410
    I think if you count the high res pulses while the low res is hi will tell you which cylinder as the other 4 low res slots are differing widths.
    There was a post fairly recently back (Gary Doug i think) posted some images. It was regarding cylinder ID.

    Mitch
    '95 Z28 M6 -Just the odd mod.
    '80 350 A3 C3 Corvette - recent addition.

  13. #13
    Fuel Injected! Terminal_Crazy's Avatar
    Join Date
    Oct 2015
    Location
    Lancashire England
    Posts
    410
    I think if you count the high res pulses while the low res is hi will tell you which cylinder as the other 4 low res slots are differing widths.
    There was a post fairly recently back (Gary Doug i think) posted some images. It was regarding cylinder ID.

    Mitch
    '95 Z28 M6 -Just the odd mod.
    '80 350 A3 C3 Corvette - recent addition.

  14. #14
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,469
    Common sense is when the light goes through the slot it will be 5volts on the line or 1 in digital.
    In the code there is high res counter that goes to 720, so one slot[no matter full or empty] should represent 1 degree. Or the PCM can count the raising and falling edges of the slot and you got 2 degrees from one slot. Low resolution is used for trigger when the high res counter to start. The leading edges of low res is used to calculate the time the engine rotate 90* and from there it calculates the rpm.
    I think low res is used for rpm calculations based on time and as a trigger for cyl identification based on high res counts between falling and raising edges of the low res slots.

    High res is used for precise spark timing and sequencial injectors firing. A scope test confirmed that only the first 4 pulses at cranking are not sequential. After that is full blown sequential injection. The great starting times of the lt1 engine is based on ultra precise spark delivery at all conditions, and that is possible of the 720 degree opti wheel. No spark scatering at all since it is not time based but a degree based ignition.

  15. #15
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Hi Kur4o!
    Re " light goes through the slot it will be 5volts on the line or 1 in digital" : have you measured this ? I ask because sometimes the setup is just a photo-transistor. Light hitting it biases it on or low... I will find this out but a confirmation would save me time.

    I find talking about degrees relating to Opti a bit confusing. Wheel has 360 slots...cam runs half speed... each slot is 2 degrees crank (yes??). Counter running to 720 makes sense if both rising edge and falling edge are counted (???)
    I have disassembled and commented the calculations for rpm also. Have not yet traced the path between the E and T sides through the SPI. Interesting that the SPI between sides transfers bi-directionally at each transfer.

    I have updates for the analog info posted earlier which I will post a bit later, a few more things to confirm.

    Conformal coating on the boards is a PIA.

    Un-related question for all: There are three driver chips used which I believe are "low side drivers". They are in 23 pin SIP packages, lead formed with an alternating offset. Does anyone have a "bricked" ECM that could lift the part off the heat spreader and see if we can identify the part? It looks to me like this is an octal part driven through an SPI interface. If we can find a data sheet for the part it will be much easier to see the format of the drive and error info transfer.

    -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
  •