« 作りながら学ぶPICマイコン入門のフォロー(21) | メイン | Arduino入門(6)改版した拡張基板 #256 Rev.A »

OSBDMで作る大電流発光ダイオード駆動装置 (1)


大電流発光ダイオード駆動装置

 MC9S08SH4マイコンは,20ピンのDIPパッケージを持った汎用マイコンですが,「ギャング出力」という特別な機能を装備しています.この記事では,「ギャング出力」を使って最大定格70mAのLEDを点滅させるというMC9S08SH4ならではのアプリケーションに挑戦します.

ギャング出力とは,何だ?

 「ギャング出力」とは,まったく聞き慣れない言葉です.これは,フリースケール社の最近のマイコンに装備されている機能で,複数のマイコン出力を束ねて一つの出力として扱うというものです。

出力を束ねて使う利点

 では,出力を束ねて使うと,何か良いことがあるのでしょうか.下の図のように,CMOSプロセスで製造されたマイコンの出力は,PチャネルMOSFET(PMOS)とNチャネルMOSFET(NMOS)の二つ一組のトランジスタで構成されています.これらトランジスタのON/OFFを制御することによって,マイコンはHigh/Lowを出力することができます.

マイコンの出力

 ON/OFFと簡単に書きましたが,当然のことながら,これらのトランジスタがONしたときの抵抗値,すなわちON抵抗はゼロではありません.また,トランジスタを搭載したシリコン・ダイからマイコンを実装した基板に至るまでの間には,ボンディング・ワイヤやリード・フレームなどの金属配線が存在します.

マイコンの出力端子の模式図

 これらの金属配線の抵抗も,もちろんゼロではありません.どの抵抗も,電流を流すと電圧降下を引き起こし,消費電力,すなわちエネルギーの損失を招きます.

 そこで,複数のマイコン出力をマイコンの外部で接続して一つの出力として使い,全体での抵抗を減らそうというのが,「ギャング出力」の考え方です。

ギャング出力の模式図

 MC9S08SH4では,最大8本のポートを束ねることができます.ポートを束ねたときに流してもよい電流値の上限は,データシートの High 出力電流(Output high current)と Low 出力電流(Output low current)に書いてあります.現状のデータシートでは,いずれも全ポートの合計で 100mA となっています.

 これらの電流は,いずれも VDD 端子または VSS 端子から供給されます.また,これらの電源端子から供給できる絶対最大電流は,それぞれ 120mA です.したがって,ギャング出力で 100mA の電流を流そうとしたら,それ以外の部分,たとえばプログラムを実行する CPU などでの電流消費を 20mA 以下に抑える必要があります.

束ねた出力の数と出力抵抗の実測

 では,ポートを束ねることによって,出力抵抗はどのように変化するのでしょうか.実際にブレッドボード上でギャング出力の本数と抵抗値の関係を計測してみました.流してみた電流は約 20mA です.

本数ON抵抗(Ω)
144.6
222.5
315.5
411.8
510.0
68.6
77.6
86.5


 本数が多くなると,抵抗値が減っていくのがわかります.また,必ずしも本数に反比例して抵抗値が減っているわけではないこともわかります.これは,出力抵抗に電源端子の抵抗が含まれているためであると考えられます.「ギャング出力の模式図」でわかるように,出力端子での抵抗値を下げることはできるのですが,VDD端子とVSS端子につながる配線の抵抗値は下がらないからです.

マイコン出力をつないだだけじゃ,ダメなの?

 「ギャング出力」は,外から見た場合には,通常のマイコン出力を単に束ねただけに見えます.しかし,普通のマイコンで複数の出力を短絡させることは,禁じられています.

 先の説明で,マイコン出力が PMOS と NMOS の二つのトランジスタで構成されていると述べました.マイコンの出力が、 High から Low ,または、 Low から High に変化するとき,これらのトランジスタの状態は,ほぼ同時に変化します.この時, PMOS と NMOS が同時にONしてしまうと,貫通電流(shoot through current)と呼ばれる電流が一気に VDD 端子から VSS 端子に突き抜けます.そのため,「貫通電流防止装置」によって,二つのトランジスタが同時に ON することがないように作られています.

貫通電流防止装置

 この仕組みを使うと,たとえば, High 出力から Low 出力になるときには, PMOS トランジスタが OFF したのを確認してから NMOS トランジスタが ON します.

 貫通電流の値は,大きいのですが,非常に短い時間だけ流れます.そして,マイコンの外からは,一般的には電源のノイズとして観測されることになります.貫通電流の発生は,ナノ秒オーダーの出来事です.そのため,ソフトウェアで貫通電流防ぐことはできず,複数の出力端子を束ねた場合には,貫通電流を防ぐすべはありません.これが,通常のマイコンで複数の出力を短絡することが禁じられている理由です.

なぜ,ギャング出力では貫通電流が流れないのか

 では,なぜ「ギャング出力」機能なら問題がないのでしょうか.「ギャング出力」の場合にも複数の出力端子で PMOS と NMOS がON/OFFするタイミングがずれると,貫通電流が流れることに違いはありません.これは,普通のマイコンと同じです.そうならないように,「ギャング出力」では,複数の出力端子の間で貫通電流を流さないようにする仕組みが装備されています.

ギャング出力の貫通電流防止装置

 普通の出力端子では,自身のトランジスタのON/OFFだけを監視していたのに対して,「ギャング出力」では,複数の端子のトランジスタを監視しているところが,異なる点です.この図では,二つの出力端子を束ねた場合について書きましたが,実際の「ギャング出力」では,最大8ポートにわたる貫通電流防止装置が実装されます.

 次回は,「大電流発光ダイオード駆動装置」のハードウェアについて解説します.

田中範明(noritan.org)

 OSBDMは、オープンソースのフリースケールのマイコン開発ツールです。エレキジャックNo.16の特集でも取り上げています。

カテゴリ:

トラックバック

このエントリーのトラックバックURL:
http://www.eleki-jack.com/mt/mt-tb.cgi/3703





カテゴリ

会社案内
情報セキュリティおよび個人情報の取り扱いについて

コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。
コメントはそれぞれ投稿した人のものです。

Powered by
Movable Type 4.1
/*yahoo remove*/