RE: New CDI - opensource project JMJ and Bigboat
Dead time injection is not needed when a push-pull system inimplemented using a transformer with a center tap, only when half orfull bridges are used, to prevent a shoot-trough.
The square wave voltage isn't really a problem, because transformersare inductive, and therefore the current can't follow the square wavepattern; instead, the current will be more like a triangle shape.Ofcourse, driving the transformer with sine waves is more efficient. Itis possible to generate a sine wave using PWM hardware, but then thefrequency would be much lower, and thus a larger and heaviertransformer would be needed. This is ofcourse not what we want. A verysmall, light transformer needs a very high frequency input.
The problem with the current designs, is that the software has toconstantly check the sensor input for the pulse. This means the timingis rather inaccurate; at, say, 10krpm, the input needs to be checked at120kHz to achieve 1 degrees accuracy.
With the input capture hardware, an accuracy of 3.75 thousands of adegree is possible, and far less CPU intensive. Also, measuring theinterval between the pulses, which is needed to determine the speed, isfar easier.
I'll look into the schematics to find out if it is possible to use theexisting board with a few minor patches. If not, a different, lessaccurate and less flexible implementation of the software would beneeded to use the board.
The placement of the sensor (or, more accurately, the place of therising edge of the sensor respective to the TDC position) is a somewhatcomplicated matter. If the input capture function cannot be used, itwould be easier if the rising edge is outside the range where theignition should take place. On the other hand, if the rising edgeoccures at the exact moment the ignition should fire at low speed,starting will be easier. This is for a capacitive ignition system, foran inductive ignition, it is again different.
How do you start the engine? Do you rotate it by hand, do you use astarting cord, or something like a power drill? Would it be a problemif the engine would need to be rotated a few times (about 5 turns) at aconstant speed before the ignition start firing? This would be neededto get a reasonably accurate speed measurement.
On the matter of capacitive vs. inductive ignition systems: I'm notsure if the coil for an inductive system needs to be bigger and heavierthan for an capacitive system. With the inductive kind, the capacitorand transformer are not needed. Also, an inductive system is basicallya current source; the voltage on the secondairy side will rise untilthe current can flow, either through the spark plug, or through thesemiconductors on the primairy side (which is very bad). A capacitivesystem, om the other hand, is a voltage source; the secondairy side ofthe coil will deliver a voltage, which may or may not be sufficient tojump the spark gap.
EDIT:by the way, the transformer setup that i've seen in the designs, is not a flyback, it's just a blindly driven push-pull circuit. To get optimal efficiency. it needs to be carefully tuned.
What kind of electronic equipment do you have?Ithink Ican't assume all of you to have oscilloscopes and compilers and programmers for the microcontroller. How do you expect to build and test these things? Do you expect pre-programmed controllers from fellow builders? I'm thinking about using a bootloader, so that the software can be updated without a special programmer, using a serial port.
EDIT2: I do not mean to offend the previous programmer, but the existing code is, in my opinion, broken beyond repair. I won't be using that code, but write the new code from scratch.
I write in C, so learning PICBasic will not really help you understanding my code, or enable you to make educated changes. PICBasic is not portable and, in my opinion, very inflexible, and unsuitable for any kind of serious development.
I'm not quite sure about the ignition advance option; we could use tables, and either choose the closest entry, or interpolate between the entries, or use a formula with some variables that can be adjusted. Any thoughts?