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を動かす事を先に進めたいと思います。

つづく・・・

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

前からやってみたかったESCの製作をしてみました。
以前FCを作ったので、加えてESCも作れるとドローンの主要パーツが揃う事になります。(あ、モーターは別ですね)

※略語の確認
 FC :フライトコントローラー
     マイコン基板にセンサーが載ったやつ。ドローンを制御する。
 ESC:エレクトリック・スピード・コントローラー
     ブラシレスモーターを回すドライバ。

ドローン系ESCの種類

今回もESCのファームウェアを1から作るような根性はないのでオープンソースの優秀なファームを使う予定です。
レース系ドローンでよく使われるESC用ファームにはBLHeliというのがあり、更にBLHeli内の分類、その他最近登場したファームも含めて整理してみました。

  • BLHeli
    AtmelやSiLabsのマイコンが対象ですがちょっと古いタイプでレースではあまり使われません。
  • BLHeli_S
    マニュアルによるとBLHeliのnext generationという事です。_Sが何を意味するのかは判りません。SiLabs製マイコンのみ対象でAtmelは対象外みたいですね。
  • BLHeli_32
    STM32マイコンを使った32bit版です。
    RPM telemetry(回転数をFCに送信する機能)がありFC側でRPMフィルターという高度な処理ができるのですが、上の二つと違ってソースが公開されてないっぽいです。
  • bluejay
    これ最近知ったのですがBLHeli_Sの派生版で、SiLabsのマイコンが対象ですがRPM telemetryが使えます。
  • AM32
    これも先ほど知ったのですがSTM32を使ったオープンソースのファームウェアらしいです。

今回製作するESCはBLHeli_Sを対象にします。そして上手くいけば後にbluejayも試そうと思っています。

SiLabs製マイコンについて

という事でSiLabsのマイコンを使う事になりますが、このメーカーって馴染みが無いので調べてみました。
BLHeli_SでサポートしているのはEFM8BBxという8bitマイコンで、このCPUコアはインテル8051の命令セットとコンパチです。8051って随分昔に使った事があり懐かしいですね。たしか8080に周辺回路をつけてワンチップマイコン化した様なやつだったと思います。でもEFM8BBxは処理速度が大幅に向上しているそうです。
ところでBLHeli_Sのソースはアセンブラで書かれているんですね。80のアセンブラなんてすっかり忘れたなー。

BLHeli_Sのビルド

EFM8BBxの開発環境はSimplicity StudioというのがSiLabsのサイトからダウンロードできます。
そこで絶対必要というわけではない(ビルド済HEXファイルをダウンロードすればよいので)ですがBLHeli_Sをビルドしてみたいと思います。
Simplicity StudioにはWindows上で動くGUIな開発環境が付属していますがBLHeli_Sのビルドはコマンドラインからバッチファイルを実行します。
で、実行してみたところC8051開発ツールが評価版なのでサイズの制限でビルドできないっぽいメッセージが出ました。えー、お金いるの? どうやら内部で使っているKeliというコンパイラ/アセンブラのライセンスをARMから買うっぽいですね。
まぁBLHeli_Sのビルドは絶対ではないので一旦置いといて付属のサンプルからLチカプログラムを実行したところ、やはり同じメッセージが出て止まりました。
でもSimplicity Studioを使うならKeliのラインセンスは無料でもらえっぽいメッセージが出ているので表示に従ってラインセンスをもらうとビルドできてしまいました。
という事はBLHeli_Sもビルドできる様になったのかな・・・もう一度バッチを実行してみると確かにこちらも最後まで進み、無事HEXファイルが出来ていました。

ハードウェアの準備

何はともあれ実行してみる為のハードウェアが必要です。
EFM8BBxの評価ボードを調べると市販はされていますが5000円以上します。でもよく考えるとこのマイコンは沢山持っていますよね。
こんな感じで・・・

ジャンクのESC群。ここから摘出すればよいのです。ついでにパワーMOS FETをドライブするドライバIC(FORTIOR FD6288Q)も摘出できます。
なおドライバICのFD6288QはH側にN-MOSを使う場合に必要な電源電圧より数V高い電圧を発生してくれたり、H側とL側が同時にONして貫通電流でFETを壊す事故を回避してくれます。

という事で摘出しました。
・マイコン:EFM8BB21F16G x3個
・ドライバ:FD6288Q x3個

マイコンとドライバ、どちらも0.5mmピッチのQFNパッケージなのでそのままでは配線し辛く、引き出し基板が必要です。Ki-Cadで描いてFutionPCBに発注しました(送料込みで$16.4)。

引き出し基板が届いたら色々試していきたいと思います。

SUZUKIエブリィのECU

知り合いが自動車整備工場をやっているのですが、ECUが壊れて交換パーツが手に入らず、廃車の危機になっている車があるのでダメ元で見てくれないかと言われました。
見ても解るかどうか不明ですが、「ダメ元」で良いならと預かってみました。

※ここで言うECUとはエンジン・コントロール・ユニットの略で、車のエンジンを色々と制御する、マイコン搭載のモジュールです。

症状としては「吸気の流量を調整するバルブがあって、それを制御するモーターが上手く回らないためアイドリングが安定せずにエンストする」という事です。
話によるとモーターのコイルが短絡状態になった為にECUも故障し、交換用モーターは手に入ったけどECUが手に入らないとの事。

問題のECU

で、これがそのECU。
このECU、プラスチックケースの蓋が接着されていて、分解する前提には作られていません(まあECUなんて大体そんなもんだとは思いますが)。
という事でこちらの面は受け取った時点で強行突破されていました。

そして反対側の面。こちらは開けられていなかったのですが中を見たいのでプラスチックをノコギリで切り取りました。

調べる

これだけ見ても何が何だかさっぱりわかりませんが、整備工場ではサービス情報をダウンロードできるそうなのでECU回りの配線図を付けてもらいました。
流石にECU内部の回路図まではありませんが、どの端子がどこにつながるかという手掛かりがあると少しは進められそうです。

そして関係する部分は下図のあたり。真ん中付近のC09というのが件のモーター、図の一番下に「EPI&A/Cコントローラ」と書いてある囲みがECUです。


しかしこのモーターの配線は普通のモーターっぽくないですが、何処かで見た様な配線ですね・・・ユニポーラのステッピングモーター?
コイルの上側は12Vに接続しているので、予想通りステッピングモーターだったら下側はトランジスタ経由でGNDに落とす筈。。。たぶんこんな感じで。

そこでECUの端子番号11~14から基板の中を辿っていくとそれぞれトランジスタらしき部品につながっています。この部品には「V0 1G」とマーキングされていてネットで探しても型番まではたどり着けませんでした。しかしテスターで当たるとやはりバイポーラトランジスタの様です。なのでやはり上図通りの可能性が濃厚に・・・

このトランジスタの端子配置は下図の様になっています(テスターで当たった結果から)。
パッケージは寸法的にSOT-89,SC-62,MPT3あたりだと思います。
既に手元にないので今確認はできませんがB-E間に抵抗が入っていたと思うので秋月電子にあるRN5006が近いんじゃないかと思います。

そして基板内の4つのトランジスタにはQ141~Q144のシルク表示が書いてあります。
この内Q141だけB-E間がオープン状態なので少なくともこのQ141トランジスタは壊れている様です。

修理

そこでこのトランジスタを交換すべく上記のRN5006を買おうかとも思いましたが実はもう一つ同じECUがあるのです。それが下の写真の物。。。

真っ黒コゲでしょ。中古のECUが一つだけ見つかり交換したら煙が出てこの状態になったそうです。
暫くは動作していたので車検を終えてその帰り道に煙が出たとか。ECUだけで済んだのが不幸中の幸いですね。
で、この基板内に同じトランジスタが数か所使われているので比較的被害を免れているトランジスタを取り外しました。これをテスターで当たった感触は生きている様なので、まずはこれと交換してみます。

ではコゲていない方のECUに戻り、ヒートガンで温めてQ141トランジスタを取り外し・・・


先ほど黒コゲECUから摘出したトランジスタをはんだ付けしました。

この状態で返して試してもらいます。

結果

数日後の連絡によると正常動作したとの事で、防水処理をやり直して使ってみるそうです。
今回は出力端子に近くて比較的分かりやすい箇所でしたが、もし修理不能で交換ユニットも見つからなかったら廃車の危機ですよね。
部品を廃版にするならメーカーが中身を公開してくれたらいいんですけど(メーカー的には新車を売りたいのもわかりますが)。

ハンズマン ガラクタ市2023秋

今年のハンズマン秋のガラクタ市ですがコロナ前だと大体10月末に開催されていたのが、今年は中々始まらないのでもう無いのかと思っていたら11月23日(木)から始まりました。
なお11月23日は勤労感謝の日なので一家そろって出かけました。

朝6時40分頃に到着すると駐車スペースはまだ十分にありましたが入場行列は建物の周りを半周近く取り巻いていました。

そして7時にオープン。

で、今回あまり多くは買っていないのですが、下の写真が買ったものです。

今回お買い得だったのは左上のごついハンマーが298円、タップホルダー、ダイスホルダーはそれぞれ98円。9mmのスパナ/ソケットレンチも98円(9mmって出番少ないですが)。写真の物合計で1576円。

そしていつも通り後日再び訪れると・・・

ダイスが1個298円×5サイズで合計1490円。
まあタップに比べてダイスの出番は少ないですけどモーションフライトシミュレータの時みたいに普通に買うと1個1500円くらいするので買っておきます。

今回の開催中にもう一回ぐらい行きたいと思います。