SW20ダイレクトイグニッション化計画 2期

ダイレクトイグニッション化して3年半ほど運用して来たが、イグニッションコイルの故障などで改めて調査する機会があったため、全気筒並列接続していた点火信号をそれぞれの気筒毎に分配する回路を取り付けてみることにしました。

動作概要

全信号波形

まずは、どういう信号がセンサーから出ているのか計測してみました。4気筒分のインジェクション信号、点火IGT、クランク角センサ(実際にはデスビの背面に設置されている)NE, G1, G2をまとめて計測した。
この結果から、1番気筒の上死点はG1を利用すれば良さそうだ。

原理的には、点火信号をクロックとして、シフトレジスタで1クロックずつずれた立ち上がり信号をつくり、G1でリセットすればよい筈です。第1気筒の点火信号は上死点よりも早く出るため、リセットは1番目と2番目の点火信号の間で発生しますよって、#2,#3,#4,#1という出力順序になります。

ちなみに、ここで言う出力順序は気筒番号ではありません。3S-Gでは、1-3-4-2の点火順となる為、信号線と気筒の対応は次のようになります。

Signal#1#2#3#4
Cylinder2134

LTspice回路図 LTspice波形

シュミレーターで原理を試したのがこちら。
実際には単体のフリップフロップではなく74HC164を使用して、1チップ化する事ができます。立ち上がりで点火されるため、パルス幅はこのままでも動作するかと思いましたが、実際に試したところ動作しませんでした。立ち上がりエッジを74HC123を用いた、単安定マルチバイブレーター(モノマルチ)に入力して、4ms程度のパルスが出力されるようにしました。
TLC555を使用しても同様の回路を作成できます。

モノマルチについて興味がある方はこの辺が参考になります。

試作0号機

点火信号波形1

G1の立ち上がりでリセットが掛るようにして試したものがこちら。G1信号の波形は、トランジスタの出力(=27HC164のリセット入力)を表示している。IN[1-4]の信号は各ポートに分配された点火信号(気筒番号順ではない)だが、4番目の立ち上がりが、リセットの最中に入ってしまい出力されていないのがわかる。

リセットのタイミングを前後いずれかにずらす必要があります。回転数が上がると点火タイミングは早くなるので、リセットを後ろにずらせば、重なることは無いと考えられます。よって、G1の信号の立下り(マイナス電位の部分)をパルスとして取り出すことにしました。

手元にあった2SK192A(NchJFET)を用いる回路でも動作しましたが、敏感すぎてノイズを拾いやすかったため、より扱いやすい2SA1015を用いた回路に変更しました。

イグナイタの駆動には、念のため2SC1815によるバッファを設ています。

入力抵抗やカップリングコンデンサ、ローパスフィルタなどは思考錯誤的に定数を决めたので、回路図を残していません。後で基板を追加したため見た目も御粗末なことになっていますが、ここでの結果は1号機に引き継がれています。

G1信号の立ち下がりを拾う事により、#4の点火信号が正しく出るようになった事が確認できます。この段階で、エンジンの始動が問題無く行えることを確認しています。

試作1号機

0号機の結果をふまえ、プリント基板を起こしたものです。

74HC164のリセットは#4がHiにならないと実行されないように変更しました。これにより、G1にノイズなどが入っても、不用意にリセットされる事が無くなります。 また、IGTはシュミットトリガで受け、バッファに時定数を持たせバタつきを抑えています。

この段階で、イグナイタの電流が14mA程度である事がわかったので、トランジスタのバッファはリワークで取り外しました。また、74HC123をTOSHIBAからNXP製に変更したが、メーカーやファミリーによって時定数が違っており、時定数の見直しが必要となりました。

回路は、最終的なものになっています。

余談ですが、これくらいのピッチになってくると、感光基板でも綺麗に仕上るのは慣れないと難しくなってきますね。

試作2号機


結局、反転回路やモノマルチなどの追加で、4チップ程に増えてしまったので、1チップで済ませるべく、PIC 12C609を用いて設計し直したものです。部品点数の削減と安定化を主眼に置きました。

IGTはデジタル信号なのでそのまま入力、GPIOの変化で割込みを発生させ、立上り立ち下がりともに、該当の気筒へそのまま点火信号として出力させています。内部クロックの8MHzを使っていますのでロジックICより数十倍の遅延がありますが、μ秒オーダーの遅延は問題にならないでしょう。
G1信号はアナログ入力とし、内蔵のコンパレータで閾値を下回ると割込みを発生させます。G1には結構ノイズがのっていますが、コンパレーターにヒステリシスがありますし、割込みルーチンでwaitを設けてバタつきやノイズを取り除く事が可能です。
高回転時に耐圧を越える懸念があったので保護回路を設けていましたが、その心配は無さそうなので、カップリングコンデンサのみのシンプルな回路となっています。

電源電圧は、はじめ3.3Vとしてみましたが、出力にLEDを取り付けるため5Vに変更しています。このLEDは逆流防止とインジゲーターを兼ねます。故障の際の切り分けの為に取り付けましたが、必ずしも必要なものではありません。
イグナイタは1.5Vでも動作することを予め確認済です。

1号機の回路では、始動時は#4が出力されて、G1パルスが入るまでは正しい点火信号が出力されないため、始動性が若干悪くなると考えられます。
始動性の向上と、G1信号の障害の場合でもエンジンが止らないよう、G1信号が得られる迄の間、あるいは1周以上得られない場合は4気筒とも点火信号を出すようにしてあります。(実際にクランク角センサーが故障した場合は、コンピューターからIGTが出ないでしょうが。)
左図はエンジンが止りかけの状態を測定したものですが、回転が落ちてG1の電圧が-1.5V程度に下ると、コンパレーターの閾値を下回りグループ点火に切り替わっていることが確認できます。

閾値やwait timeは実測値をみて調整しようと思っていたのですが、特に必要ありませんでした。

最終的には、基板を焼いて部品もSMD化をしたいですが、DIPでも十分な気がしてきました。

プログラム、実装データ

DS PCB CADデータ
Microchip MPLAB X IDEプロジェクト