無料ブログはココログ

技術情報

2017年11月11日 (土)

Elecrowの長孔加工

ミント缶DCCコントローラの基板が入荷

  Elecrowからようやく基板が届きました。Desktop Stationさんから引き継いだガーバーデータで追加発注したので全く同じ基板が出来る筈でしたが、電源コネクタのCN1に問題が。

Long_hole

ガーバーファイルに画像を添付して『長孔にしてね』とコメントを入れたのが災いしたのか、完全に無視されました。質問メールも、出荷連絡メールも無く突然宅配便が到着です。余計な作業を省き合理化を進めている結果でしょうか。それとも単に運が悪いだけ(!?)。ガーバーデータに忠実なので、なんら問題無い加工ですけど、どうしよう...

  幸いな事に秋月電子通商でユニバーサル基板取付用コネクタ[C-09408]を見つけたので、無事頒布再開できます。
次回から長孔は外形線で描く事にします。

2017年3月24日 (金)

BM5210 モータードライバーその2

モータードライバーテスト続編です。

  スマイルデコーダR4初期評価バージョンで、整流ダイオードとモータードライバーを装換して単体のボードで試してみました。朝のテストでは双方向で走行OKでした。ショットキーに交換した成果か、TM-ED02の低速走行もOKで、BD6231と変らない動きになりました

  ですが、夕刻から長時間試験を開始しようと電源ONしたら、こんどは正転が走行しません。BM5210のユーザマニュアルではOUT1=HIGH、OUT2=PWMの筈が両出力とも12VのままでPWMが出ません。もちろん入力は異常なしです。

  ひょっとして、接続しっぱなしの非対称DCC実験用ダイオードボードが悪さして、PWMオンオフ時にダイオードのターンオフタイムの違いから、サージが起きるのではと思いまして、非対称DCC側をPWMにしてテスト継続してます。30分ほど経過しましたが、今のところ正常です。

温度測定

経過時間 室温 BM5210 三端子 AVR
1:00 20.1℃ 30.2℃ 33.7℃ 34.1℃
1:30 19.6℃ 31.9℃ 34.3℃ 33.6℃

  スタート時の表面温度は測り忘れましたが、開始30分後の室温は23℃でした。
Bトレは電流値が低いので、他のチップでモータードライバーが煽られてる感があります。連続一時間を過ぎたあたりで室温が急に下がり始めてチップ温度の上昇が鈍くなり、測定を中断しました。表面積が大きいAVRは放熱効率が高いのでしょうか。恒温槽なんか持ってないので、夏場に試したいです。
2時間を経過しましたが、非対称DCC側のPWMで正常に走り続けています。

  モータードライバー出力をトラックまで引っ張っているので、間違って何処かショートさせたかもしれませんので、コインテストしてみました。OUT1、OUT2両端とも2V程度にダウン(壊れた?)。いや、ミント缶の電源再投入で復活です。でも反対方向はやっぱりオフのまま。
  不思議です。2度目のコインテストで今度は即復活。3度、4度もOK。1度目はACアダプタかミント缶側(?)、いや7セグは点いていた筈。
  ほんとに壊れるといやなので、これで止めときます。

2017年3月23日 (木)

BM5210 モータードライバー

Yaasanさんから新しいモータードライバーが届きました。以下そのテスト経過です。

1. テスト全景

Layout

2. テスト条件

  • スマイルデコーダのBD6231を外し、外付け基板にBM5210を実装
  • 4月の鉄道模型市で展示する予定のスーパーミニカーブレールをこたつの上に乗せてテスト走行
  • もらい物の温度計と、芯線を捩じっただけのイカサマ熱電対でBM5210の表面温度を測定(あくまでも相対値目的)

3. 結果いや経過...

  • 開始時温度22.2℃
  • 電流約100mAと、低めの気温のためか、あまり温度上昇せず、30分後で24.8℃
  • デコーダ側のAVRが25.8℃、整流ダイオード(接合ダイオードのまま)は26.9℃(触ると暖かいのでもっと高いはず)
  • オンボードでなければ測定の意味が薄い様なので、後日スマイルデコーダをショットキーに換え、BMを実装し直して再度測定の予定

4. ドライバー出力両端波形

Motor_wave

  • 上左:KATOBトレ用小型動力ユニット正転 -> 正常
  • 上右:逆転 -> モーターオンせず。初期不良か?
  • 下左:バンダイ動力ユニット5 -> ミント缶のツマミ12時以上でノッキング発進
  • 右下:トミーテックTM-ED02 -> 同上
  • BMは低速走行せず、DB6231は低速走行可能だが中速以上ではやはりノッキング
  • 波形をよく見ると、オフ時は僅かにマイナス側に触れている、やはり逆起電力を吸収しきれていないみたい

  YaasanさんとNuckyさんは良好な結果を得ています。モータ負荷による影響が大きいらしい事は、BD6231の時から続いている感想です。A4953のフリーモードでは全動力車が全く走行しませんでした。走行可能なのは今のところA4953のオン - ブレーキモードのみです。
  ディスクリートで実装した既存メーカのデコーダに頼らざるを得ないのが現状で、プログラマブルなスマイルデコーダの恩恵を受けられず、残念な状況が継続しています。
  某国内メーカのデコーダはモーター端子のショートで一瞬にして昇天しました。過電流保護の反応が鈍いのか、そもそも保護回路が無いのでしょうか。
  そんな訳で、残念ながら鉄道模型市でのスマイルスリムデコーダ出品を見合わせ、センサーレールのみとします。私のデコーダ探しの旅はまだまだ続きます。

2017年2月16日 (木)

PWMモード

DCC電子工作連合さんで、モータードライバーの動作が話題です。私も早急にICの選択を決断したいので、PWM動作モードの調査を行いました。

先ずは、ドライバーICのGNDと出力端子電圧です。

A49out_db62out
トリガーポイントがPWM波と同期していないので、左はPWMオフ直後からのトレースです。一瞬0Vに落ちた後、モータの逆起電力が観察されます。強制的に手で回してみて、この間の電圧が変化する事を確認しました。On-Freeモードで動いているものと思われます。メーカーのアプリケーションノートには IN1=IN2=0で「フリー/1ms後スタンバイモード」と書かれていました。右はPWMオンで0V、オフで12Vです。HiSidePWMモードで動いているらしい事がうかがい知れます。

次に、モータ両端電圧を観察しました。

A49_bd62
左はモータが、自身の逆起電力をもろに受けています。急峻な負のパルスは、内部ゲートの何処のラッチアップを示しているようで心配です。
右はPWMオフの間LowSideはオンのまま、反対側LowSideFETのボディーダイオードを介して逆起電力を吸収しているものと思われますが、完全には吸収しきれていないようです。手元のモータでは低速時のレスポンスがよくありません。

On-Freeモードでは、逆起電力の影響でリニアな制御が出来ないと言われています。
ボディーダイオードでも不十分なら、On-Breakモードで、逆起電力を強制的に短絡してしまえと言う事で、SmileDecoderスケッチのAnalogWrite()箇所を書き変えてみました。

A4953_onbreak_7
PWMオフの間、モータ両端を12Vに固定しますので、モータ両端間の電圧は0Vです。逆起電力は何処に吸収されるのでしょうか。モータ内で熱となるなら、ICだけでなくモータの発熱も観察する必要がありそうです。近々に測定したいと思います。

秋月さんのIR4427など、安価なFETドライバーを使う選択肢もありますが、HiZモードが無いので同じくOn-Breakで動く事になります。[ へのへのもへじ ] さんが指摘されてますね。
また、短絡保護機能があるのか心配です。A4953の短絡テストでは、それなりに発熱しますが、壊れることはありませんでした。

2017年1月29日 (日)

ATtiny841のクロック

小型化と手ハンダ可能なチップとして、ATtiny841を入手しましたが、デバッグ用のシリアル出力が文字化けです。Arduino forum を検索したら、なんとVcc=5Vでは内部クロックが8.1MHzになってしまうそうです。
XTALを外付けすると、INT0が使えません。Drazzy core はピンチェンジ割り込みをサポートしなさそうなので、自前で実装する事にしました。
Void Setup()

  ...
   // Enable Pin Change Interrupts
    GIMSK = _BV(PCIE0);
    PCMSK0 = _BV(PCINT0);
    PCMSK1 = 0;
    sei();
}

ISR(PCINT0_vect)
{
    // NmraDcc内のINT0割り込み処理を記述
}
ところで、ATtinyの Arduino ピンアサインは、使用するコアによってCW配置とCCW配置があるんですね。スケッチの作成でちょっと混乱しました。