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 (裏が取れたバージョン)
最終的に 動作した回路です。
まだまだ 改良の余地は あると思いますが いちお 動作確認取れています。



デジタル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!

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

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

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


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