Acrobat Readerの「戻る」ボタン

色々なPDF文書を読むのにAcreobat Readerを使っています。
このツール、よく更新されていて操作が変り戸惑う事があります。
今回「戻る」ボタンが見つからず手間取ったので覚書きです。

ここでいう「戻る」ボタンとは、文書中のリンクを押して離れたページに飛んだ後、元のページに戻るときに使うボタンです(単にページを上下するボタンなら初期状態でありますが、これではないのです)。
ブラウザーだと普通に「←」「→」なボタンがありますよね。またAcrobat Readerでも以前のバージョンは画面の上の方にボタンが並んでいたと思います(この頃も何か設定してボタンを並べたのだっけ?)。
でも私が現在使っているAcrobat Readerにはこのボタンが見当たらず、どうやって設定するのかを探していました(ググっても違うバージョンの情報が多いのです)。

なお現在使っているのはWindows版のAcrobat Readerですがバージョン番号も判りません。普通はヘルプメニューに書いてあったりしそうですがこの版では見当たらないのです。
という事でバージョン番号は分かりませんが画面が下の様になっているタイプです。

この様にページを上下に移動するボタンはウィンドウの右下付近にありますが、リンクを戻るボタンはありません。

ショートカット Alt+←、Alt+→ で戻る

とりあえずショートカットでAltキーと矢印キーを同時に押す事でもリンクを戻る事が出来ます。

ボタン「←」「→」を常に表示する

このバージョンにも「←」「→」ボタンを常に表示する設定方法が見つかりました。
まず右下の赤で囲んだアイコンを押すとメニューが開きます。

メニューの最下部が「さらに表示」となっている場合はこれを押す事でスクロールバーが現れます(既にスクロールバーが表示されているなら次へ)。

スクロールバーを下に下げていくと「←前の画面」「→次の画面」が見つかりました。(こんなところにあったのね・・・)


これを選択する事でリンクを戻る事も出来ますが、毎回このメニューを選ぶのも面倒なので常に画面に表示したいですよね。それにはメニュー右部のピン止めアイコン(画鋲マーク)を押します。すると画面右のペインに「←」ボタンが表示されます。


同様に「→次の画面」横の画鋲アイコンも選ぶと下の様に「←」「→」ボタンが追加されました。

これでストレスなく文書が読める様になりました。
初期状態で表示してくれたらいいのに。
(みんな必要だと思うんだけどなぁ、あって困る場面があるのかな?)

原付バイクのCDIを作ってみる。

前回(タイミングライトの時)書いた様にCDIを作っています。
ネット上では色々試された先輩方がおられるので参考にしながら制作中。
なおCDIとはバイクの点火プラグに火花を飛ばす為の回路です。詳しくはこちら→Wikipedia CDI

上記Wikipediaにも書かれている通りCDIには交流式と直流式があります。
先日イジくったDioチェスタは直流式なのでCDI内部で直流12Vを2~300Vに昇圧し、これをコンデンサに貯めた後、一気にイグニッションコイルに流してプラグに点火します。ざっくり書くと下図の構造になっている様です。点火用の電源は直流12Vだけなので内部に昇圧回路が必要です。
最初はこれを対象に考えていましたが、Dioチェスタは息子が友達に売り払ったのでもうありません。

という事で今回は交流式のカブ系エンジン(カブ50とかJazz50。)を対象にしようと思います。
交流式のざっくりした回路は下図の様な構造。発電コイルが発生する交流が元々2~300VあるのでCDI内部では整流するだけで済みます。これはシンプルで済むのですが直流電源がCDIには入っていないので制御回路に複雑な処理(マイコンとか)を入れようとすると5V程度の電源が欲しくなって、これをどうするかを考える必要があります。

正規品CDIの波形

正規品CDIの動作に当たりをつけるため、Jazz50の波形を見てみました。
※注意:「正規品」と書いていますが中古バイクなので本当に正規なのかというと保証はありません。

まずステーターコイルからCDIに入ってくるAC入力

AC入力は本来正弦波のはずですがCDI内の整流回路の影響でギザギザの波形になっています。
ここから想像混じりですが以下の動作をしていると思います。

まずフライホイール1回転で4サイクル分の交流波形が出て、整流した電荷を段階的にコンデンサに貯めていく。その後点火する事で電荷が抜ける・・を繰り返す。

LT-Spiceで試した結果、整流部分は以下の回路になっていると辻褄が合います(TP1の波形)。
ACジェネレータの内部抵抗は分からないのでとりあえず波形が近くなる値を入れました。
また回路中V2、IGNは電荷を抜く為にあります(実物ではサイリスタに相当)。
ダイオードD2がなぜ要るのかはわかりません。これが無いと負電圧期間が全然違う波形になりますが、それでも動作上は問題なさそうに思えます・・・負電圧期間にD1に加わる逆電圧を減らす為かな?という予想をしています。そうであれば今回使用しているダイオード(IN4007)は逆耐圧1000VなのでD2を無くしても良いかもしれません。

次にタイミング入力とイグニッションコイルに出力する信号を見ます。
CH1(黄色)がタイミング入力、CH2(青色)がイグニッション出力
※2回分の波形が重なってしまいました。
タイミング信号は+の山の後に-の谷が来るみたいですね。この内の+3Vのあたりで点火している事が判ります。

とにかく動作するものを作ってみる。

最終的には進角・遅角機能を盛り込みたいですが、まずはとにかく動作するものを作ってみようと思います。
ネット情報を参考に最初に試したのは下の回路。

C1およびD1,D2でAC入力の振幅を2倍の直流に昇圧してC2に貯めておき、サイリスタ(TY625)にトリガを入れるとC2に貯めた電荷がイグニッションコイルから引き抜かれて点火する仕組みです。タイミング信号はQ1で受け、このままだと逆相になるのでQ3でもう一度反転してからサイリスタのゲートに伝えます。

AC入力を倍電圧整流にしたので上で見た波形にはならない筈で正規版CDIとは回路が違っていると思いますが、まずは確実に火花が飛びそうな方法にしています。またQ1,Q2を動作させるために外からDC5Vの電源を入れる必要があります。正規版CDIはDC電源は不要ですが、これも一旦確実に動作しそうな方式でやってみます。

ではバイク(息子が整備中のJazz50)に繋いで・・・

キックするとあっさりエンジンが掛かりました!!
では波形を見てみましょう。オシロを持ってきて・・・

まずはCH1:タイミング入力CH2:AC入力
予想通りAC入力はグニャグニャで正規版CDIとは違う波形になっています。
真ん中あたりのガクンと下がっているところが点火タイミングでしょう。


次にCH1はタイミング信号のままCH2をC2の左側端子(ほぼC2の充電電圧を表示)に繋ぎ変えてみます。
※タイムスケールは変更しています。
C2は倍電圧整流の効果で600V以上にまで上がっていて、点火の威力はあると思いますがコンデンサやサイリスタの耐圧ギリギリなので、倍電圧整流は止めた方が良さそうです。

では倍電圧整流を止めるためにC1を短絡してみます。
これでAC入力としてはLT-Spiceで試した回路と同じになりますが、今度はエンジンが掛かりません。
掛からないながらもキックの瞬間に撮った波形は下の通りです(プローブは上と同じ接続)。予定通りC2は300Vに下がっています。エンジンが掛からないのは電圧が下がったためでしょうか?


ならば点火エネルギーを増やすため、C2に1μFを追加して計1.47μFにするとエンジンが掛かりました。
(後で考えるとキャブレターの調子が不安定なのが影響していたのかもしれませんが。)
この状態でのCH1:タイミング信号CH2:AC入力波形を見ます。AC入力は倍電圧を止めた事で正規品CDIと似た波形になっています。

次にCH1:タイミング信号CH2:C2波形
C2電圧が少し低くなっています。容量が増えた事で上昇が間に合っていないんでしょうか?
でもこの方がエンジンが掛かりやすいのは容量アップでトータルの電荷が増えているからかな。

結局、1.47μF(コンデンサ2個)は寸法的に大きすぎるので1μFに減らしたところ、これでもエンジンは回ったので1μFを採用します。本当は0.47μFと1μFの間も試して余裕がある事を確認したいところですが、そんなに高耐圧コンデンサを持っていないのです。

以上を踏まえミニマムな構成で2号機を考えます。

まず倍電圧整流は止めます
あと5V電源もなくしたいですね。そうするとタイミング信号をバイポーラトランジスタで受ける事はできません。正規CDIがどうやっているのか判りませんが、たぶんそのままサイリスタのゲートに入れているのではないでしょうか?という事でタイミング信号をそのまま抵抗経由でゲートに入れてみます。この場合ゲート信号が-レベルの時、サイリスタのゲート逆耐圧である-5Vを超える危険があるのでダイオードD3で保護しておきます。
それとエンジンを停止させる機能が付いていなかったのでENの配線を追加しています(1号機では省いていたので停止させるのに手間がかかったのです)。バイクのキーをOFFにした時、ここがGNDに落ちるのでサイリスタがトリガーされなくなって停止します。

という事で2号機は下のかなりシンプルな回路にします。
(たぶん正規品もこうなっているんじゃないかと思っています)

これでもエンジンは掛かったので波形を見ます。

CH1:タイミング入力CH2:AC入力
正規CDIと同様の波形になっています。

CH1:タイミング入力CH2:IGN出力
特に何という事もないですがIGN出力を時間軸を拡大で見ました。


そして回っているところの動画。※音量注意。
なおピザのチラシは絶縁目的で敷いています。

走ってみる。

実際のバイクで走行テストする為、同じ回路で小型版を作りました。
正規品とほぼ同サイズ(コネクタは電線経由ですが)。

適当にビニールテープで絶縁して息子のカブに積んで走ってみましょう。
(上で試しているJazz50はまだ整備中で公道を走れないのです)

カブの正規CDIを外して・・・

いい加減な方のCDIを付けます。

そして家の周りを5分程走ってみました。
特に違和感なく普通に走れるし、走行後も熱を持つ様子は見当たりません。

という事で・・・

ミニマムなCDIを作成する事で理解が深まりました。たぶん正規品も同じ構造じゃないでしょうかね。
この後は進角/遅角機能を盛り込みたいのですが、マイコンを使うとすると上記の通りDC電源をどうするか問題が発生します。あんなガタガタで250Vもある電源から安定したDC5Vを作り出すのは難易度高そうです。空き端子から12Vを入れても良いのですが、そうするとバイク側の改造が必要です。でもできればCDIだけポン付けで交換できる様にしたいですし。。。
なおカブでも90CCのモデルだと進角機能付きのCDIを採用している様で、これがどうなっているのかは気になります。

LEDタイミングライト(回転数表示付き)

先日の投稿以来、原付バイクの電装系が気になっておりCDIを作ってみたくなりました。
CDIというのはエンジンの点火プラグに火花を飛ばすための回路で、エンジンから来るタイミング信号を受けてイグニッションコイルに電流を流すという仕事をしています。

CDIの例

最終的には回転数に応じて微妙にタイミングをずらす(進角とか遅角)事を考えているので、そうすると実際の点火タイミングを確認したくなります。それにはタイミングライトなるものが必要です・・・が、持っていません。

タイミングライトというのは点火プラグに繋がるコードの被覆の上から電極を挟み込んで信号を取り出し、その瞬間にライトがピカッと光るという動作をします。その光でエンジンのフライホイールを照らすと、フライホイールが毎回同じ角度になった瞬間に照らされるので人間の目にはフライホイールが止まって見えるというものです。
フライホイールには点火すべきタイミングの位置に刻印がされているのでこの刻印がどの位置に見えるかによって思い通りのタイミングで点火しているかどうかを確認できるのです。

フライホイールの例

で、タイミングライトの構造をネットで調べてみました。昔からある市販品はカメラのストロボ同様のキセノン管を使っているそうで、ネット上では使い捨てカメラのストロボで自作されている記事が見当たります。
またLEDを使って自作されている方もおられます。
今回、使い捨てカメラを入手するのも面倒なので手持ちのLEDで試してみました。
なお特にLEDの場合は光量が低くて見づらかったという情報が多いので、この辺りを気にしながら作ってみます。

構想

LEDでタイミングライトを作ると光量が足りないという問題ですが、ネットでよく見る例ではプラグコードから検出した信号をそのままトランジスタに入れてONした瞬間にLEDが光るという構造でした。

そこでプラグコードから検出する信号の幅を実測したところ2μS程度しかありません(これはバイクの機種や信号取り出し方法によって差があるとは思います)。
仮にエンジンが1000回転/分(以下rpm)で回っているとすると1回転に要する時間は60mSです。
この場合60mS毎に2μSだけLEDが発光するのでONしている割合は0.0033%。よくLEDを調光する時にPWMを使いますが、デューティー0.0033%でLEDを光らせる様なものなので、これはやっぱり暗いでしょうね。

という事でプラグコードから検出する信号幅に係わらず一定の時間LEDを光らせる構造にする必要がありそうです。
ではどれだけの時間光らせるかですが、まずはフライホイールが回る角度にして1度を目標でやってみる事にします。すると1000rpmの時、60mS/360度なので167μSですね。これでもデューティ0.28%ですが直接よりも80倍以上明るくなるだろうという目論みです。これで足りない部分はLEDに流す電流を増やしてみましょう。

で、LEDですが手持ちにこんなのがありました。12Vで7WのLED。これだと光量はたっぷりとれそうですが試してみると内部に諸々の回路が入っていて瞬間的な発光ができませんでした。

そこでいつだかジャンクで購入したチップLEDを使う事にします。定格100mA、瞬間的には150mA流せる事になっています。

これを2個直列で使用してみます。

試作1号

という事で次のような回路で試してみました。

プラグコードから取り出した信号を4本のダイオードで電圧制限してQ1に入力します。Q1がONになるとQ2とQ3のワンショット回路をトリガーして一定時間分Q4をONにすることでLEDが点灯します。

なお電源には12Vを用いて抵抗経由でLEDに流しますが、ワンショット回路付近はレギュレータで5Vに落として使っています。5Vに落としているのは特に意味はなく、これも試行錯誤の痕跡です。
Q4のMOSFETは2N7000という、あまり大電流を流せるFETではありません。これはゲート容量を低く抑える為で、大容量のパワーMOSFETだとゲート容量も大きくなり遅延が発生するのを防ぐ目的です。

ワンショット時間はC2とR2で決まります。またLEDに流す電流はR5で決まります。試行錯誤の結果、これらの値は上記回路図に対し次の様に変更しています。
C2:0.01μF(回路図通り)、R2:68KΩ、R5:8.5Ω
これで発行時間を約170μSに固定しています。
またR5はLEDに瞬間的に流す電流を決めます。ここでは約0.7Aを流しているのでLEDもMOSFETも定格オーバーですが光量を得るためなのです。実際には1/360の期間しか点灯しないので平均電流だと余裕で定格に収まっているんですよね。実際どうなんでしょう。

そして実際に作ったのがこれ。C2,R2,R5のあたりに試行錯誤の痕跡が残っています。
またプラグコードからの検出には事務用クリップ(目玉クリップと呼ばれるやつ)に電線を繋いで、これでコードを挟んで点火信号を取り出します。
車体アースに接続するワニ口クリップも設けましたが、接続しなくても動作しました(目玉クリップも近づけるだけで点灯した)。

では実際のバイクでタイミングを見てみます。カブ系エンジン(Jazz50)のフライホイールです。

一応「F」マークの位置が見えていますね。
但しLEDの点灯時間が170μS固定なので1000rpmで回っている時はフライホイール1度の期間点灯しますが、仮に1万rpmで回ると分解能10度となってしまい広すぎます(それにLED点灯のデューティも1/36となり破壊のリスクも高まる)。
実際上の動画で若干ブレて見えるのは回転数が高めだったので1度を超えているのだと思います。
できれば回転数に係わらず1度の期間だけ点灯させたいですね。これをアナログ回路で実現するのは難しいので次の試作ではマイコン(Arduino)に頼ることにします。

試作2号

Arduinoで制御しますが、そのまま入れるのは勿体ないので裸のATmega328PにArduino UNOのブートローダを書き込んで使いました。
プラグコードから検出した信号はQ5経由でArduinoのD2端子(ATmega328PのPD2)に入力して割込みを掛けます。
するとD5端子(ATmega328PのPD5)から一定期間のパルスを出し、これをパワーMOSFETのゲートに入れてLEDをドライブします。
今回はマイコンのGPIOがゲートを叩くので多少ゲート容量が大きくても影響は少ない事を期待してパワーMOSFET(手持ちの2SK2252)を用いる事にします。

パワーMOSでドライブすると大電流を流せるのでLEDも2直列×3並列の計6個を光らせてみます。
LEDと制限抵抗は回路図に含まれていませんが下図の様に接続しました。
LEDの定格Vfが3.1V×2個で電源が12V、よって合成抵抗5Ωには5.8Vが加わります。なので各LEDの瞬間電流は1.16Aとなり、定格に対して10倍位多いですがデューティ1/360なので耐えてくれる事を期待しています。
実際手で触った感触では全く温度が上がった様には感じられませんが、もし壊れる様なら電流を減らそうと思います。

LED基板はこんな感じ。抵抗は裏側に付けています。


一方Arduinoのスケッチでは点火信号の間隔を測定しておき、それに比例してワンショットの発光時間を決めています。これにより回転数に係わらずフライホイールが1度回転する時間だけLEDが点灯します。

また点火信号による割込みからLEDオン迄の時間を最小にするため、DigitalWrite関数は使わず直接PORTDレジスタに値を(1バイトまとめて)書き込んでいます。なので後述する液晶ディスプレイはPORTDを避けた端子に接続しました。
なお割込み処理の内部ではdelayMicroseconds関数を使って時間待ちをするという無理やりな事をしています。もしかするとこれによりmicros()関数や1秒タイマーの精度に影響があるのかもしれません。このあたりはArduinoのシステムの動作をきちんと調べるべきですが、影響しても1/360なのでとりあえずこのまま進めます。

そして折角マイコンを載せるのならと液晶ディスプレイに回転数を表示してみました(1秒毎に割込みを掛けてその間のパルス数から算出しているだけなので分解能は高くないです)。

一時CBF125Tのタコメーターとして働いていた液晶ディスプレイを流用

実際動作させてみた時の写真。上とは別のバイクなのでタイミングマークが分かりにくいのですが、明るくはなっているし回転数を上げてもタイミングが見えています。

ケースに入れて最終形態にする。

このままだと使いづらいのでケースに入れたいと思います。
ただ電源に12Vを入れるのは面倒なので006Pの角型9V電池にしました。これによりLEDに流れる電流は約半分になり、少し暗くなりましたがまあ使えます。制限抵抗を減らしても良いのですが当面このままで試してみます。


測定中の動画

以上で点火タイミングを確認できるようになったのでCDIを作れる準備ができました。
で、対象とするバイクは当初は先日修理したDioチェスタを予定してしていたのですが、息子が友達に売り払ってしまった(原付バイクが沢山あり過ぎて邪魔だといったのは私です)のでカブ系エンジンのバイクに変更しようと思います。
Dioチェスタはバッテリー式CDIだったので12Vから250V程度に昇圧する必要がありましたがカブ系は最初から250V程度の交流を元に点火するのでCDI内部では整流するだけで済みます。
実はもう実験を始めているのですが、それはまた次のお話・・・。

最後に参考用としてArduinoのプログラムを載せておきます(言うまでもないと思いますが、これを参考にされて何か起こっても責任は持てません)。

スケッチ(Arduino UNO用)

LCR-T4 ~LCR・トランジスタ 測定器~

電子回路をイジっているとコンデンサやコイルの値を測定したい時があります。
コンデンサについては割と安物のマルチメーターでも測定レンジがあるので何とかなりますがコイルまで測定できる物は少なく、これまで簡易的にブレッドボード上に回路を組んで測定したりしていました。しかし作業後バラしてしまうのでその都度組み直すのも面倒です。

ネットで見ると秋月電子にはDE-5000というLCRメーターが現時点9480円で売られています。そろそろ奮発してこれを買うか?と思っているとLCR-T4なる物が目につきました。AmazonAliexpressでは多数のショップから出品されている様で値段も数百円~二千円前後です。
LCRに加えてバイポーラトランジスタやFETも測定できる様で、驚くのは3本の測定端子に適当に繋いでボタンを押せば、それが何の部品であるかも含めて知らべてくれるらしいのです。
画像で見る限りほぼマイコン1個で測定している様なので精度は望めないと思いますが、まあ自分の用途ではコイルの場合は大体の値が分かれば十分。あまり長く待ちたくないのでAmazonに発注しました。税込み1690円です。

そして到着。

表側

裏側

どうやらこのLCR-T4には色々なバージョンがある様です。オリジナルはAVR(現マイクロチップ)のATmega328等が載っている様ですが届いた基板にはAPT32F172という謎のICが載っています。
もしかしたらATmega互換かと思って調べたところ中国語のデーターシートしか見つかりませんでしたがC-Sky Microsystemsの32bitマイコンらしいです。中国でATmegaから移植したんでしょうか?

動かしてみる

では006Pの角型9V電池をつなぎ、ネット上の記事に従いキャリブレーションをやります。
その為には3本をショートさせる必要があるので下の様なショートピンを作りました。

このショートピンを繋いでボタンを押すとキャリブレーションが始まります。
その後メッセージに従いピンを外し、そして0.1μFのコンデンサを差して暫く待つと完了となります。
しかし「0.1μF以上のコンデンサをつなげろ」というメッセージですが「以上」ってのは精度は不要なんでしょうか?そのあたりはイマイチ分からないままとりあえず先に進みます。

では過去の測定で100μHだと思っているコイルを測定してみます。

130μH(0.13mH)ですね。過去の測定も簡易的なものなのでまあこんなものだと思います。

トランジスタもコンデンサもつないでボタンを押すだけでどれがどの端子かを含めて表示してくれます。便利ですねぇ。

LCR-T4について調べる

この基板、ネットで直ぐに見つかるサイトではあまり詳しい情報が示されていなかったので、もう少し粘って調べるとGitHubに以下のページに辿り着きました。

https://github.com/Mikrocontroller-net/transistortester

そして140ページもの詳細なドキュメントが下記の場所に。

https://github.com/Mikrocontroller-net/transistortester/blob/master/Doku/trunk/pdftex/english/ttester.pdf

これによるとオリジナルはやはりAVRマイコンみたいです。またLCR-T4基板(何故かLCD-T4と書かれている)についても言及されていますがAPT32F172版の記述は見つかりません。

またボタンを長押しするとメニューが出て色々と設定ができる筈ですが、自分の基板では何も起こりませんでした。マイコンが異なるので上記サイトのファームを書く訳にもいかず・・・という事で購入する時はATmega搭載の基板を選ぶ方が良いかもしれません。
(因みにパッと見ではATmega版はマイコンの横に水晶振動子が載っていますがAPT32F172版はこれが見当たりません。また基板の取付け穴の位置も違う様です。)

次に気になったのは電解コンデンサをどっち向きに挿入するのが良いかです。流石に電解コンデンサの極性まで自動判別はできないでしょうから適当につなぐと逆電圧を印可するのでは? この辺りを上記のドキュメントで調べると次の様な説明がありました。

Normally the polarity of part is irrelevant, you can also connect pins of electrolytical capacitors in any order. The measurement of capacity is normally done in a way, that the minus pole is at the test port with the lower number. But, because the measurment voltage is only between 0.3V and at most 1.3V , the polarity doesn’t matter.

Google先生に訳してもらうと・・・

通常、部品の極性は関係ありません。電解コンデンサのピンを任意の順序で接続することもできます。 容量の測定は通常、マイナス極が番号の小さいテストポートに来るようにして行われます。 ただし、測定電圧は 0.3V ~ 1.3V の間だけなので、極性は関係ありません。

マイナス側を小さい番号に繋ぐ方が良いけどあまり気にするなという事みたいですね。
それでも気になったのでコンデンサを測る時の波形を見ると下の様になっていました。コンデンサを1,2ピンに接続し、青色が1ピン,黄色が2ピン、紫色は差電圧(黄-青)です。結構上下逆転している瞬間があるみたいですが気にしないでおきましょう(でもタンタルコンデンサみたいに逆電圧に特に弱いのは避ける方が良いかもです)。

どうやって測ってんの?

上記のドキュメントに英語で詳しく書かれている様なのでその内読んでみたい(たぶん読まない)と思いますが、測定端子は3本共下の様な接続になっている様です。
これだけで測っているんですね。

ケースを作る。

便利に使えそうなのでケースを作りました。本体はMDF、上蓋は透明アクリルをレーザーカットして作成しました。

キャリブレーション用ピンはそのままだと絶対無くす自信があるのでケース内に収納できるポケットを設けています。

なかなか便利です。

スクーター Dioチェスタ(AF34) のバッテリーがリークする

息子が古くてボロいスクーターを先輩から(ほぼタダで)買ってきました。
その先輩も誰かから貰ってかなり長い間放置していた様で、各所が錆びていたりマフラーに土蜂が巣を作っていたり、まあポンコツですが、単にイジりたいだけで買ってきたみたいです。

で、色々修理したり悪いパーツを交換して走れる様になり完成かと思ったのですが、新品バッテリーなのに数日止めておくと上がってしまうという問題が見つかりました。
充電はできており暫く走るとセルモーターを回せるだけの電力が溜まるのですが、数日乗らずに止めておくと上がってしまうのです。

なんかリークしているっぽいですね。

そこでキーOFF状態でのバッテリー電流を測ると14mAも流れています
バッテリー容量は3Ahなので単純計算だと9日間で空となる(実際にはもっと早くダメになるでしょう)のはちょっと流れ過ぎですね。

という事で調べていく

そもそもキーOFFなのにどこに流れているんだ?

サービスマニュアルや回路図を持っていないので、とりあえずキースイッチの周りを見ると下の写真の様に3本の配線が出ています。
(あとで気付くのですが、この配線に問題がありました。)

なおネットの情報によると、このDioチェスタというスクーターは初期の2ストローク時代と後期の4ストローク時代があり、今回のは2ストロークエンジンを積んだAF34型です。そしてAF34の中でもマイナーチェンジがされており、キーシリンダーから出ている配線が2本の物もある様ですが、今回のは3本のタイプです。

キースイッチを開けてみるとツェナーダイオードらしき部品が入っていました。”4″と書かれているので恐らく4Vのツェナーらしいですが、何のため?

判らなくなってきたのでキースイッチ回りの配線を図にしてみました。
(現物からテスターで辿った結果なので間違いがあるかもしれません。また発電コイル回りは他の機種の回路図を元に推定して書いた部分もあります。あとこのCDIは5ピンですが世の中には同じAF34でも4ピンタイプのCDIもある様です。)

しかし色々と謎があります。

・キーOFF時のピンク線には12Vが加わっている。
 OFFなのにCDIに12Vが入りっぱなしというのに違和感があります。

・キースイッチ内部の4Vツェナーダイオード
 何これ?

その他(なかなかバイクの電気系は興味深いのです)・・・

・CDIは直流12Vで動作する通称「バッテリー式」です。
 CDI内で昇圧し瞬間的にイグニッションコイルに電流を流します。
・灯火類は交流のまま使用する、古いカブ等と同様の方式です。
 この方式では電圧が上がりすぎない様にレギュレートレクチファイヤで過電圧を防いでいるのですが、電球とは並列にレギュレータが入っているんですね。という事はレギュレータにガバッと電流を流して電圧を下げるシャント方式なんでしょうか?

ツェナーの働き考察

キーONの時、12V電源はキースイッチ内のツェナーダイオードを経由してCDIのピンク線に繋がります。ピンク線はこの時約8Vになっていました(ツェナーで4V落としている)。
これはどうやら「直結防止」が目的みたいです。このCDIはピンク線が8V前後の時だけ動作する様になっているらしく、ピンク線に12Vを加えてもエンジンは掛からず、またピンク線を開放しても掛かりません。これによりバイク泥棒が電源とピンク線の間を直結してもエンジンは掛からない仕組みになっている様です。
・・・という事でこの部分はキーOFF時のリークとは直接関係なさそうです。

リーク原因調査

そして問題のキーOFF時のリークですが、12Vが印可されたピンク線からCDIに向かって14.5mAの電流が流れていました。
ではこのCDIに入った電流はどこから流れ出すのでしょう?CDIの各端子を測ると以下の通りで、赤黒線が主な出口となっている様です(GNDからも僅かに流れ出していますが)。

配線色機能電流(CDIに入る向きを+)
赤黒12V電源-13.5mA
ピンクON/OFF+14.5mA
青白タイミング0mA
黄黒スパークコイル0mA
GND-0.7mA
リーク電流はピンク線から入って赤黒線から流れ出している。

と、ここまで判ったけど、なぜ赤黒線から流れ出すのかが判りません。ならばと赤黒線とCDIの間にダイオードを入れて逆流を阻止してみたところ、当然ながら赤黒線への流れは止まりましたが、今度はGND端子から6.9mA流れ出す様になりました。(リークは半分にはなるけど・・・まだ変。)

うーん。謎。
キーOFF時にピンク線に12Vを加えるならCDI内でリークを食い止めて欲しい気がしますね。
やっぱりCDIが壊れてリークしているのか?
悩んだ末、ヤフオクで同じ型のCDIを購入してみることにしました。

そして到着したCDIを取り付けると・・・やっぱり14.5mA流れています!!なんでー?

もう一度落ち着いて考える。

そもそもキーOFFの時にピンク線に12V加わっているのが不自然ですよね。キーOFF時に切り離していればリークの心配なんて無くなる筈。そういう風に改造しようかと考えて・・・ここでふと気づきました。そもそも現状の配線が正しい保証はないし何か配線が間違ってんじゃね?・・・と。

そういう目で見ると付属の鍵も純正っぽくないです。なに?JINKUNって。誰?

更にネットで他の車体の画像を見るとキースイッチのコネクタはこんな1本ずつギボシや平端子で接続するのではなく、3本纏めたコネクタが繋がっています。
やっぱり過去にここをイジられているみたいですね。その時に間違った配線をされた可能性があります。

「多分こうだろう」という現時点の結論

元々の配線が間違っている可能性も踏まえ、どうすれば正常に動作するかを考えた結果、キースイッチへの接続が現状とは逆に、下図の赤・青で描いた様に接続するのが正しいのだとしたら理屈が合います。
これならキーOFF時はスイッチ内で切り離されていてリークする事もないし、ONの時はCDIに12V電源及びツェナー経由の8Vも加わります。
また直結されてもツェナーを経由しないので盗難防止機能も正常です。


上記配線になる様、ギボシと平端子を繋ぎ変えてみると、キーOFF時のリークは無くなり、ON時の動作も正常となりました。

反省

ジャンク同然で買ってきたバイクの配線が正常であるという前提で考えたのが失敗でしたね。
無駄にCDIを買ってしまったけど、むしろサービスマニュアルを買うべきだったかも。

上の配線で本当に正しいのか、正規の回路図で答え合わせをしたいので回路図をお持ちの方、ぜひ教えてください。

しかしCDIとかレギュレートレクチファイヤーとか、なんだかバイクの電装系を調べるのが楽しくなってきました。。。

ESCを作ってみる~その4~ メロディエディターにハマる

先日のESC自作実験でbluejayファームウェアを入れた事を書きました。

bluejayにはスタートアップ時にモーターからビープ音が鳴りますが、代わりにメロディーを鳴らす機能があります。これにはESC Configurator中のMelody Editorを使う事で、PC上であれこれ試した後、納得がいった時点でESCに書き込むことができるのです。
これ、色々と鳴らしていると楽しくなってハマってしまいました。

まずやり方のメモ・・・

Bluejay ESCにスタートアップメロディを書き込む方法

まずブラウザー(Chromeでやりました)を立ち上げてESC Configuratorを開きます。
ページの真ん中より少し下あたりに「Open Melody Editor」というボタンがあり、これを押すとメロディーエディターが開きます。

下の画面がメロディーエディターです。
「bluejay:b=570,o=4,d=32:4b,p,・・・」と書かれている場所がメロディーのデーターで、立ち上げ直後はBluejay標準のビープ音が設定されています。
ここで「Play」ボタンを押すとPCからメロディーが流れます(まずはPCだけで試せるのです)。
また「Select a Melody」プルダウンにはあらかじめ色々なメロディーが収録されているので、色々切り替えて鳴らす事もできます。

で、このメロディーデータ、音楽知識ゼロなのでパッと見なんだかわかりませんが、調べるとノキアが開発したRTTTL(RingToneTextTransferLanguage)という、元は携帯電話の着メロを記述する為のものだそうです。
詳細説明はウィキペディアにありました。
→ https://en.wikipedia.org/wiki/Ring_Tone_Text_Transfer_Language

この説明をメロディーデータと見比べると何となく判ってきたので、試しに「お風呂が沸きました」のメロディーを入れてみます。ネット上に落ちていた楽譜を見ながら何とか変換したのが次のデータ。

DollsDream:b=200,o=4,d=16:8g,8f,4e,8g,8c5,4b,8g,8d5,4c5,4e5,4p,8c5,8b,4a,8f5,8d5,4c5,4b,2c5

ではこれをESCに書き込んでいきます。

PCとFCをUSBケーブルで接続し、ESCに電源を入れて・・・
ESC Configuratorの「Open Port Selection」でポート番号を選んだ後、「Connect」ボタンを押します。

下の画面が出れば接続成功なので、右下の「Read Settings」ボタンを押します。

すると下の画面に変り、諸々の設定内容が表示されています。ここで「Open Melody Editor」ボタンを押します。

すると先ほどと同じ様なメロディーエディターが開きます。
さっきと違うのは「Accept」や「Write Melodies」ボタンが増えているあたりです。

では作ったデーターをコピペして「Play」を押してみましょう。先程と同様にPCからメロディーが流れます。内容に納得がいったら「Accept」を押した後「Write Melodies」を押すとESCに書き込まれます(書込みはあっという間でした)。

あとはMelody Editorを「Close」し、ESC Configuratorの「Disconnect」を押した時点でESCが再起動するので、先ほど書き込んだメロディーが今度はモーターから流れます。

実際にESCの起動音として使うには、あまりに長いと待っていられないのでb=200の部分を調整すればよいと思います(この値はテンポなので数値を大きくすると早くなる)。

楽しくなってきたので色んな曲を入れてみました。

メロディーデーターと共に動画を掲載します(音楽は素人なので変な個所もあると思いますが・・)。

♪お風呂が沸きました
DollsDream:b=200,o=4,d=16:8g,8f,4e,8g,8c5,4b,8g,8d5,4c5,4e5,4p,8c5,8b,4a,8f5,8d5,4c5,4b,2c5

♪Jupiter
Jupiter:b=150,o=4,d=16:8f,8g#,4a#.,8c#5,8c5,8g#,8c#5,4d#5,4c#5,8c5,8a#,8c5,4a#,4g#,2f

♪ロンドンデリーの歌
Londonderry:d=4,o=4,b=150:8d,8d#,8f,4g.,8f,8g,8c5,8a#,8g,8f,8d#,4c,8d#,8g,8g#,4a#.,8c5,8a#,8g,8d#,8g,2f

♪トトロ
Totoro:b=140,o=4,d=32:8c,8d,8e,8f,8g,8p,8e,4c,4g,8f,8f,4d,.2p,8f,8p,8d,4b3,4a,8g,8g,4e.

♪まんが日本昔話
mukashi:b=140,o=4,d=16:8a,8g, 2a,16g.,32p,16g.,32p,16f.,32p,16f.,32p,16g.,32p,16g.,32p,16g.,32p,8f,2g

♪威風堂々Elger:b=150,o=4,d=16:2c5,8b,8c5,4d5,2a,2g,2f,8e,8f,4g,2d,4d.,8p,2e,8f#,4g,8a,2d5,2g,2c5,8c5,4b,8a,2g,4g.,8p

♪未来少年コナンConan:b=150,o=4,d=16:16e.,32p,16e.,32p,16d.,32p,8c,8c,8c,8e,4a,4g,2p,16f.,32p,16f.,32p,16f.,32p,8e,8d,8d,8d,8f,4b,4a,8p

で、ESC製作計画の方ですが・・・

4in1ESCを作ってみようと悪あがきしていますが、やっぱり格安の両面プリント基板では厳しいです。
4層基板じゃないと無理かなぁ。できれば銅箔も分厚くしたいし。でも値段が一気に上がるんですよね。。。

配線がぐちゃぐちゃになる。。。脳みそ沸騰中。

MP9943GQ 同期整流式ダウンコンバータ ~その2~

昨日の投稿で最終的に下の様な波形になった事を書きましたが、やはり納得いかないのです。
出力にスパイク状のノイズが見えるのはプローブの当たり方の問題ですが、正弦波っぽく揺れるリプルが大きすぎます。また、そもそもSW出力が一定の周期でないのも変ですよね。

CH1:(黄)がMP9943GQのSW出力。CH2:(青)がインダクタを通った後の最終的な出力。

SWのプローブは取り外し、出力だけを20mVレンジで拡大するとこんな感じで振幅400mV程度で揺れています。

改めてMP9943GQのデーターシートを見ると下の様な波形が載っていました。
出力が3.3Vだったり負荷電流が3Aだったりで自分のとは条件が違いますが、リプルは10mV以下の振幅に収まっているしSW出力も一定周期で変化しています。自分のはやっぱりおかしいですよね。

もう一度回路図を眺めながら・・・

ここでMP9943GQのFB端子にどんな電圧が入っているかを見ようとしてプローブを当てると出力リプルの振幅が20mV程度に減ってしまいました。FB端子からプローブを離すとまた400mVに増えます。

どうやらFB端子回りの問題っぽいです。
苦し紛れにFB端子とGND端子の間に12pFのコンデンサをつけると振幅20mV程度に収まりましたが、あまり対処療法的なのは嫌ですよね。

何が原因でしょうか?
5V出力に設定する為、R7,R8を68K/12Kに設定していますがデーターシートの推奨値は41.2K/7.68Kです。
まあこんな値の抵抗は持ってないし、あまり影響なさそうとは思いつつ39K/6.8Kに変更しましたが、予想通り変化なしでした。

フィードバックの経路にスイッチングノイズが載るんでしょうか?
次にR7,R8の分割抵抗をチップに近づける様、図の場所に移動すると・・・

納まりました!

よく見るとデーターシートにもFB端子回りの抵抗はできるだけチップの近くに取り付けろと書いてありましたね。

5) Place the T-type feedback resistor close to chip to ensure the trace which connects to FB pin as the short as possible.

拡大しても振幅10mV程度になっています。

SW出力もちゃんと一定周期な波形になっているし・・・

たぶん、今度はちゃんと動作していると思います。

MP9943GQ 同期整流式ダウンコンバータ

いきさつ

MP9943GQモノリシックパワー社のDC-DC スイッチングダウンコンバータ用ICで、最近のドローン用フライトコントローラーのBEC回路にはこのICがよく積まれています。
ほいほい堂本舗ではこれまでスイッチングコンバーター用ICMP2359DJ,MP1584ENを試してきましたが、今回MP9943GQも試してみます。なぜこのICを試したいかというと同期整流回路が内蔵されているのです。

同期整流回路はコンバーターの効率UPを目的として使われる事が多いのですが、フライトコントローラーにとってはそれよりもダイオードを省略できるので基板面積を節約できて嬉しいのです。

以前製作したHOIHOIフライトコントローラRev2にはMP1584ENを使った下の様な回路を載せていました。

MP1584ENの内部にはINとSWの間にスイッチング用MOS-FETが入っています。コイツがONの時はVBATからインダクタL1に電流を供給し、OFFの時はインダクタL1に貯めたエネルギーがダイオードD2を通して流れます。なのでD2には結構電流容量の大きなダイオードが必要なのです。
一方、同期整流の場合、外付けダイオードに代わってIC内にもう一つのMOS-FETが入っており、内部でタイミングを合わせてON/OFFしてくれるのです。

上述のHOIHOI-FC Rev2では写真の様な容量2Aのショットキーダイオードを載せていました。MP1584ENの規格上は3Aの能力がありますが、ダイオードが大きくなるので2Aタイプで済ませています。MP9943GQになるとこのダイオードが不要なのに加え、IC自体のパッケージサイズも3mm×3mmとコンパクトになっており、この点でも面積が節約できます

試してみる

という事でMP9943GQを動作させる実験を行います。
例によってジャンクのFC基板からICとインダクタ(10μH)を取り出しました。
(データーシートによるとAMGMとマーキングしてある内、AMGがMP9943GQを示すそうです。
最後のMはyearコードとなっていますがMは何年を示すのでしょうね?)

Ki-Cadで回路を書いて・・・

基板のパターンも書きます。今回基板は切削するので広めに部品を配置して・・・。

それでもこのまま我が家のCNCで加工するのは精度的に厳しいので一旦加工データーをDXFで保存し、jw-cadに読み込んで切削しやすい様に修正しました。

作った基板がこれ。
(配線間にサンハヤトのソルダーレジスト補修液を塗っていますがハンダを載せたい部分にも付着してイマイチなので後で除去しました)

そして一通り部品を載せたところ。。。

なおベタパターンを設けたかったので両面基板にしています。
裏面はこんな感じ。。。

実は片面基板を2枚張り合わせたナンチャッテ両面基板です。

動作させてみる

3mmx3mmのQFNを切削基板にハンダ付けするのに苦労し、何度か加熱し直してようやく動作しました。

5Vの出力端子に負荷として5Ω抵抗を接続したときの波形です。CH1(黄)がICのSW出力。CH2(青)が最終的なDCDC出力。
DCDC出力にスイッチングノイズが載っている様にみえますが、これはプローブの当たり方の影響で、この時はプローブのワニグチクリップでGNDを取っていました。

DCDC出力のみにして200mV/Divに拡大。
このプローブの取り方だとスパイク状のノイズが振幅800mV程度で出ている様に見えます。

そこでプローブの取り方を下の写真の様に最短にしてみます。
(写真右上に見えている白いカタマリは5Ωのセメント抵抗)

すると・・・

スパイク状のノイズはかなり納まりましたね。
でも振幅数十mVでグニャと揺れているのでSW端子と重ねてみると・・・

スイッチング周期と同期している様です。
因みに無負荷だと綺麗に収まっています。


どうでしょう?まあこんなものなんでしょうかね?

ESCを作ってみる~その3~

ESC自作実験の続きです。

回路

何はともあれ目標とする回路図を書いてみました。動作させてみてマズいところは修正していきます。

マイコンのマニュアルはSiLabsの公式ページからダウンロードしました。
 https://www.silabs.com/documents/public/reference-manuals/efm8bb2-rm.pdf
ドライバのマニュアルは良く分からないところからダウンロードしました。
 https://static.qingshow.net/fortiortech/file/1597746029372.pdf

回路をざっと説明すると次の通りです。

  • 制御用マイコン
    SiLabsのEFM8BB21F16G。この中のBLHeli_Sファームウェアが全体を制御します。
  • 出力パワーMOS-FET
    モーターのコイルに電流を流す為のNch MOS-FETで、手持ちの2SK2232を使用します。
    全てはこの6個のMOS-FETを狙い通りにON/OFFする事がESCの目的となります。
  • FET駆動用ゲートドライバ
    FORTIORのFD6288Q。パワーMOSのゲート駆動用ICです。ゲート駆動するのもそれなりのパワーがいるので電圧及び電流容量アップ、またH/L同時ONの防止等を行います。
  • ブートストラップ回路
    NchのパワーMOSを駆動するにはソース端子よりも10V程度高い電圧が必要です。H側FETがONしている時、ソースとドレインはほぼ同電位なので、結局電源よりも高い電圧が必要です。
    そこでL出力期間にコンデンサにチャージしておき、H出力期間に電源以上の電圧を取り出します。
  • 電気角検出回路
    ブラシレスモーターをセンサー(ホール素子等)を使わずに回すには、現在の回転角を検出する必要があります。このためコイル電圧を抵抗分割してマイコン内臓のコンパレーターで検出します。

ゲートドライバICにはパワーMOSと同じ電源電圧を入れているので2~4セル程度の電圧なら回せると思いますが、2SK2232のゲート・ソース間電圧が最大20Vなので6セルで回すとFETが壊れるかもしれません。
なお部品摘出元の市販ESCでは12Vのレギュレータを挟んでゲートドライバに入れてありました。

製作

で、作ったのがこれ。
パワーMOSは手元にあった2SK2232を6個使用しています。
マイコンとゲートドライバは先日作った基板に載せて、それをブレッドボードに挿しています。
モーターは軸が曲がったジャンク品を接続。
黄色いUSBケーブルを挿しているのはHOIHOI-FC Rev1。既にRev2があるので実機には載せないけど諸々の実験には便利に使っています(なにせ内部の回路が全て判っているので)。ここからDshot信号を発生させるのです。

動作

配線をミスってたりQFNのハンダ付けが上手くいってなかったりしましたが、何とか動作しました。
動作中の動画・・・

Bluejayを入れてみる

マイコンにSiLabs EFM8BB2を使ったESCではBluejayというファームウェアをインストールできます。(Bluejayの存在は最近知ったのですけど・・・)
BluejayはRPMtelemtryが使える等の機能強化がなされているのです。
インストールするにはブラウザから下記のサイトを開くとコンフィグレータが立上がります。
https://esc-configurator.com/
(Chromeで実行しました。ほかのブラウザは試していません。
スタンドアロン版もある様ですがメンテしないので非推奨と書かれていました。ドローンの場合ネットが繋がらない環境で使う事も多いので、その場合どうなんでしょうね?)

実行結果が下の画面です。BLHeliSuite同様、FC経由でConnectしてファームを書き換えました。
更にメロディーエディター機能もあるのでスタートアップのビープ音も変更してみました。

Bluejayに書換後、モーターが回らないので焦りましたが、原因はFCのプロトコル設定がPWMになっていました。BluejayはPWMのサポートは無くDshot専用なんですね。

Dshotに変更し、更にRPMtelemetryをONにした動画。BetaflightConfiguratorに回転数が表示されています。

という事で・・・

バラック状態ですがESCを作れる事が分かってきました。
この先ですが、最終的にはFCとESCを纏めて巷で言うAIO(All In One)基板を作るという野望があります。でもこれはかなり大変そうですね。Ki-cad上で基板設計は出来たとしてもチップ抵抗もこれまでより細かいサイズにする必要があるでしょうし、部品点数も多いので手作業での実装はたぶん無理。また基板も4層以上になるでしょうから値段も上がるし・・・
まずは4in1ESCを作るところからかな?

ESCを作ってみる~その2~

大晦日に基板が到着したので作業を続行します。

前回の投稿にジャンクESCからマイコン(EFM8BB21F16G)とドライバIC(FD6288Q)を摘出した事を書きました。これらのICを基板に載せ、ブレッドボード上であれこれ実験する予定です。

基板に搭載

今回はメタルマスクを作らなかったのでコピー用紙をレーザーカットしてクリームハンダを塗ります。

部品を載せて・・・

リフローしました。

チップ内蔵クロックを使用するので発振子も不要ですし、この後ピンヘッダと電源のコンデンサだけを取り付けました。

マイコンの動作確認

ではEFM8BB2マイコンのGNDとP05端子にフライトコントローラー(以下FC)を接続し、3.3Vの電源を入れます。
この状態でBLHeliSuiteを起動すると設定内容を読出せたので、マイコンは生きていますね(ジャンクから取出したので一応確認)。

次はマイコンに何か書き込んでみたいのですが、公式の書込み機(Toolstick)は持っていません。
調べたところEFM8BBxマイコンにプログラムを書き込むにはざっと以下の方法がある様です。

  • C2インターフェース経由での書込み。
    公式の書き込み機(Toolstick)はこのC2インターフェースに接続する様です。
  • ファクトリーブートローダー
    新品状態ではこのブートローダーが書かれていてUARTから書ける様ですが、今回ESCから摘出したマイコンには下記のBLHeliブートローダーが上書きされているので、この方法は使えません。
  • BLHeliブートローダー
    ESCを購入した時点でファームウェアと共に書かれているブートローダーで、FCからの信号端子をそのまま使ってファームを書き換える事ができます。
    普段FC経由でファームをアップデートする時はこのブートローダーが動作しています。

という事でまずはBLHeliブートローダーからのファーム書換えをやってみます。
と言っても普段やっている通りで、FCを接続すると問題なく書換えができました。

しかし将来的に新品マイコンを買ってきた場合にはこの方法は使えないのでC2インターフェース経由でも読書き可能な事を確認したいですね。公式のマニュアルによると開発ツールのSimplicityStudioから書込み機(Toolstick)を使って接続する様ですが、上記の通りToolstickは持っていません。

そこで見つけたのはPCでBLHeliSuiteを立上げておいてArduino経由でC2インターフェースに接続する方法。 この方法ならBLHeliのファームを壊して文鎮化した場合でも書き直せる様です。

BLHeliSuiteからArduino経由C2-I/Fでファームを書いてみる。

ざっと流れを言うと、BLHeliSuiteを起動し、まずArduinoにファームを書込むことでArduinoがC2インターフェースでの書込み機に変身します。(この時ArduinoIDE等は使わず、BLHeliSuiteから直接書くことができます。)
その後Arduinoとマイコンを接続してマイコンにファームを書込む流れとなります。

ではまずPC上でBLHeliSuiteを実行し、「Make interfaces」タブをクリックすると下の様な画面になりました。

次にPCのUSBポートにArduino(今回NANOを使用)を接続しておき、画面右のボード選択でArduinoNANOを選択、画面最下部でCOMポート番号を選んだら右下の「Arduino 4way-interface」をクリックします。

ここで3つのファームから1つを選ぶ画面が現れたので4wArduinoNano_16_PB3PB4v20002.hexを選択しました。
(ここでPB3PB4とかPD3PD2というのはArduinoのどの端子をC2インターフェースに接続するかの違いだと思います。MULTIというのは良く分かりませんが複数のESCを接続できるんでしょうね?)

あとは「開く」とか「OK」(だったかな?)とかを適当に押すとArduinoにファームが書き込まれます。
これでArduinoが書込み機となりました。

次にArduinoとEFM8BB2マイコンの間を接続して電源を入れます。接続は下の3本です。

 <Arduino>     <EFM8BB2>
 PB3又はD11 ⇔  C2CK
 PB4又はD12 ⇔  C2D
 GND        ⇔  GND

BLHelisuiteのメニュー「Select ATMEL/SiLABS Interface」から、B SiLABS C2(4way-if)を選択します。

あとは普段通り。「Connect」→「Flash BLHeli」とボタンを押してファームを選択すると書込みができました。

Lチカプログラムを書いてみる。

上記の方法で当面の目的は叶えられました。でも折角なので前回ビルドしたLチカサンプルプログラムを書込んでみようと思います・・・が、BLHelisuiteでLチカプログラムを書こうとするとエラーが出てきました。「変なものを書いているよ」という警告ですがキャンセルボタンしか無いです。
どうやらなんでも書き込めるわけではない様ですね。

そこで更に調べていくとow-Silprogというのを発見しました。こちらもBLHelisuiteと同じ様にArduino経由で読み書きするツールです(どうやらBLHelisuiteのC2接続機能のベースになったツールっぽい)。
こちらはAvrBurnToor_V101.exeを使ってArduinoにファームを書込みますが、そこからC2インターフェースに接続するので基本的にやっている事は同じです(但しArduinoに書いたファームはBLHelisuiteとは互換性はない様でした)。
このサイトの説明によるとWindows上で動くGUIツールを使った読み書きもできる様ですが、このツールの存在場所を見つけられませんでした。が、コマンドラインから使う為の命令一覧が載っているので、こちらは実行できました。
この方法でマイコンFLASH内のアドレスを指定して内容を読出す事ができます。実はジャンクから摘出したマイコンではファクトリーブートローダーは上書きされていると先ほど書いたのはこれで読んだ結果からです。

で、bwというコマンドではインテルHEX形式を指定して書込めるという事なので、下の様に1行ずつ書き込んでいきました(Lチカプログラムは10行もないのでコピペで実施した)。

これでLチカも動作していますね。
ならばファクトリーブートローダーを書き戻す事も出来そうですがキリが無いので一旦止めて、本来の目的であるESCを動かす事を先に進めたいと思います。

つづく・・・