google-site-verification: google3bd66dd162ef54c7.html

USBシリアル変換アダプタの整理と動作確認

 ミニオシロ(DSO-Shell) のファームの新しいバージョン(V110)が出たようです。うちのDSO-Shell のバージョンはV055で、その後いくつかの新しいバージョンが出ていたのですが、面倒なのでバージョンアップしないでいました。今回のV110はいろいろと機能追加があるようなので、そろそろバージョンアップしたいと思っています。

 ところで、バージョンアップにはUSBシリアル変換アダプタを使いますが、変な物を使ってバージョンアップに失敗したら困ります。アダプタはいくつか持っていますが、いつの間にか使えなくなったものもあります。

 そんなことで、良い機会なので手持ちのUSBシリアル変換アダプタの動作確認を行ってみました。

【2017/12/29追記】
 波形の正論理と負論理を間違えていたので、該当部分を修正しました。

▼手持ちのUSBシリアル変換アダプタ (らしきものを含む)
USBシリアルアダプタ
 いつの間にか増えていて6個もありました。USBシリアル変換付きのマイコンもありますが、これらの動作確認を番号順に行っていきます。

 確認にはWindows10 の Treatermを使い、ループバックテストでデーターの疎通を確認すると共に、ポートの信号をオシロ(DSO-Shell) で確認しました。以下に出てくる波形写真は a のキャラクタを送った場合の波形です。

◆ (1) RS232C/USB変換アダプタ
USB/RS232 (FT232RL+ADM213)
(ミスったのでこの写真だけ小さいです)

USB/RS232Cケース
 紙で作ったケースに入れています。

▼波形 (15200bpsで a を送信)
±10V、正論理、115200bps
 RS232Cなので信号はGNDの上下をスイングしていて、このアダプタでは±10Vの正論理で出力されています。RS232Cの規格は負論理で、無信号(スペース)時は正の電圧を出すことになっていたはずなので、これは標準の波形とは極性が反転しています。何かの事情でこういう設定にしたのだと思いますが、理由は忘れてしまいました。
 ともかくこのアダプタは、信号の極性はともかくソフト的には正常に動いているようです。ただ、今後RS232Cを使う可能性はかなり低いと思います。


 RS232Cなので信号はGNDの上下をスイングしていて、±10Vの振幅があります。待機時の電圧はマイナスで、データー送信時は正負を繰り返すパターンになっています。もう少し詳しく言うと、データーの開始合図のスタートビットでプラスになり、その後は負論理でデーターが送られます。最後のストップビットで信号はマイナスに戻り、1文字分の送信が終わります。
 一見すると、マイナスだった波形がプラスに振れているので、正論理のように見えます。これはデーターの前後にスタートとストップビットが入っているためで、データーの本体(ASCIIコード)は負論理で送信されています。

 ということで、このアダプタは正常に動いているようです。ただ、今後RS232Cを使う可能性はかなり低いと思います。

◆ (2) FT232RL (aitendo、6ピン、Deek-Robot)
FT232RL (aitendo、6ピン、Deek-Robot)
 これが最近一番使っているアダプタで、aitendoで500円くらいで買った物です。

▼波形 (9600bpsで a を送信)
3.3V、負論理
 3.3Vの負論理になっています。 待機時はハイレベル(+3.3V)になっていて、データーが来ると先頭にスタートビットがローレベル(0V)で入り、その後は正論理でデーターの本体が送られ、最後のストップビットでハイレベル(+3.3V)に戻る波形になっています。
 波形だけ見ると、待機時はハイレベル(+3.3V)なので、負論理の信号と勘違いしそうです。でも、データー本体は正論理で送信されているので注意が必要です。ただ、回路(ハード)のことだけ考える場合は、負論理の信号として扱って問題無いはずです。
 あと、このアダプタはスイッチを切り替えれば5Vにもなるので便利です。もちろんループバックテストもOKです。ということでこのアダプタは問題無く使えます。

◆ ③ PL-2303HX (aitendo D-SUN)
PL-2303HX(aitendo D-SUN)
 以前は便利に使っていたのですが、Windows10 にしてしばらく経ったら動かなくなってしまいました。その時はドライバの差し替えで動くようになったのですが、その後いつの間にか動かなくなっていました。

 今回再確認したのですが、やはり動きません。たぶんWindows10 のアップデートでドライバが差し替えられたのだと思います。ドライバーの修正をすれば使えるようになると思いますが、いつまた使えなくなるか判りません。これでは安心して使えないので、このアダプタは使わないことにします。

◆ (4) トラ技付録 (LPC1114 + PL2303SA)
トラ技付録、LPC1114
 トラ技の2012年11月号の付録の基板を組み立てた物です。本来は32ビットのARMのCPU基板ですが、USBシリアルインターフェイスチップのPL2303SAを実装してあるので、生のUSBシリアルアダプタとしても使えるかと思いました。しかしその方法が判らないです。ということでこれは戦力外です。

◆ (5) トラ技付録 (ARMライター)
トラ技付録

トラ技付録(拡大)
 これもマイコン基板で、トラ技の2014年3月号の付録で、USBシリアル変換のファームを書き込んだ状態になっています。以前動かしたときはWindows7 だったので今でも動くか心配だったのですが、Windows10 でもちゃんと動きました。

負論理、3.3V
 3.3V、負論理 正論理で送信されていていて問題ありません。

 この基板にはハードのハンドシェイクライン(DTRなど)が無いかもしれないので、用途によっては使えないかも知れません。でも、データーを無手順で読み書きするような使い方なら問題無く使えるはずです。

◆ (6) Arduino UNO
Arduino UNO R3
 これはUSBシリアルアダプタではないだろう、と言われそうです。でもCPUのチップ(ATmega328PU)を抜いてしまえばUSBシリアル変換アダプタとして使えます。(抜かないでCPUのピンを入力にアサインする手もあります)

 注意が必要なのは入出力の方向です。基板のシルク表示で RX(Pin0) となっているピンはCPUチップの入力なので、USBシリアル変換チップの出力が接続されています(確か1kΩの抵抗入り)。TX(pin1) はその逆です。こういうことを理解していれば、USBシリアル変換アダプタとして使うことが出来ます。これ、何か困った時の解決策になるかも知れません。

▼波形
5V、負論理
 Arduino UNO なので信号レベルは 5Vです。

◆オシロによる波形観察
 今回の動作確認ではミニオシロ(DSO-Shell)で波形確認を行いました。キーボードを押した瞬間にシリアルポートに流れるような波形を観察するには、オシロを正しく設定しないといけません。特にトリガの設定(モード、レベル、極性)が重要です。

▼波形例 ( a を送信した時の波形です)
3.3V、負論理、115200bps
 波形は負論理ぽいですが、データーは正論理になっています。

 ところで、この写真の波形の横軸をもっと拡大したいところですが、DSO-Shellの V055のファームでは 50μs/divまでしかトリガが掛からないので、そうはいきません。ちなみにオシロのレンジとしては20と10μs/divまであります。V110のファームを入れるとそのレンジでもトリガがかかるようになるらしいので、ぜひともV110のファームを入れたいです。

◆まとめ
 手持ちのUSBシリアル変換アダプタ(と思えるような物)をテストしてみました。一番汎用的に使えるのは(2)だけで、もしこれが壊れると困ったことになりそうです。秋葉原に行った時にもう一つ調達しておこうかと思います。あるいは中華マーケットで買うかです。

 本文中にも書きましたが、見掛けは負論理の波形でも、データー本体(ASCIIコード)は正論理で送信されているので注意が必要です。論理が逆に見えるのは、データーの前後にスタートビットとストップビットが付加されているためです。

 こういう確認を行う時にオシロを使うと確実です。今回のような間歇的にしか発生しない波形をアナログオシロで見るのはかなり難しいのですが、デジタルオシロなら簡単に記録出来ます。でも、デジタルオシロを正しく設定していないと、波形が変化したことすら検出出来ない場合があるので、こちらも注意が必要です。そんなことで、測定器はその動作原理を良く理解して使う必要があります。そういうトレーニングを行うのに、シリアルポートの波形観察は格好の教材だと思います。

RTCのバッテリーバックアップ回路

 マイコン工作で正確な時刻が必要な時に、リアルタイムクロック(RTC)は欠かせません。メイン電源が落ちていても時計を動かし続けるために、RTCの電源は電池でバックアップしますが、この回路の部品の選定について、電気の迷宮のFriendship 7さんが、バッテリーバックアップ回路のDiとRを厳密に選定というタイトルで詳しい解説記事を書かれています。

▼バッテリーバックアップに使うコイン電池とダイオード
コイン電池とダイオード
(この写真の電池はCR2025ですが、記事で使った電池はCR2032です)

 バッテリーバックアップ回路は、ダイオードで主電源と電池を切り替える方法が簡単です。これまで私はあまり深く考えないでショットキーバリアダイオード(SBD)を使っていましたが、Friendship 7さんの記事によると小信号用のスイッチングダイオードの方が良いそうです。

 実は2ケ月前にソーラータイマースイッチを作ったのですが、その時はSBDを使いました。良い機会なので、そのハードを使ってダイオードの違いで電池の充放電電流がどのように変わるか実測で確認することにしました。

◆測定準備
 測定する電流は10nAオーダーと微小です。テスターのテスト棒を手に持ってプロービングなどすると人体からの誘導などの影響でまともに測ることは出来ない可能性が高いです。とは言っても回路を切断して測定用の線を引っ張り出すのは面倒です。ということで、測定用に簡単な冶具を作りました。

▼電池電流測定アダプタ
電池電流測定アダプタ
 PETのシートの裏表に銅箔テープを貼り、そこに測定用のツイストペア線を接続しました。

▼使い方
電池に流れる電流測定
 電池ホルダーに入っている電池の上に測定アダプタを差し込んで電池電流を測ります。

▼電流計
バックアップ電流測定
 DMM(アドバンテスト TR6846)の電流レンジで測定しました。この写真は0.24μA(240nA)を表示中。このレベルの電流では配線を少し触っただけで値が変わるので、電流計のゼロ調(NULLセット)を頻繁に行う必要があります。なお、この写真の状態が最高感度で分解能は0.01μAですが、もうちょっと分解能の高い測定器が欲しいところです。

▼測定回路
RTCのバッテリーバックアップ回路図
 RTC-8564NBのバッテリーバックアップ関係の部分を切り出した回路図です。

◆測定結果
1) D1,D2にショットキーバリアダイオード(BAT43)を使った場合
 ・電源ON 時: Vcpu=5.19V, Vrtc=5.10V, Vbat=3.24V, iBat= -60nA
 ・電源OFF時: Vcpu=0.41V, Vrtc=3.16V, Vbat=3.25V, iBat= 240nA

2) D1,D2にスイッチングダイオード(1S4148)を使った場合
 ・電源ON 時: Vcpu=5.19V, Vrtc=4.95V, Vbat=3.25V, iBat= -10~0nA(ほぼゼロ)
 ・電源OFF時: Vcpu=0.40V, Vrtc=3.01V, Vbat=3.25V, iBat= 210nA

◆考察
・電池寿命
 電源OFF時の電池からの流れ出し電流は、BAT43を使った場合のiBat=240nAに対し1S4148を使った場合はiBat=210nAと30nA減っています。これはスイッチングダイオードにすることで、D1のリーク電流が減ったためだと思われます。なお、リーク電流が減ればその分だけ電池寿命が延びます。
 ちなみに、CR2032の容量が220mAhあるとして、BAT43を使った場合の電池寿命は 220/0.00024 = 917000h = 104年 で、全然余裕です。

・電池の充電電流
 電源ON時のiBatはBAT43を使った場合は-60nA(マイナスなので充電)です。これはSBDの逆リーク電流が大きいために電池が充電されていることになります。

 実はこうなるのは予想していて、充電されれば電池の消耗分の補給になるのでかえって好都合ではないかと思っていました。ところが、電池の充電量はライフを通じて電池の電力量の2%以内(1%、3%というSpec.もある)に抑えないといけないというスペックがあることを見逃していました。このルールを適用すると安全な期間は、(220 * 0.02)/0.00006 = 73333h = 8.4年となります。まあOKなんでしょうが、ちょっとマージンが足らない感じです。
 これが1S4148を使った場合は 充電電流は5nA程度なので、安全期間は10倍以上に伸びて全く問題無い領域になります。

・Vcpu と Vrtcの電位差
 実はこれが一番気になっていました、回路図のD1の部分です。このようにダイオードを一つ入れると普通は電圧が0.6V下がると考えます。つまりVrtc はVcpu より0.6V下がります。

 データーシートによるとRTCの入力信号(SCLやSDA)レベルはRTCの電源電圧 +0.5V までしか許容されません。ところが、CPUの電源電圧は0.6V高いのでハイレベルの信号は許容範囲を0.1V上回ることになります。たった0.1Vですが、絶対最大定格なのでちょっとでも上回ることは許されません。
 そんなことを考えて、私はD1に電圧降下が0.3Vで済むショットキーバリアダイオード使っていました。

 今回の測定結果を見ると、VcpuとVrtcの差は予想よりずっと小さくて、1S4148を使った時に0.24Vしかありません(BAT43の場合は0.09V)。これは電流が極めて少ないので、ダイオードの電圧降下も小さくて済んでいるということだと思います。これなら+0.5Vというスペックの範囲内なので安全です。

◆結論
・RTC-8564NBのバッテリーバックアップ回路に使うダイオードは、シリコンのスイッチングダイオードを使うのが正解です。SBDよりスイッチングダイオードの方が値段が安いのでSBDを使う理由は無いでしょう。

・もっと新しい設計のRTCはたぶん消費電流がもっと減っているでしょうから、この結論はたぶん変わらない気がします。

・D2がショートした場合の電池への充電電流を制限するために、抵抗を入れた方が良いそうです。アマチュアの工作なら省略してもかまわない気がしますが、判断はおまかせします。

 最後に、この件について詳しい解説記事を書いた下さった Frendship 7 さんに感謝します。とても勉強になりました。

100円ショップのバッテリーチェッカーをデジタル表示に改造

 前回の記事の続きです。100円ショップの電池チェッカーをエアーバリアブルさんの記事の真似をしてデジタル表示に改造しました。なお、今回の記事はほとんどパクリで私のオリジナリティはほとんどありません。というこで、改造事例の一つという感じで見て頂ければと思います。また、そういうことなので回路図は掲載しません。

 先に、改造後のチェッカーを使っている時の写真です。

▼完成したデジタル電池チェッカー
デジタル電池チェッカー
 オリジナルはアナログメーターですが、デジタル電圧計と交換しました。電池電圧は 1.46V と表示しています。

▼デジタル電圧計
3線式に改造
 これは、以前買っておいた秋月の、小型2線式LEDデジタル電圧計です。他にもっと安くて小型の物があるので、お好みで選べば良いと思います。

 そのままでは2線式になっていて、3V以下の電圧は測定出来ないので電池チェッカーには使えません。そこで電源と電圧測定端子を分離して3線式に改造します。

▼電圧測定精度確認
電圧精度ををチェック
 3線式でちゃんと動くかどうか確認しているところです。ここで念のために電圧測定精度をチェックしておき、もし狂っていたら半固定抵抗を廻して調整します。

▼主要部品
パーツ準部完了
 電圧計の電源はDCDCコンバーターで昇圧して作りますが、ここは定番の HT7750A を使いました。HT7750A や HT7733A は電子工作する人の常備薬みたいな物なので、常にストックしておくと安心です。

▼配線完了
DCDCコンバーターを配線
 DCDCコンバーターの回路はデーターシート通りです。なお、コイルは100μHを使用。入口側のコンデンサは10μFのタンタルを使用。出力側コンデンサは最初は10μFの積セラだけを使いましたが、電圧が不安定になることがあったので100μFの電解コンデンサをパラに追加しています。電圧計はLEDをダイナミック点灯させているために消費電流の変化が激しく、制御系との関係で発振気味になっていたようです。

▼組立中
スモークアクリル板をベースに組立て
 厚さ2mmのスモークのアクリル板をベースに使って部品を取り付けます。なお、LED電圧計はホットボンドで取り付けました。またスモークアクリル板は両面テープでケースに貼り付けました。
 なお、エアーバリアブルさんの記事ではスモークアクリル板の替わりに、元のアナログメーターの前面部分のプラスチックパーツを流用されています。

▼組み込み完了
電池チェッカー配線完了
 配線完了、部品の接着固定完了です。

▼裏蓋を閉じて完成
裏面にキャリブレーション用の穴
 裏蓋に感度調整用の半固定抵抗を廻せるように、穴を開けておきます。裏蓋は特に接着しなくても脱落しないので、そのままで使っています。なので、穴は開けなくてもよかったです。

▼表側
完成
 スモークアクリルなので、黒い窓があるだけでなかなかクールな外観です。電池のチェックをすると最初の写真のように、電圧を表示します。

▼電池電圧と負荷電流の関係
Battery Voltage VS Current

 電池電圧とチェック時に流れる電池電流の関係が上のグラフです。電池電圧が1.3Vで電流は一番多くて約120mA流れ、電圧がそれ以上でも以下でも電流は減っています。テスターなどと比べて測定電流が大きいので、この点は意識して使わないといけません。なお、電池電圧測定範囲の下限は0.75Vでした。

 1.3V以上の領域は、DCDCコンバーターの出力電圧が既定の5Vの定電圧になっている状態です。1.3V以下では出力が5Vを維持出来なくなり、その結果電流も減っているのだと思います。なお、この領域(1.3V以下の領域)でも電圧計に内蔵されているシリーズレギュレーターが働くので影響はほとんど無いようです。

 今回使った電圧計は消費電流が30mAと大きいので、こういう特性になったものと思われます。消費電流が10mA程度の電圧計ならもっと電池電流は少なくなったはずです。

◆まとめ
 なかなか使い勝手の良いバッテリーチェッカーが出来ました。電子工作好きならバッテリーの状態は〇△×とかでは無く、電圧の値で知りたいですよね。

 最後になりますが、このすばらしいアイディアを考え出したエアーバリアブルさんにあらためて感謝します。
カレンダー
01 | 2018/02 | 03
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 - - -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード