Automotive application stamp selection
schwarz633
Posts: 2
I have a 25+ year old BMW that uses an dedicated electronic module to control the idle speed. I'd like to develop a digital controller to replace it. Obviously, the module would need to be powered by the car battery (~15V max). It would need:
(1) counter input (500Hz max from a magnetic pickup on flywheel)
(4) 12V digital inputs (coolant temperature, air temperature, A/C on, throttle@idle)
(1) analog input (coolant temperature from RTD)
(1) ~150Hz PWM output (to Idle Control Valve amplifier, ICV requires ~2A)
The task is to monitor the various inputs and control the output to maintain a preset idle speed.
Any suggestions on a BASIC stamp that would suitable for this task?
Thanks.
(1) counter input (500Hz max from a magnetic pickup on flywheel)
(4) 12V digital inputs (coolant temperature, air temperature, A/C on, throttle@idle)
(1) analog input (coolant temperature from RTD)
(1) ~150Hz PWM output (to Idle Control Valve amplifier, ICV requires ~2A)
The task is to monitor the various inputs and control the output to maintain a preset idle speed.
Any suggestions on a BASIC stamp that would suitable for this task?
Thanks.
Comments
I would use a Parallax Propeller which has 8 different processors. Then one processor could be assigned to each task.
Also if you have a stepper motor to adjust idle, that would take a long time (for computers) to move. With the stamp you could assign one separate processor (cog) for this.
As to automotive electrical noise, the following has quite a bit of discussion about that...
http://magnecor.com/magnecor1/truth.htm
Here someone had his engine die when he keyed his CB...
http://forums.nasioc.com/forums/showthread.php?t=303899
The ICV is not a stepper. I don't know how it works internally, but it's normally fully open (spring?) and closes as you increase the voltage to it. It controls the amount of air flow that bypasses the throttle body when it's closed (idle position).
I imagine the program as a loop that would:
sample input frequency
evaluate digital and analog inputs
adjust output
Something I always recommend on automotive projects; you don't need to play by their rules! Often, there is a simpler way. In your case, obviously there is no need to check sensors 10 times a second. Common errors in calculating rpm (COUNT 1000, rpm) can waste program execution, and lead to error greater than +/- 60 rpm. You can eliminate error in rpm by calculating time in milliseconds with PULSIN, for 1 revolution, and then have your program do something else.
Depending on how you need to handle your PWM, you may be able to take care of it with some clever programming, maybe just a command; maybe it should be farmed out to a 555 timer or some other IC, controlled by the basic stamp. If the PWM is to feed an injector, I doubt that it needs more than a pin controlling a fet to turn the injector on and off. The position of the crankshaft or any cylinder should not mater.