DC-CDI 89C2051

A great job from  Thomas Schattat from Germany.

 

Characteristics.

  • Adaptable to other single-cylinder bikes.
  • Tuning of the advance curve (255 points).
  • Software source available (.ASM).
  • 7.500RPM max
  • Compact & economic.
  • Don’t need a alternator.
  • Need a battery

Working.

Designed for a TT600R, this ignition produces itself the high voltage necessary to the load of the CDI capacitor (Capacitive Discharge Ignition). It doesn’t need a alternator.

Circuit MC34063
DC-DC converter control circuit” switch on/off the primary coil of the L1 transformer at 25KHz.

At the secondary of the L1 transformer, one can find the primary voltage multiplied by 10 then rectified by the B1 bridge. One get approximately 160Vcc which charges the C2 capacitor.
The energy in the spark is E=0.5 * C * U*U (joules,farad,volts)

Example:
At 12.000 rpm, the time available to charge a capacitor of 1uF is 5ms
To goes from 0 to 320volts in 5ms, it need:


E=0.5 * C * U*U
E=0.5 x 1 x 10-6 x 3202
E=0.5 x 1 x 10-6 x 102400
E=0.05 joules

0.05J for 5ms => Then for 1 second (1000ms):
1000/5 x 0.05 = 10 joules
To convert in Watt, 1 joule = 1 Ws (watt second) so 1joule/1second = 1 watt
E=10 watts.

The positive shape of the pickup signal is shorted by D12 diode.
Only the negative part of the signal is used. The dividing bridge R16 + R18 fixes the potential at AIN0 entry to 2.9volts.
D9 and D10 protects the entry from over-voltage.

The negative pulse is detected by the processor, which calculates the necessary delay then provide a zero volt pulse to Q1 transistor.
The transistor than become ON and blocks the inverter circuit MC34063 so that it does not produce any more high tension and trigger at the same time T2 thyristor.
The thyristor discharges the charged capacitor C2 in the ignition coil.
The coil amplifies this tension by approximately 100, and provides 20.000volts to the spark plug which generates a spark.

 

Functions.

RPM Limitation:
Over 8000 RPM, the ignition is switch off (line 54)
Under 588 RPM, the ignition is switch off (line 56)

Advance calculation:
Between the maximum and the minimum RPM, the ATMEL measure the duration
between two pick up pulses in 400us units (four hundred microseconds)
to deduce the speed engine in RPM.

According to the speed, the processor calculate the position
in the map. (line 59)

At this position of the map (a 256 values table, lines 105 to
116) the ATMEL found a delay value.

Then the ATMEL is waiting during this delay [in 100us units
(hundred microseconds)].

At the end of the delay, a 400us duration pulse is sent to the
thyristor.(line 90)

Duration of the spark:
The duration of the spark cannot be adjust on a CDI, it depend of the capacitor value and the coil value. After all we can adjust the duration of the pulse that trigger the thyristor.
This pulse duration can be change line 85, but without impact on the spark duration.

Modification:
You can change directly the values from the table (lines 105 to 116)

And don’t forget:
The timing delays in the assembler program are based on a pickup coil mounted about 58° before highest piston position, different bikes may have different positions here!!

 

Programming.

Assembling the .ASM file in a .HEX file with a assembler:
IE:

 

Download

Schematic Schematic Eagle v4.11 Composants
Schematic.PDF Schematic.SCH liste.txt

 

PCB Circuit imprimé.PNG Eagle V4.11
Cuivre & composants.PDF Cuivre & composants.BRD

 

Software Source Excel
cdi8.ZIP mapXLSB10.XLS

Compiled with http://www.batronix.com/
You can remove the line “INCLUDE 89C2051.mc” if your compiler doesn’t need it but make sure that the ports I used are known by the assembler, otherwise you’ll get a different error.
Also the syntax may not completely be accepted by your compiler and you may have to tweak a bit.

Transformer.

L1: naked transformer available at Conrad Electronics

order #:51 66 43
Primary coil : 25 turns 0.5mm wire
secondary coil: 160 to 180 turns 0,15mm wire

Important : Leave a little air-gap between the 2 metal parts by slipping a bit of paper for example.

Another How-To build the transformer.

Videos.

– This ignition on a BMW F650 Enduro:

18 Comments on "DC-CDI 89C2051"

  1. Hi all.
    It’s a very simple design I will try to build.
    I have done a search in Conrad electronics for the transformer parts and I can’t find it with this part number. Please, could you please send the links?

    Regards

  2. Hi guys,
    Can you help me? This CDI fitted on my own Gilera Rc 600 electric starter 12V (1989)?
    My motorbike (4 strokes, one cylinder)had an DC-CDI Denso.
    Factory advance values are: 7° a 1200rpm – 30° at 4000rpm (one output for low rpm and one for high rpm)
    Thanks

    • Hi,
      It should probably work using the high rpm output. But it depend on how is the pickup signal (tension, polarity) and if he is referred to ground…
      In some cases, it can need a input interface.

  3. hola me podriais alludar con la programacion del AT89C2051?
    gracias un saludo

  4. hi 2 questions

    1st, will a ATMega328 chip as used in the Ardino platform work with the code?
    for use on twin cylinder machine with 2 pick-ups (one for each cylinder) how would the code be adapted to deal with 2 channels? im also considering instead of the capacitor system maby use a transistor (something like DIP132 Bosch coil driver) to drive a DC coil

    • Hi,
      – No it’s not the same code between this 89C2051 and the ATMega that power the Arduino
      – it’s must be entirely rewrite! Or you may use 2 separate cdi, one for each cylinder.
      – Then it will no more be a DC-CDI but a TCI meaning the electronic AND the software are differents!

  5. Hello friends, I am looking for help from you. I can not handle HEX file for TT600R if any of you has a working I will be very grateful to send it to me !!

  6. Hello,
    I need DC CDI without any delay or advance (controlled by external electronic unit).
    How can i use this schematic to build it without 89C2051?

    • Hello,
      The “external unit” must be able to drive the SCR and put the DC converter off during the spark.
      It could be connected to R1 and replace the ATMEL processor.

      • Hi,
        I have ordered EFI from: https://world.taobao.com/item/36019128363.htm
        But without CDI unit.
        This CDI must be driven by standard pickup signal.
        I’m not an electronics, but i can buy parts in local store and solder it.
        Could You draw schematic for me?

        • Hi,
          The link is in Chinese and I don’t read it…!
          I suppose EFI stands for Electronic Fuel Injection
          There is nothing common between EFI and CDI! I mean some “black boxes” can drive both CDI (inside the bbox) and EFI but mine are JUST a CDI and cannot drive a EFI.
          Sorry I really don’t understand what you are trying to connect…
          It’s impossible to draw a schematic of smth I don’t know and I don’t understand.

          • Thierry,
            All i need is a standard analogue DC CDI module without any advance.
            This Electronic Fuel Injection system controls advance by generating standard pickup signal to DC CDI box (with calculated delay in Engine Control Unit).
            I know that i can buy the cheapest DC CDI for GY6 but i didn’t know if there is any advance (even 2 steps) in this modules.
            Maybe now You can understand me?

            PS.
            I’m from Poland in Europe.
            I don’t understand Chinese to
            I’m using google translate.

          • Andrew: With this explanation first I would have understand better…
            Depending on the polarity of the “standard pickup signal” given by the EFI, you can use something like this wiring:
            https://transmic.net/89C2051/only_DC.jpg

  7. Thank You Thierry, i will try it.
    One more thing, can i replace D3:BA189 with something else (i couldn’t get it)?

  8. Hi Thierry,
    do you have scheme and asm file for 4 cylinder’s CDI? it use total 2 coils ( one coil for two spark plugs). from the manual it has ignition timing 13* BTDC below 1500 +- 150 r/mins and 35* BTDC above 2350 +- 150 r/mins.

    • Multi-cylinders:

      If the sparks distribution is mechanical with the use of an Delco distributor
      it’s the same as a single cylinder/2 strokes.
      =>my CDI should works

      but if there is distributorless with multiples coils (ie: 4 coils for 4 spark plugs, 2 coils for 4 spark plugs) the CDI must drive each coil at the right moment but my CDI cannot, there are just able to drive only one coil (or 2 coils in parallel).
      =>my CDI won’t works

      bi-cylinders:

      my CDI works on BMW as they are opposed twin/4 strokes, and needs only one spark every 360°, the very same as a single cylinder/2 strokes.
      HT coil is double, so it generates at the same time 2 sparks, and one is wasted as the other cylinder is on its exhaust stroke.
      =>my CDI should works

      For bi that are not opposed, => my CDI won’t work

      mono-cylinder:

      If there is no separate pickup and the timing is done by using the High Voltage of the alternator
      =>my CDI won’t works

      If there is a separate pickup providing at least 3 volts
      =>my CDI should works
      but you eventually have to reverse the signal to get a positive signal first in order to have a good timing.

Leave a comment

Your email address will not be published.


*



6 + 1 =