Page 1 of 2 12 LastLast
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
    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

  2. #2
    Fuel Injected! Terminal_Crazy's Avatar
    Join Date
    Oct 2015
    Location
    Lancashire England
    Posts
    414
    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.

  3. #3
    LT1 specialist steveo's Avatar
    Join Date
    Aug 2013
    Posts
    4,055
    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

  4. #4
    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

  5. #5
    Fuel Injected! Terminal_Crazy's Avatar
    Join Date
    Oct 2015
    Location
    Lancashire England
    Posts
    414
    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.

  6. #6
    Fuel Injected! Terminal_Crazy's Avatar
    Join Date
    Oct 2015
    Location
    Lancashire England
    Posts
    414
    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.

  7. #7
    Fuel Injected! Terminal_Crazy's Avatar
    Join Date
    Oct 2015
    Location
    Lancashire England
    Posts
    414
    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.

  8. #8
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,477
    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.

  9. #9
    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

  10. #10
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    Some code used to read A/Ds in a round robin sequence...

    Code:
    ************************************************
    * READ A/D CONVERTERS 
    ************************************************
    4DEB  86 10       	LDAA   #$10            ; START A/D, PE0 - PE3  
    4DED  B7 10 30    	STAA   $1030           ; MULTI MODE
    4DF0  3A          	ABX                    ; REAL TIME DELAY
    4DF1  3D          	MUL                    ; OF 136 CYCLES
    4DF2  03          	FDIV                   ;
    4DF3  03          	FDIV                   ;
    4DF4  03          	FDIV                   ; 
    
    4DF5  FC 10 31    	LDD    $1031           ; READ ANALOG FROM PE0, PE1
    4DF8  B7 01 02    	STAA   $0102           ; AC PRESSURE
    4DFB  F7 01 03    	STAB   $0103           ; AN1 ??
    
    4DFE  FC 10 33    	LDD    $1033           ; READ ANALOG FROM PE2, PE3
    4E01  B7 01 04    	STAA   $0104           ; AN2 ??
    4E04  F7 01 05    	STAB   $0105           ; AN3 ??
    
    4E07  CE 10 02    	LDX    #$1002          ; MUX CONTROL, PORT G0-2
    4E0A  1D 00 07    	BCLR   $00,X,$07       ; CLEAR ANALOG SELECT BITS
    
    4E0D  B6 01 01    	LDAA   $0101           ; MODULO 8 COUNT
    4E10  AA 00       	ORRA   $00,X           ; UPDATE PORT TO SELECT
    4E12  A7 00       	STAA   $00,X           ; ANALOG INPUTS INTO A/D
    
    4E14  86 14       	LDAA   #$14            ; START A/D, PE4 - PE7 
    4E16  B7 10 30    	STAA   $1030           ; MULTI MODE
    4E19  3A          	ABX                    ; REAL TIME DELAY
    4E1A  3D          	MUL                    ; OF 136 CYCLES
    4E1B  03          	FDIV                   ;
    4E1C  03          	FDIV                   ;
    4E1D  03          	FDIV                   ; 
    
    4E1E  B6 10 31    	LDAA   $1031           ; READ ANALOG FROM PE4
    4E21  B7 01 06    	STAA   $0106           ; ONE OF EIGHT INPUTS
    
    4E24  F6 01 01    	LDAB   $0101           ; 
    4E27  CE 01 07    	LDX    #$0107          ; 
    4E2A  3A          	ABX                    ; ADD OFFSET
    
    4E2B  B6 10 32    	LDAA   $1032           ; READ ANALOG FROM PE5
    4E2E  A7 00       	STAA   $00,X           ; SAVE LOCATON W OFFSET
    
    
    4E30  CE 01 0F    	LDX    #$010F          ; MUX 1 BASE ADDRESS
    4E33  3A          	ABX                    ; ADD OFFSET
    
    4E34  B6 10 33    	LDAA   $1033           ; READ ANALOG FROM PE6
    4E37  A7 00       	STAA   $00,X           ; SAVE
    
    4E39  CE 01 17    	LDX    #$0117          ; MUX 2 BASE ADDRESS
    4E3C  3A          	ABX                    ; ADD OFFSET
    
    4E3D  B6 10 34    	LDAA   $1034           ; READ ANALOG FROM PE7
    4E40  A7 00       	STAA   $00,X           ; IGNITION VOLTAGE
    
    * $0101 IS A MODULO 8 COUNTER (0-7) INCREMENTED EACH TIME THIS IS CALLED
    4E42  B6 01 01    	LDAA   $0101           ; READ CURRENT COUNT
    4E45  4C          	INCA                   ; INCREMENT COUNT
    4E46  81 08       	CMPA   #$08            ; TEST FOR OVER 
    4E48  25 01       	BCS    $4E4B           ; BRANCH IF NOT OVER
    
    4E4A  4F          	CLRA                   ; WRAP COUNT
    4E4B  B7 01 01    	STAA   $0101           ; SAVE CURRENT COUNT

  11. #11
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    53
    Posts
    883
    Quote Originally Posted by Tom H View Post
    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???
    I can tell you with certainty that when the optical beam is broken the optotransistor outputs are logic low and when not broken high. It's been a while but I vaguely recall testing with a LED logic probe to determine in which state they are actively conducting (if they were PNP or NPN type transistors). You may find something useful in my rantings from here. I'll see if I can find anything there or in my notes and report back.

    Edit: To update - I don't think I tested the opti outputs for transistor type after all. But I can do that this evening with my test opti that's missing all the high voltage parts.

    Quote Originally Posted by Tom H View Post
    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??).
    It's actually quite simple. The way I built the logic for the diy-ltcc stuff was to count every state change (edit for clarification: either a rising edge or falling edge) on the high res ring as 1 crankshaft degree. This gives you 720 pulses per camshaft revolution. The low res side sees a rising edge signal on each TDC. By counting the degrees while the low res is either high or low one can determine the engine's position within a maximum of 2 low res rising edge triggers (180 crankshaft degrees plus width of indexed low res slot - maximum 46 degrees).

  12. #12
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    53
    Posts
    883
    Interesting.

    The J520 pickup has two open collector outputs - n-channel so they source / conduct current when low.

    But...

    The low res pin (farthest from the ground pin) conducts when the beam is broken.

    The high res pin (adjacent to low res pin) conducts when the beam is not broken. Since I'm 100% positive the ecu doesn't care about the "polarity" of the high-res signal it wouldn't matter. But you learn something new every day.

    This means what I said in the previous post "with certainty" only applies to the low res signal. :-)

  13. #13
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    53
    Posts
    883
    Quote Originally Posted by Terminal_Crazy View Post
    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.
    Bear in mind that with a batch injection start routine and a distributor, what I'm about to say is almost pointless but...

    Because even at cranking speeds around 150 RPM, the difference between firing on the first or second compression stroke after the bendix engages the flywheel is almost imperceptible.

    And...

    Because after the ecu has determined rotational position all it needs to do is follow the firing sequence on the low-res rising edge signal to know where it's at until there's a stall condition.

    To further expound on the topic, I'm starting to think the gen 2 LT-1 fires too soon. One of my first modifications to the diy-ltcc may be a surrogate low-res signal to prevent the ecu from firing the injectors (and spark) until oil pressure has been built-up.

  14. #14
    Fuel Injected!
    Join Date
    Jan 2019
    Location
    Canada
    Posts
    477
    First, thanks to everyone for your help with my project. I do appreciate your information!

    Another request of you all... Is the pinout of the 30 position ribbon cable between Eside and Tside known? I have traced perhaps half of the lines but it is an undertaking to find the rest. I am somewhat confused by the way that the two boards reference ground. I had expected ground to be passed between the boards on the cable. I can find no grounding. My best guess is that this is done through the case. If true, an important addition to my bench test will be to re-connect grounds. I notice designed in skips in the conformal coating. My best guess is that this is where the grounding is done through the case. Now I wish I didn't throw out the doner's case. If anyone knows about this I am interested in any details.

    If not already known & out there, I plan to post the ribbon pinout once all the bits are found.

    -Tom

  15. #15
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,477
    There is a built in ground bridge on the pcm insulator[which you dumped I guess] The contact point is a big circle at the back of the boards, near the centre.

    Just put separate grounds on the connetors and you will be good for testing. I think there are some separate grounds on the boards, but you will have to measure it.

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
  •