ShibaさんのHP
Shiba-Web-Siteはこちら

このホームページは 自作CDIの掲示板に カキコされた物をまとめたHPです。
2007年1月12日(金) より 2月14日(水)

Shibaさん作 デジタルCDI for Serrow
HT-ROCKET + PIC バージョン


CDIのパンクから始まりました。
手持ちのセローは、どうやらCDIのパンクらしく
とりあえず、オリジナルHT-LOCKET回路で組んで
あっさりエンジンがかかりました。
(結構感動もんですねえ!

ただ、高回転域?が回りません。
(失火しているようです。おまけにタコメータ
がないので、何回転から〜という報告ができないのが残念)

タコメータがないんで
スピードメータとギヤのにらめっこをしました。
大体4000rpmぐらいから吹けあがりません。
(エンジンのかかりや低回転は抜群!なのに・・・)

でもって、ローターをみてみると
直径119mm パルサー部(凸部)の長さ64mmです。
凸部を角度に換算すると約61度


進角しすぎなのか?回路自体が作動していないのか?
それとも、4サイクルだからなのか・・・
いずれにせよ、やっと入り口にたどり着いたようです。

いっそのこと、ピックアップの極性を反転させるスイッチを
手元まで引っ張ってきて、回転が苦しくなったら第2波へ切り替え・・・
ってなことを本気で考えてました。
実験結果
回転が苦しくなったら第2波へ切り替え・・・×
回転が苦しくなったら第1波へ切り替え・・・
でした


セローの場合、第1波は、
BTDC9度(推定値:カタログ上のアイドリング点火時期=ローター凸部終わり)
+61度(ローター凸部全体角度)
=BTDC70度 ということで、削っちゃえ!ってことになりましたが
ただいま、オークションにてローター(フライホイール)物色中です。

これとは別に
http://www.sportdevices.com/ignition/ignition.htm
こんなところをにらめっこして
BTDC70度近辺(第1波)から、遅らせてみるのが
できないかなあと思案中です。
取り合えず、PICのソースもあるみたいだし
2ST用みたいですけど(汗



HT-ROCKET + PIC (裏が取れたバージョン)
最終的に 動作した回路です。
まだまだ 改良の余地は あると思いますが いちお 動作確認取れています。


HT-ROCKET + PIC (裏が取れたバージョン)説明
ビックアップ (パルサ)の両極の信号を使用します。
フォトカプラ1の信号はフォトカプラ2の信号より遅く発生します。
キックスタータをキックすることで 発電機が回り 50V以上の電圧が発生して ダイオードで整流された後 C2のコンデンサに充電される。
次に 点火タイミングに来た時ビックアップ (パルサ)が 交流の電気を発生さす
それを フォトカプラ1を通して出来た半波の信号をトランジスタで増幅してSCRのゲートを ON、
SCRはON アノドよりカソードに電流が流れ C2のコンデンサを放電 コンデンサと直列に接続しであるイグニッションコイルに通電 2次側に高圧電圧発生して スパークプラクに火花を発生さす。
回転が上昇しますと フォトカプラ2より 信号がマイコンへ行き
マイコンの出力で点火タイミングを作ります 当然 フォトカプラ1の信号より
早く 点火タイミングしますので フォトカプラ2よりの 信号が無効になります。






デジタルCDI 第1号機
タイミング合わせの為のフライホイールを削ることは中止
フライホイールを削ると後戻りできないことに気づきましてPICキットとその他電子部品を大人買いすることになりました。
右の基板を製作しましたが 初爆には至っていません。
回路そのものは、生きているようで プラグをはずしてキックすると、チロチロと火花は飛ぶんですが、タイミングが悪いのか、エンジンが掛かる気配なしです。
(キック20回に1回バッスーーーンという音だけ・・・)

プログラムも何をどうしているのかさっぱりわからず。
ちょっと深みにはまりそうです。
基本回路はsportdevice バージョンです。(上)

http://www.sportdevices.com/ignition/ignition.htm

sportdeviceの回路からの変更点は
RA2 RA0 から接続されているRS232C回路はつけていない。
(というか、ソフトを見ても使用している形跡なし)
RB2 からのcurve selectorもなし
(というか、将来の拡張用?)
2N27は東芝のTLP504A(フォトカプラ)に
(2N27というのはトランジスタの型番では?最初はトランジスタで
回路を組んでいた名残り?)
*NOTE 1 No Battery Optionの100Rとダイオードは
セローの場合、動作していないことが判明しています。
BT151→F8JZ47
27R→22n→GNDと続くところは、基盤にはつけていますが
役割がわからないので、接続していません。

どうやら、PIC利用のCDIは、そのソフトが味噌のようです。
いまは、sportdevice から入手したPICのアセンブラソースと
にらめっこしてます。
http://www.sportdevices.com/ignition/ignition16.asm
168行目の
    GO;if (!perh && (perl>=min……
のGOはたぶん誤りで、そんな命令はPIC16シリーズにはないはず。
なんてことを思いながら、解析中です。
 掲示板からのアドバイス 1
起動時は12度進角、起動後5000RPM以上で72度進角を
PICで遅らせて進角制御しています。 PICのソースも
そんな感じで書いてあります(詳しい解析はしていません)
*NOTE 1 No Battery Optionの100R周りは、この回路では必要だと思います。特に始動時はこの回路でタイミングを合わせていると思います。

27R周りはサージキラーですね。 保護のため入れているみたいです。

 この回路をセローに使うと、セローのパルサーは画像の様に2つのピックアップポイントが必要ですね。
HT−ROKETで始動していたのを、この回路に変えたら始動しないのなら100R周りの回路を復活させ、試みたらいかがでしょう?
パルサーの極性が逆になっているかも知れないので、配線の入れ替えも試した見たらいいかも。


デジタルCDI 第1号機に
第2波を検出するため 回路追加しました。
 
 掲示板からの
アドバイス 2
PICのノイズ対策ですが、
私も基板を別ける方法を取る方が一番かなと思います。 汎用基板では出来ませんが、べたGNDと組み合わせれば、何とかなると思います。
電源には徹底してコンデンサーを噛ませます。
コンデンサーは104Zと10uFと組み合わせます。
 後、高電圧部との接続はGNDは1本線と、コンデンサの併用で接続し、信号線はツイストペア線を使えば大丈夫だと思います。
(デジタル回路にアナログ回路を入れる時の鉄則を守ります)
(GND分離、1点接続、信号線はGNDガードパターン)

実際の配線で気を付けたいのは、SCRのGNDとデジタル周りのグランドはなるべく別に接続した方が。 基板へのGND接続線からデジタル側、SCR側に2系統に別けた方がいいと思います。
デジタル側には+12Vとの間にコンデンサを配置します
(104Zと10uF)その後7805に繋げばいいかな。
 それからCOILへの信号の近くに他の信号は通したくないです。
コンデンサの下も避けたいです。

掲示板で いろいろなアドバイス参考に
させていただいてます。>>ALL


100R周りの処理(第2波タイミングのダイレクト入力)が必要かと思い
HT-ROCKETの入力を流用して回路を継ぎ足してみました。

結果は、GOOOOD!かな?
かなりいい感じで、吹けあがります。
肝心のデジタル部へのバトンタッチも
できているようです。
(というよりも、アイドリング〜3000rpm?ぐらいまで
デジタル部が不安定?)

とりあえず、動画をUPしてみました。
業物UPLOADER
http://w16.wazamono.jp/bikemovie/src/16bike0694.wmv.html

デジタル基盤上にLEDを追加しています。(基盤の端っこのほうで点滅するLED)
これが、点滅すれば、パルスを飛ばす直前までプログラムが動いているはずです。

結果は、GOOOOD!かな?としたのは、
本当にデジタル部分で点火しているかどうかは、
実走テストをしてみんことには判らないからです。
空ぶかしでは、HT-ROCKETオリジナルの回転が苦しくなる部分は
完全に超えて吹けあがりますので、期待が持てるところです。

やっと、光が見えてきた〜!!

SportDeviceのアセンブラソースをながめてみると
これがまたよくできています。

・PICを4MHzとしたことで、基準を1usにして、考え方を楽にしている。
・1us×128が何回あったかを数える←タイマが勝手にカウント
・第1波の入力で1us×128の回数を見る。同時に回数リセット
・回数に応じて遅延ループ回数のテーブルから数値を持ってくる
・数値の分だけ遅延ループが回り、終わって点火・・・第1波が来るまで待つ。
遅延ループ回数の計算もSP-Ignitionというソフトで計算できるようです。
けっこう面白そうです


デジタルCDI 第2号機
何が怖いかって、ソフトを眺めて思ったのですが
sportdevicesのソフトには、15000rpmまでのマップが 書いてあって、レブリミット15000rpmです。(そこで点火カット)
もし万が一、調子よく回るととタコメータのないセローは エンジンぶち壊しそうです。
まともにマップ計算ができるまで、試走は、お預けしてます。
あと、アイドリングや低回転で、デジタル部の点滅が不安定なのは第1波のマイナス電圧が十分出なくて、5.1Vのツェナーを超えられないのが原因なのかな?と考えてます。
HT-ROCKET + PIC バージョンで製作
基本的にsportdevicesの配線と同じにしています。

電源部のOptional for no battery engineは ありません。
*Note1No battery optionの100Rのところが
HT-Rocket基本回路の「入力部分+サイリスタへの出力部分」に置き換わっている感じです。
その下のOptionalは、ありません。

BT151→SF7JZ47
0.68uF400V→0.47uF630V
22n→0.047uF630V
22n=0.022uFは、今のところどこの通販にもなかったです。
27Rは1/4Wです。燃えないのかな?
STOP ENGINEはサイリスタアノード側から引いて
途中に1N4007を入れるように変更しようと思ってます。
2N27表記のフォトカプラ→TLP504A
2回路あるので、第1波・第2波入力で使います。
第1波はPIC行き
第2波はHT-Rocket入力部行き
1n→0.01uF
1N4148→なし
RA2,RA0,RB2から右へつながっているものすべてなし
クリスタルの4MHz+22pのセットは
セラロック4MHzで代用可能らしいです。
PIC16F84→PIC16F84A/20(Max20MHz)
欲を出してクリスタルに20MHzを使うと
ソフトの関係でたぶん(というよりも絶対)動きません。
後は、抵抗値、コンデンサ容量変更なしです。

.


回路パターンです


Serrow に
取り付けて見ました。
試走してやっと裏が取れました。
結果は、非常にいいぞ〜!

注意点は
回路図どおりに組むとソフトの変更が必要です。
×#define output    PORTA,2←(1番ピン)
○#define output    PORTA,3←(2番ピン)
これに気づくまで、だいぶかかりました。
(パラメータ(マップ)を変更しても、反映されないなあ・・・
そりゃそうだ!出力ピンを間違ってるから!
それまで、HT-ROCKET部のみで動いていたようです。)
入出力は1番ピン9番ピン10番ピン18番ピンを避けたほうがいいと思います。
だって、PICを抜き差ししてると、端っこのピンが曲がって
折れるんだもの(笑

sportdevicesにあるPICプログラム(アセンブラの方)は
for 2 strokeの表記があるものの
5000rpm-15000rpmまでBTDC24°―25°でほぼ一定です。
(多分カート用 Degree Advanceの表のようなマップではありません)
調子に乗って、BTDC34°やらBTDC38°作って
遊んでました。今のところ5000rpm近辺からマップが始まりで
ざっくりBTDC34°9000rpmリミットをつけています。
デジタル部が作動していないときは使えるのは5-6000rpmまで
もう少し7000ぐらいまで回るのですが、だらだら回っている
だけという感じです。
デジタル部が作動すると5000から7000rpm(推定)ぐらいまで
「おおおっ」
という加速になります。
といっても、所詮はセローなんで、もうエンジン壊れそうな音がします(涙
もう少し点火マップにメリハリをつけると面白いかも!


というわけで、とりあえず
成功宣言出しちゃいます!
あとは、どうやってバイクに納めるか(回路を小さくするか)が
問題です。

ソフトウエアのほう
ですが、私が全部書いたものではないので
http://www.sportdevices.com/ignition/ignition16.asm
の方から Click here to download the ASM source code of the program
このあたりのものをダウンロードして「改造して」使用することになります。
とりあえず、
・秋月電子通商からPICライターのセットを買う。
・マイクロチップ社のMPASMWIN(PICアセンブラ)をインストール
 (PICライターのセットの中にあったと思う)
・マイクロソフトエクセルがあったら便利(マップ計算用)
・自分のバイクのフライホイールを見て第1波がBTDC何°か
(ピックアップの突起の始まり角度)を把握←これ一番重要!

現在わかっているバグ?は
×#define output    PORTA,2←(1番ピン)
○#define output    PORTA,3←(2番ピン)

× GO;if (!perh && (perl>=min_period)&&(perl<min_period+sizeof(ignition0)))
○;if (!perh && (perl>=min_period)&&(perl<min_period+sizeof(ignition0)))
(GOを取る)

ただし、そのままアセンブルしてもピックアップ第1波がBTDC72°
5000rpm-15000rpmまでBTDC24°―25°の設定のままです。
(セローの場合は、たまたまそのままでも動きます。)
たいていの場合(というよりも最低限)各バイクに合わせて
   addwf PCF,f
ignition:
   retlw 88
   retlw 91
・・・
から始まる点火マップと
その上の
#define sizeof_ignition 57 ←点火マップの総数
さらに上の
#define min_period 31 ←点火マップの下限カウント数=実質の回転リミッター
の書き換えが必要です。

点火マップの生成には
上記ページの
Click here to download the Excel sheet with calulated values
これか
Click here to download the "Ignition Wizard" program
これを使います。
(私は、エクセルシートのほうを使ってます。)
エクセルのigniton.xlsの一番上
Resolution (ms)  0.004 →0.006に変更
prescaler 64 → 128に変更して使用します。
マップの総数+#define min_periodが255を超えてはいけないとか
マップの値が255を超えてはいけないとか
いろいろありますが、こればっかりは
やってみなきゃわかりません。

できあがったら、MPASMWINでアセンブル
出来上がった***.HEXファイルをPIC programmerでPICに焼く
基盤に取り付けてGO!

わかりきったことなんですが、
デジタル制御の場合、回路が簡単になる分
ソフトウエアの出来(セッティングデータ含む)が、
かなりのウエイトを占めると思います。

注意事項
感電に注意してください。
スパークプラクの放電で感電すると 命にかかわることがありますので くれぐれも スパークブラク゛に触れたままエンジンを掛けたり キックスタータを踏まないでください。

免責
自己責任でお願いします。
実験結果ですので 全てにおいて上手くいく保証されるものではありません。
間違いもあるかもしれません。
この情報に基づいて被ったいかなる損害についても、
当方は 一切責任を負いかねます。


ご意見を お聞かせください