View Single Post
Old 08-31-2004, 12:17 PM   #154
noppie7
apriliaforum newb
 
Join Date: Apr 2004
Posts: 11
This was send to me a time ago by a fellow RS rider. Author and adress onknown:

Firstly the CDI:
I removed the plastic casing, dumped the internal black 'blob' in strong solvent and waited for the potting compound to dissolve/ fall off. Once done I tested the circuit found on the board. The CDI is basically similar to those found on high performance racing cars employing high voltage systems, albeit not as complicated. It has a DC-to-DC converter, which converts the +12v from the bike up to 175v (measured on my bike). This high voltage is 'stored' in one of the two onboard capacitors. When the SAPC fires the ignition the stored charge in the relative capacitor is discharged through the coil where it is amplified to an even higher voltage causing a strong spark across the spark plug cap. (Hence Capacitive Discharge Ignition - CDI).

When disassembling the Kit version of the CDI is was almost identical in many respects. Some higher rated components were added and the voltage generated from the DC-to-DC converter was in the region of 220v. Therefore the conclusion that I came to was that the KIT version of the CDI allowed for a much higher voltage discharge across the spark plug. Whether any improvement in the bike’s performance would be noted through simply changing the CDI is any area that I have no knowledge of, so cannot comment. It seemed to make no real difference to my bike.


Secondly the SAPC unit:
All the SAPC units that I examined, whether 'standard' or 'KIT', utilised the same components. In other words, they were identical. I therefore concurred with others who were doing the same as me at the time that a single SAPC controller board was made and thereafter programmed for a specific function/bike.

The SAPC units have an H-bridge derived from two power transistors, which is pulsed by the microprocessor. Its function is to rotate the power valve servo to open and close the power valves via the attached cable mechanism.

An onboard voltage dropper / regulator is used to reduce the +12v to the +5v required by the micro. There is also an active filtering network used to 'pre-process' the signals from the pickup coils and the throttle angle sensor. When these have been processed they are passed to the micro where the voltage value is converted via an onboard analogue-to-digital converter.

The micro controls the CDI by pulsing the left, or right, cylinder firing line at the calculated timing point. The CDI then discharges the capacitive charge to the coil for that cylinder, and subsequently sparks the plug.

On certain models, M onwards if I remember correctly, the micro also controls the air valves fitted around the carbs.

I subsequently tried to find details about the Microprocessors (NEC) found on these boards but drew a blank. After much pestering by myself, NEC eventually confirmed that the Micro's were special items not available to buy retail. In a nutshell, Suzuki supply NEC with the software required to make the SAPC unit function (i.e. timing RPM charts etc.). When these Micro's are made in the factory by NEC the program was blown into the onboard ROM before the chip was sealed. There is no physical, or software way to extract this program from the onboard ROM. In addition there is no way to modify it either.

NEC do supply a pin for pin version of this MICRO to the general public to which is fitted a piggyback EPROM chip. The EPROM can be blown and then inserted on top of the micro. Now this would open the doorway to reprogramming, but NEC would not supply the development tools required to the public.

It was apparent that modifying the software was not possible. I even asked NEC for access to the software and was directed to Suzuki who refused to assist, although I can fully agree with there decision not to.




I went on to remove the micro from a SAPC unit and added a daughter board carrying a 68HC11 and components to allow onboard flashing. (An article on the Internet prompted me to do this). Although I could get it to fire I never managed to get it to run my bike...and that’s were it all ended. I sold my bike and moved onto other projects.

I could go on for hours about this area because I really wanted to make it work and I gathered a lot of information in doing so. However this thread is getting way to long so I'll stop here.

I hope the above stops those of you who wish to see this idea though from having to waste time figuring out how to reprogram the existing micro. If you require the pin-outs for the NEC micros, I have a reference manual supplied to me by NEC. It could be of help if you wish to replace the micro with another whilst using the existing SAPC board.

All of the things that you want the SAPC to do are done by a ignition on the newer TZ & RS 250's - they have programmable ignition curves and you can quite easily rig up exhaust gas temperature sensors & detonation sensors.

Maybe if you are all so keen to have this function on the RGV you should look at one of them. If you really wanted to the exhaust gas temp & detonation counter could be rigged up to the RGV without too much trouble - it just costs too much. I just have two different SAPC that can be used for different conditions - Aprilia ignition for more mid range & kit ignition for more top end.

RGV250 Programmable Ignition Module

Overview
Having owned a Suzuki RGV250 for sometime now, I am like most other people very impressed with the performance on offer. Understandably the engine used is a state of the art item. Inevitably the maximum power available is a compromise between mass production and reliability on Suzuki’s behalf. It is not my intention to enter into the realms of engine tuning, blue printing etc at this time. There are company’s which support this area of modification and who know what does and what does not work. The idea of developing a programmable ignition module came about when I started to look about at what was available in respect of bolt on mod’s etc for the average street going RGV. There are kit pipes and various electronic ignition packs available. What was frightening was the price asked for these ‘RACE’ ignition modules.

Examination and comparison between standard and race units showed that they all used the same basic circuit layout, utilizing an NEC 8 bit micro processor at its heart. Following consultation with NEC direct they stated that the onboard micro’s deployed in this application where factory programmed during the manufacturing phase to their customer requirements and that the program storage area was not externally accessible, this feature is known as MASKED ROM. This therefore makes it impossible to access any of the program or data information stored on the micro, as well as to modify it as required. Furthermore, and as was expected, they would not assist in supplying any of the program code or data. Had they done so then equivalent NEC 8 bit micro’s, which can be in-circuit programmed, could have been utilized.

This therefore meant the complete engineering of a replacement ignition module. I will concentrate on development for the RGV250L model, primarily due to the fact that I own one and can therefore readily check the hardware and software. Incidentally, the module can be adapted to other model types at a later date with very little effort.

Examination and understanding of standard Ignition Modules
The standard set up utilizes a Control Unit, commonly known as the Computer Unit, and the C.D.I. Unit (Capacitive Discharge Ignition). The C.D.I unit is basically a step up DC-to-DC converter, which takes the battery 12v and steps up the voltage to around 180v. This voltage is ‘stored’ in a capacitor. When the ignition fires, the voltage is transferred to the ignition coil, where it is amplified to many kilo volts and discharged across the spark plug gap.
The firing of the C.D.I. is under the control of the Control Unit. The control unit determines the point at which it fires, or ignition timing as it is commonly known, according to the prevailing engine revolutions and throttle opening.
The unit obtains information about engine revolutions from the crank angle sensors located adjacent to the rotor body, and spaced at 90 degree’s to each other. The sensors are effectively inductive magnet signal generators and are essentially a permanent magnet and pole piece attached to a stator. If you examine the rotor body you will find a raised edge, which passes directly beneath the sensors. This acts as a reluctor. As the rotor body spins around (such as when kick starting or engine running), this raised edge passes through the magnetic field of the sensor thereby generating an alternating waveform. This AC signal is passed on to the Control Unit for processing.

The following is based on the measurement of my existing set up as on my 1990 RGV250 ‘L’ model. The rotor wheel circumference was measured and found to be approximately 378 mm.
Dividing by the known 360-degree rotation value gives a measurement of 1.05mm per 1 degree. The raised lobe on the rotor was measured and found to be 32mm in length. Applying previous calculated figures shows that the lobe covers a 30-degree rotation of the rotor.
Having found TDC for a cylinder, and measuring back to start of lobe raised edge and calculating back using previous figures yielded a 50-degree start point. In other words the raised lobe occurs at 50 degrees before TDC for both cylinders, the left first, and then the right.

For the microprocessor to know at which point to fire the ignition, it requires to know engine revolutions per minute. As the crank sensors are specific to each cylinder it can either start a timer on the first pulse and stop the timer upon receipt of a second pulse. The returned value will be the number of clock pulses that occurred between passing of the lobe (ie one complete revolution). As the frequency (in MHz) of operation of the microprocessor is known, and therefore the duration of one clock pulse, it is a simply a case of mathematics to ascertain the time for the rotor to rotate through 360 degree. This will provide the RPM value.

Once the microprocessor knows the RPM, it can look up a table of ignition advance values and obtain the required firing point in degrees before TDC. As the raised edge of the lobe is fixed at 50 degree BTDC, if it wishes to fire at say 14 degree BTDC, the microprocessor performs the following action. Upon receipt of the 50 degree start pulse the micro obtains the number of clock pulses it must count down to obtain the required firing point for the given RPM. It then counts down the number of clock pulses from the start point and upon reaching zero fires the ignition, giving the correct ignition timing for that RPM. Sounds simple, but requires some careful development to obtain accuracy and therefore reliability & durability of engine.

Obviously the ignition module performs other functions such as controlling the power valve servo, as well as the air by pass valve(s) depending on year of manufacture etc. The power valve control utilizes a feed back loop consisting of a resistance track. A +5v voltage is applied across a resistor track within the servo. A wiper arm provides a feedback to the micro.
When the engine reaches the correct RPM at which to initiate half and subsequent full power valve operation, it supplies a +12v supply to the servo which causes it to rotate and therefore move the valves. The wiper arm moves in relation to this action and the varying voltage returned to the micro is used to indicate when half and full open condition applies. When the micro read’s the correct value to stops the servo moving any further. Similar action is made in the closing phases.

The air valves open in response to throttle and RPM conditions. The duration of ‘on’ and ‘off’ is again preset in look up tables held in micro memory.

The next stages look at ways of ‘cloning’ the above actions onto microprocessors systems. Once this is achieved, the settings can then be varied so as to optimize the ignition systems with the engine.

Standard Ignition Advance Timing settings
The following is specific to ‘L’ model.
The ‘L’ model has an engine idle of 1300 rpm. Up until 1700 rpm there is 14 degrees of advance applied to the engine. Beyond this point the advance is increased until 26 degrees is applied by 2700 rpom whereupon it levels off until 6000rpm. At this point it drops down to 11 degrees by 9500 rpm, whereupon it levels of until the rev limit is reached.
Therefore, to summise:
- 14 degree below 1700 rpm,
- 26 degree by 2700 rpm
- Flat @ 26 degree till 6000rpm
- Down to 11 degree at 9500 rpm
- Flat @ 11 degree above 9500 rpm

The above can be simulated by a microprocessor. Having examined what is available, I have decided to utilize the ATMEL AT89S8252 microcontroller around which to develop this system. This is based on cost, and the masses of available data, software and schematics presently available off the Internet. The required software will have to be able to calculate RPM and thereafter decide at which point to ‘fire’ the ignition. Looking at the above shows that at three points within the rev range the ignition advance required is constant ie 14 degrees, 26 degrees and 11 degrees. Between the RPM ranges of 1700 - 2700 and 6000 - 9500 the advance values change. The calculated values therefore only require the relevant scalar for each range to be applied if we initially take the view that the changes in advance is a straight line.

For example, taking the range 1700 - 2700 rpm. By subtracting these two values we get
2700 - 1700 = 1000 rpm

We know that the ignition advance changes from 14 degrees to 26 degrees over this range so therefore: 26 - 14 = 12 degrees.

The scalar would therefore be calculated as follows
12 / 1000 = 0.012.

This means that for every increase of RPM by 1 rpm, the ignition advance would increase by a factor of 0.012 degrees. So if we wished to calculate the ignition advance anywhere in this range we would apply the following:

Require ignition advance at 2110 rpm. Therefore 2110 - 1700 = 410 rpm
Multiply this value by the scalar gives
410 * 0.012 = 4.92 degrees

Now add this value to the start point of 14 degrees gives us
14 + 4.92 = 18.92 degrees

The resultant ignition advance required would therefore be 18.92 degrees.
The same would be applied to the later end of the range. The scalar for this is calculated as follows:
9500 - 6000 = 3500 rpm
26 - 11 = 15 degrees
15 / 3500 = 0.0042857
This scalar is therefore 0.0042857

We are quite fortunate with this set up in so much as the ignition advance is level across three broad bands of RPM, with only two changes at either end of the RPM range. Subsequently the look up tables of advance values will not require to be extensive.

Ignition Controller Overview
Under construction

Under Construction


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.295 / Virus Database: 159 - Release Date: 1/11/01

My comment: The airvalves of the carbs are regulated by PWM modulation with the ingoing signals of RPM and throttle position. At full throttle and rpms the carbs must be leaned off due to the nessecairy rich setting for mid rpm. (low airspeed)

The ignitioncurve is only RPM dependable.(one dimension, simple table lookup)

The easiest way to change the ignitioncurve is in my opinion to leave the SAPC in function and only by-pass the ignition signal to the CDI controlled by a small programmable micro such as a PIC. Concerning programming the curve: A lookup table is much faster and easier to change than calculations.

On the net are tons of programs for ignitions and CDI's for those who look well enough.
noppie7 is offline   Reply With Quote