peak and hold fuel injector driver


Closed Thread
Results 1 to 17 of 17

Hybrid View

  1. #1
    Join Date
    Nov 2007
    Location
    West Covina, CA
    Posts
    219


    Did you find this post helpful? Yes | No

    Default Same project

    Hey Mark,
    There's a great satisfaction in making your own device. One that suits your needs when what's available just won't cut it. And even when there is one out there, the cost can sometimes prohibit just playing around with for the sake of curiosity. Besides, how else will we learn to improve our craft if we are just consumers? Anyways...
    I ran into the same problems on two different projects that I hope might help a little.
    1. I needed to monitor and control a four cylinder which would have overlapping inputs at 14K RPM. Since this meant having to treat each input individually, I just used four PIC's and all programmed at the same time. I know there's a better way of doing it but I'm just learning and using Darrel's Instant Interrupt technique is just way over my head for now.
    2. A simple PWM driver. Here's a small program I use to drive a 24V/24A relay bank. Just replace PAUSE with PAUSES for micro second increments instead. And PIC type of course.
    Code:
    '****************************************************************
    '*  Name    : HEXFET PWM driver Rev2.BAS                        *
    
    '*  Date    : 8/18/2008                                         *
    '*  Version : 2.0                                               *
    '*  Notes   : This routine uses the PIC16F688 to monitor all of *
    '"          : PORTA inputs and will mirror PWM PORTC outputs by *
    '"          : a 5ms Power Pulse followed with a 500Hz, 50%dt    *
    '"          : pulse train. This circuit was required to drive a *
    '"          : solenoid with 24V at 24A without over heating the *
    '"          : HEXFET device.                                    *
    '****************************************************************
    @ DEVICE PIC16F688, INTRC_OSC_NOCLKOUT
    @ DEVICE PIC16F688, WDT_ON
    @ DEVICE PIC16F688, PROTECT_OFF
    @ DEVICE PIC16F688, MCLR_OFF
    define OSC 8
    OSCCON = %01110000      ' Oscillator set to 8MHz, bits 6-4
    CMCON0 = 7		        ' Analog comparators off 
    TRISA = %00111111       ' Sets all PORTA pins as inputs
    TRISC = %00000000       ' Sets first 4 PORTC as inputs and 2 as outputs
    ADCON0 = 0              ' A/D turned OFF
    ANSEL = %00000000       ' All inputs made digital I/O
    
    PORTC = $0              ' Turn off all outputs
    Pause 100               ' Let's wait 100ms before starting
    
    ' This part of the routine will output the beginning of the pulse train 
    ' with a 5ms power pulse to be followed with the rest of the hold pulses.
    loop:
    IF PORTA = $0 then goto loop  ' Stay here when all inputs OFF 
        PORTC = PORTA             ' Mirror outputs (active HIGH inputs)
        PAUSE 5                   ' Pulse starts with 5ms Power Pulse
        PORTC = $0                ' Turn OFF outputs
        PAUSE 1                   ' Wait 1ms then continue with pulse train
    
    ' The rest of the pulse train here is 500Hz at 50%dt as long as the input
    ' remains active. It also monitors for a change at the inputs so that it
    ' will start over to include the new input with a Power Pulse too.
    While PORTA <> $0             ' Do routine as long as input active
        PORTC = PORTA             ' Mirror outputs (active HIGH inputs)
        Pause 1                   ' Keep outputs ON for 1ms 
        PORTC = $0                ' Turn OFF outputs
        PAUSE 1                   ' Keep outputs OFF for 1ms   
    WEND                          ' Input inactive, leave routine
    GOTO loop                     ' Start from beginning
    
    END
    If you haven't already, look into International Rectifier's list of N-CH HEXFETs, found at DigiKey, such as the IRFP4321 as an example. Just don't let the big capability numbers fool you. Look at the Maximum Safe Operating Area of its data sheet. This looks like 10A at DC but nearly 40A at 1ms pulses.
    Good luck...
    Louie

  2. #2
    Join Date
    Aug 2005
    Posts
    57


    Did you find this post helpful? Yes | No

    Default MegaSquirt Electronic Fuel Injector Project

    Here's a link that might be of interest,its not a pic but has schematics and components.
    http://www.bgsoflex.com/megasquirt.html

  3. #3


    Did you find this post helpful? Yes | No

    Default

    There are other mcu's that you can use to do the precision timing. An SX chip (50 MIPS) bit banging with an interrupt can be used in conjunction with a PIC UART to update and control the SX . I am sure you have timing position sensors, feed those into the SX to trigger the next set of pulses. I have a brushless 3-Phase motor made up of the above mentioned, my motor spins at 30,000 rpm (variable speed) using zero crossing comparators for feedback.


    Nick

  4. #4
    Join Date
    Oct 2008
    Posts
    8


    Did you find this post helpful? Yes | No

    Default same project

    Hi linkmtech
    Thanks for your info yeah that's just what i need. in my saturated driver i am using 60V 60AMP 60n06 n channel mosfet stp60nf06 man i have melted the winding in injectors with these mosfets when i had a problem with my driver it hung the injectors open and the mosfets didn't burn out they are real grunters!!!!!!!!

    Thank you will let you know how it will all goes

    Mark


    Quote Originally Posted by LinkMTech View Post
    Hey Mark,

    There's a great satisfaction in making your own device. One that suits your needs when what's available just won't cut it. And even when there is one out there, the cost can sometimes prohibit just playing around with for the sake of curiosity. Besides, how else will we learn to improve our craft if we are just consumers? Anyways...
    I ran into the same problems on two different projects that I hope might help a little.
    1. I needed to monitor and control a four cylinder which would have overlapping inputs at 14K RPM. Since this meant having to treat each input individually, I just used four PIC's and all programmed at the same time. I know there's a better way of doing it but I'm just learning and using Darrel's Instant Interrupt technique is just way over my head for now.
    2. A simple PWM driver. Here's a small program I use to drive a 24V/24A relay bank. Just replace PAUSE with PAUSES for micro second increments instead. And PIC type of course.
    Code:
    '****************************************************************
    '*  Name    : HEXFET PWM driver Rev2.BAS                        *
    
    '*  Date    : 8/18/2008                                         *
    '*  Version : 2.0                                               *
    '*  Notes   : This routine uses the PIC16F688 to monitor all of *
    '"          : PORTA inputs and will mirror PWM PORTC outputs by *
    '"          : a 5ms Power Pulse followed with a 500Hz, 50%dt    *
    '"          : pulse train. This circuit was required to drive a *
    '"          : solenoid with 24V at 24A without over heating the *
    '"          : HEXFET device.                                    *
    '****************************************************************
    @ DEVICE PIC16F688, INTRC_OSC_NOCLKOUT
    @ DEVICE PIC16F688, WDT_ON
    @ DEVICE PIC16F688, PROTECT_OFF
    @ DEVICE PIC16F688, MCLR_OFF
    define OSC 8
    OSCCON = %01110000      ' Oscillator set to 8MHz, bits 6-4
    CMCON0 = 7		        ' Analog comparators off 
    TRISA = %00111111       ' Sets all PORTA pins as inputs
    TRISC = %00000000       ' Sets first 4 PORTC as inputs and 2 as outputs
    ADCON0 = 0              ' A/D turned OFF
    ANSEL = %00000000       ' All inputs made digital I/O
    
    PORTC = $0              ' Turn off all outputs
    Pause 100               ' Let's wait 100ms before starting
    
    ' This part of the routine will output the beginning of the pulse train 
    ' with a 5ms power pulse to be followed with the rest of the hold pulses.
    loop:
    IF PORTA = $0 then goto loop  ' Stay here when all inputs OFF 
        PORTC = PORTA             ' Mirror outputs (active HIGH inputs)
        PAUSE 5                   ' Pulse starts with 5ms Power Pulse
        PORTC = $0                ' Turn OFF outputs
        PAUSE 1                   ' Wait 1ms then continue with pulse train
    
    ' The rest of the pulse train here is 500Hz at 50%dt as long as the input
    ' remains active. It also monitors for a change at the inputs so that it
    ' will start over to include the new input with a Power Pulse too.
    While PORTA <> $0             ' Do routine as long as input active
        PORTC = PORTA             ' Mirror outputs (active HIGH inputs)
        Pause 1                   ' Keep outputs ON for 1ms 
        PORTC = $0                ' Turn OFF outputs
        PAUSE 1                   ' Keep outputs OFF for 1ms   
    WEND                          ' Input inactive, leave routine
    GOTO loop                     ' Start from beginning
    
    END
    If you haven't already, look into International Rectifier's list of N-CH HEXFETs, found at DigiKey, such as the IRFP4321 as an example. Just don't let the big capability numbers fool you. Look at the Maximum Safe Operating Area of its data sheet. This looks like 10A at DC but nearly 40A at 1ms pulses.
    Good luck...

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

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