検索
連載

汎用I/Oの構造はどうなっているの? 使い方は?Q&Aで学ぶマイコン講座(39)(2/3 ページ)

マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「汎用I/Oの構造と使い方?」についてです。

Share
Tweet
LINE
Hatena

保護回路部

 端子を入ってすぐのところには、保護回路用のダイオードが付いています。これは、EOS(Electrical Over Stress)やESD(Electro Static Discharge)*)からマイコンを守るためのものです。一般的には、正電位の高電圧ノイズが入った場合は電源電圧側へ、負電位の場合は、GND側へノイズを逃がす方向にダイオードが付けられています。

 しかし、最近のマイコン(STマイクロエレクトロニクスの32ビットマイコン「STM32ファミリ」など)の汎用I/Oには、5V耐圧の端子があって、電源電圧を3V近辺で使用しても、端子には5Vを印加できます。この場合、図1に記載している保護ダイオードでは、端子の5V電源から、マイコンの3V電源に電流が流れてしまいます。そこで、5V耐圧端子の保護ダイオードは一般的な保護回路とは異なる方式を採用しています。具体的な方式は、各マイコンメーカーで異なる上に、社外秘にされているので詳しく説明できませんが、電源側の保護ダイオードを、端子に5V以上が印加されるまではオフのままにしておき、5V以上のノイズ電圧が印加された場合にオンにすることで、電源またはGNDに逃がして端子を保護します。


図1(再掲):汎用I/Oの構成

*)参考記事:Q&Aで学ぶマイコン講座(38):ESDとEOSの違いと対策法

プルアップ/ダウン抵抗含む

 図1では、内蔵のプルアップ/プルダウン抵抗を、スイッチと抵抗の等価回路で記述しましたが、実際はプルアップ抵抗にはPMOS、プルダウン抵抗にはNMOSを使います(図2参照)。どちらのMOSもオン抵抗が数百から数十オームになるような特性に設計しておけば、オンオフのできる抵抗がMOS単体で実現できます。


図2:汎用I/Oの入力部の構成

入力回路部

 端子から入ってきた信号はアナログ信号(A-Dコンバーターやオペアンプの入力など)とデジタル信号(CPUと周辺機能用)で、経路が分かれます。(図2参照)

①アナログ入力信号

 アナログ入力信号は主にA-Dコンバーターやオペアンプやコンパレーターの入力端子として使用する場合です。途中でデジタル回路が入ると、電圧が変わってしまうので、端子から直接アナログ回路へ入ります。

②デジタル入力信号

 デジタル信号は、入力バッファ経由で、CPUまたは周辺機能の入力データレジスタへ入るか、直接、周辺機能へ入ります。

 入力バッファは、シュミットトリガータイプのインバーターで記述しましたが、本連載第5回の「未使用GPIO(汎用I/O)の処理はどうすれば良いの?」で述べたように、いろいろな種類の入力バッファがあります(図3)。また、必ずしもシュミットトリガー特性を持っているとは限りません。実際の入力バッファについては、各マイコンのマニュアルなどを参照してください。


図3:入力バッファの種類

 入力バッファを通った後の信号は、CPUと周辺機能の2つの経路に分かれます。端子を周辺機能の端子として使っている場合は、周辺機能に入ります。

 CPUが信号を汎用I/Oの入力データとして読み込む場合は、いったんレジスタ(汎用I/Oデータレジスタ)で保持されます。そのレジスタは、データバス経由で読むことができます。

 周辺機能へ行く信号は、周辺機能によって保持される方式が変わります。USART(Universal Synchronous Asynchronous Receiver Transmitter)やSPI(Serial Peripheral Interface)などの通信機能の場合、信号は入力データバッファレジスタなどのレジスタで一度保持され、処理されます。また、タイマーの入力キャプチャー信号などは、エッジのタイミングが変わらないように、そのままカウンターの値をキャプチャーするトリガー信号として使われます。

 図4にSTM32ファミリのSPIの入力信号の経路を示します。ここでは、入力データを受け取る入力レジスタはシフトレジスタになります。


図4:実際の通信機能(SPI)の入力回路

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る