要約
このアプリケーションノートでは最新のポートエキスパンダの機能について検証し、特にスペース重視でコストに非常に敏感な折りたたみ式の携帯電話との関連について考察する。MAX6966およびMAX6965の各ドライバは、このアプリケーションノートで紹介するGPIOポートエキスパンダの技術を明らかにしている。
はじめに
これまで、汎用I/O (GPIO)ポートエキスパンダと言えば、小型の低コストICのI/Oポート数を追加するためのものという概念があった。標準的な8および16ポートを持つ製品の歴史は古く、それらICを接続するためのI²CやSPIシリアルバスが市場に普及した歴史とさほどの違いはない。初期の製品に搭載されていた機能は限定的なものであった。各ポートは、シンプルなオープンドレインまたは駆動電流が限られたプッシュ/プル出力を提供し、遷移検出のラッチのないロジック入力があるのみであった。また、パッケージも最も小型のものでTSSOPだった。
このアプリケーションノートでは最新のポートエキスパンダの機能について検証し、特にスペース重視でコストに非常に敏感な折りたたみ式の携帯電話との関連について考察する。
折りたたみ式携帯電話の配線上の問題
折りたたみ式携帯電話の形状は、貝殻のように重ね合わせて1つになる2つのボディで構成されている(図1)。ベースバンドと無線回路は、やや厚めのメインボディ側にあり、その他、キーボード、バッテリ、およびアンテナもこの部分に搭載されている。コンパクトな携帯電話の一般的なレイアウトでは、図1のように、大型のディスプレイが蓋となるボディ(フリップ)の内側、そして小型のディスプレイが外側に配置されている。外側のディスプレイは、電話機が待機時に時間などのステータスを表示するために常時動作しており、バックライトなしでも読み取ることができるように半透過型液晶が採用されていることが多い。フリップには電話の受話口があり、場合によっては他のオーディオ、着信音回路がある場合がある。また多くの電話機ではフリップにカメラモジュールが内蔵されている。
図1. 折りたたみ式携帯電話のヒンジ部分は配線上のネックとなる。
フリップの中のディスプレイやカメラは、伝統的に比較的高速(メガバイト/秒)の個別のパラレルインタフェースを搭載しており、ディスプレイの画像更新やカメラ画像のダウンロードをスムーズに行う。ネックとなるのがフリップからメインボディへのデータ転送で、ヒンジを通過しなければならないところにある。この接続部分は通常マイラー(Mylar®)フィルムに銅トレースを施したフレキシブルな回路を使用している。折り曲げを繰り返しても使用可能で、信頼性のある回路を維持することができるトレース密度には限界があり、ゆえにトレースの数にも限度がある。携帯電話の設計者には、フリップとメインボディの間の配線数を減らさなければならないという重圧が常に存在している。
折りたたみ式携帯電話にGPIOを使うメリット
一般的には、フリップとメインボディをつなぐフレキシブル回路(フレキ)上の銅トレースの数を減らすことが必要になる。フリップのディスプレイやカメラへの高速パラレル接続をシリアルに置き換える傾向にある。もう一方の配線を減らす簡単な方法は、フレキに配線を通して信号と制御を伝送するのではなく、フリップ上で直接統合可能な信号と制御を特定することである。小型で、低コストのポートエキスパンダは、ロジック入力の信号、出力、LEDドライバ、もしくはパワーコントロールスイッチを制御することができる。ポートエキスパンダは、I²CやSPIインタフェースを使ってメイン基板とインタフェースするが、それらインタフェースはフリップ側にすでに存在する場合が多いだろう。
ポートエキスパンダは、ローパワーのデバイスである。携帯電話アーキテクチャにおいて、ポートエキスパンダのメリットを活用するには、以下の点に注意しなければならない。
- 物理的に小さいパッケージのものを使う。必要な箇所に配置できるように2mm x 2mmまたは3mm x 3mmのTQFNパッケージが望ましい。
- I²CやSPIなど標準的なシリアルプロトコルのインタフェースを使う。
- 電力の無駄となるCPUポーリングを避けるために割り込みを使う。
- CPUの介在なしで主な機能(PWM、入力監視など)を動作させる。
- 低電圧動作を可能とする(現在は1.8V~3V、将来的には1V以下)。
- 消費電流を1µAの範囲に抑える。
LED駆動
携帯電話には多数のLEDが使用されており、その用途は、ディスプレイおよびキーパッドのバックライト(2~6個のLED)、機能/ステータスインジケータ、RGBのファンライト、バッテリ/信号強度インジケータなど様々である。使い方次第では、ポートエキスパンダによって省スペースと省電力が可能となり、システム内での不要な通信を少なくすることができる。たとえば、個別LEDのPWM輝度制御、スペースを必要とするディスクリートのトランジスタなしで実現可能な高電圧・大電流駆動、またはバッテリから直接のLED駆動などが良い例であるが、チャージポンプやインダクタを用いる昇圧型電源のコストを削減し、EMIを低減する。
大電流駆動のオープンドレインポート
オープンドレイン出力ポートを用いた、LEDの駆動は非常に容易である。出力ポートはハードウェアによるグランドへの出力スイッチとして動作し、バラスト抵抗と呼ばれるシリーズ抵抗によってLED電流が設定される。LED駆動に適したポートエキスパンダは、デバイスの電源電圧よりも高い定格電圧を持つ大電流ポートを備え、LEDの輝度を調整するPWMを備えている。たとえばLEDドライバのMAX6965は、9つの7V定格オープンドレインGPIOに50mAの電流シンク能力と個別出力のPWM制御を持たせており、3mm x 3mmのQFNパッケージに収まっている。
定電流ポートによるバッテリから直接のLED駆動
LEDを駆動するより良いアプローチは、定電流シンクである。これは従来のハードウェアによる出力スイッチや電流制限バラスト抵抗を置き換えることができる。定電流LEDドライバには2つの重要なメリットがある。
- LED電流は、LEDの順方向電圧やLEDの電源電圧のばらつきとは無関係となる。
- LEDの電源電圧を低くする(LEDの順方向電圧に近づける)ことができる。これによって効率も上がる。
MAX6966 (10ポート定電流LEDドライバおよびPWM輝度制御付きI/Oエキスパンダ)などの定電流ドライバは、ポート出力の電圧降下が規定の最小値を上回っている限りにおいては、定電流出力を正確に安定化させる(図2)。ポートの出力電圧は、負荷の供給電圧(通常LED用)と負荷にかかる電圧(LEDの順方向電圧)の差である。LED電源の電圧降下が原因となって、ポートの出力電圧が最小値以下になると、結果としてドライバ出力段で電圧低下が起こる。それによって負荷電流も低下する。MAX6966の最小ポート電圧は10mAのシンク電流で0.5V、20mAのシンク電流で1Vである。
図2. このGPIO ICにはLEDドライバとロジックI/Oが内蔵されている。
LEDを携帯電話のバッテリから直接動作させるとブースト(昇圧)コンバータのスペースとコストを節約することができる。したがって、標準的なLED電源は充電式リチウム電池であり、充電時の最大終止電圧は4.2V、標準的には3.4V~3.7V、放電時には3V前後となる。バッテリが寿命に近づくと、LED電源は電圧低下ポイントを大幅に下回る。
図3は3.0Vの青色LED (LITEON LTST-C170TBKT)がシンクする標準的な電流を表している。このときLEDの電源電圧は2.5V~7Vの範囲である。ここに示されたLED電流は、10mAと20mAの定電流に設定されたポートで駆動しており、2.5V~7Vの範囲で電源電圧を振ってある。LEDの順方向電圧は電流と共に低下し、電圧低下状態にあるLED電流は、急激な低下ではなく、緩やかな低下となる。LED電流は3Vの電源電圧において6mAから7mA程度まで低下するが、バッテリ寿命末期のバックライトアプリケーションとしては、十分に許容できる性能である。
図3. MAX6966の定電流出力は携帯電話のバッテリから直接白色LEDを駆動する。
LEDの電流要件の緩和
LEDに使われる従来のPWM制御は、同じPWM周期をすべてのPWM出力に適応するため、すべての出力が同時にオンになる(図4)。結果として、LEDドライバ出力は所与のPWM設定に対して同じ時間に負荷電流を引くことになる。たとえば、すべての出力が50対50のデューティサイクルに設定されると、半分の時間は電流の引き込みがゼロ(すべての負荷がオフ)となり、半分の時間がフルスケール(すべての負荷がオン)となる。
図4. 従来のPWMはすべての出力を同時にスイッチングさせてしまう。
定電流LEDドライバのMAX6966は、PWM周期の8分の1ずつポート出力のPWMタイミングをずらすことによって、ポート出力スイッチングポイントをPWM周期全体に分散させる(図5)。タイミングをずらすことによって、電源のdi/dt出力スイッチングトランジェントを小さくすることになるため、必要なピーク/中位電流が減少する。またそれによってEMIが低減し、電源部分のPCB配線を細くすることができる。
図5. MAX6966はPWMのスタート時間をずらすことによって電流要件を緩和する。
LEDフェード効果の自動化
MAX6966は、オートシャットダウンとするために電流出力を減少させ、手を加えることなくシャットダウンから再び立上るようにする自動制御を備えている(図6、7)。ランプダウンには、設定されたフェードオフ期間の前に、一定時間出力を最大電流で維持するプログラム設定可能なホールドオフ遅延が含まれている。この期間中は電流出力が減少する。
図6. MAX6966はLED輝度のランプダウン、ホールドオフ、およびフェードオフを自動的に行う。
図7. MAX6966はハードウェアトリガで、LED輝度のランプアップレートを制御し、それによって不必要なペリフェラルと切断する時間を持たせることが可能となる。
MAX6966は、シャットダウン中に、CS入力で短いパルスを入れることによって再起動することができる。このハードウェアによる起動によって、電源管理コントローラまたは同等のASICは、予め設定されたLEDの輝度でMAX6966をイネーブルにすることができる。シャットダウンから復旧するとき、LED出力は自動的に設定された電流値まで上昇することができる(図7)。これらの機能は、システムプロセッサから難解な時間管理の問題を取り除くだけでなく、これらによって、システムはスタンバイモードになり、LEDドライバそのものがタイミング機能として働くことができる。
多くのGPIOデバイスが提供する高いレベルのソース/シンク電流によって、それらのデバイスは、電源を直接応用して、多くのペリフェラル機器のオン/オフを可能にする。ここにアプリケーション上のいくつかのヒントを挙げる。
- 可能な限り、ペリフェラルの正電源端子ではなく、GND端子を制御すること。グランドスイッチの容易な負荷にはバイブレータモータ、LED、および多くのIrDAインタフェースモジュールがある。グランドスイッチングが好まれるのは、大電流のオープンドレインポートが一般的に利用しやすいからである。
- プッシュ/プルGPIO (MAX7310、MAX7312、MAX7320)を使って、消費電流が小さくてすむペリフェラルの正電源端子を制御すること。この方法はICのパワーダウンによく用いられる。
- 外付けpFETを用いて、プッシュ/プルGPIOのハイサイド電流駆動を増加すること。pFETのゲートをプッシュ/プルのポート出力に、ソースを正電源に、そしてドレインを負荷に接続するだけでよい。制御ロジックは反転するので注意すること。ポート出力のロジックローはpFETをオンにする。
- より大電流で駆動するためには、オープンドレインポートを並列にすることができる。
- 同時にオン/オフすることによって、ポートが負荷を共有していることを確認すること。
ポートエキスパンダはレベル変換が可能なシンプルなI/Oである
GPIOの重要な特長の1つとして、入力や出力の電圧の上げ下げという変換能力があげられる。このレベル変換によって考えられうる利用方法を以下にあげてみる。
- 通常、入力ポートはGPIOの動作電源電圧よりも高い電圧を許容する。これによって、たとえば、GPIOは都合よく低電圧から動作可能となり、同時により高い電圧のロジック入力を監視することができる。
- I²Cインタフェースそのものは、GPIOの動作電源電圧に関係なく5.5.Vまでの過電圧を許容する。したがって、3.3V終端のプルアップ抵抗を持つI²Cバスが、2.5Vまたは1.8Vで動作するGPIOとの通信が可能となる。
- オープンドレインI/Oは、通常GPIOの動作電源電圧に依存しないあるレベルまで過電圧を許容する。たとえば、MAX6964/MAX6965およびMAX7313/MAX7316ファミリのI/Oポートは5.5Vまたは7Vまで過電圧を許容する。したがって、ポートから所望する電源レールまでプルアップ抵抗を使うことによって、いかなるポートもその限度までロジックスイングを発生させることができる。
- オープンドレインI/OとI²Cインタフェースそのものは、通常ホットスワップ可能である。つまり、GPIOの動作電源電圧が切断されていても、これらの配線は、寄生電流を引き込むことなく、印加された電圧に耐えることができる。ホットスワップの能力は、電話機とは無関係の給電ソースを持つアクセサリに接続するときに力を発揮する。すなわち、電話機とアクセサリは、電源の投入の順序がどのようになっても構わないということになる。
- 起動時におけるプッシュ/プルI/Oポートのデフォルトロジックレベルは、定数の大きいプルアップ抵抗(~1MΩ)を用いた電源電圧、またはプルダウン抵抗によるグランドへ設定することができる。I/Oポートは起動時にハイインピーダンス入力がデフォルトとなるため、GPIOがシリアルインタフェースによって設定されるまで、抵抗が初期のロジックレベルを設定する。
ポートの拡張:自動入力監視
上述の通り、ペリフェラル機器は、CPUのポーリングを起こさないようにするためにイベントによって割込み要求をする必要がある。このことは、携帯電話のフリップシャントスイッチなどのめったに起こらないイベントを監視するGPIOの入力に該当する。多くのGPIOには、すべてのロジック入力を監視して、入力が状態変化をすると割込みを発生させる遷移検出回路が含まれている。MAX7319 (8つのオープンドレインI/Oを備えたI²Cポートエキスパンダ)は、従来からの遷移検出を以下のように拡張する。
- 割込み出力INT/
- がラッチされ、遷移変化によって割込みをアサートし、MAX7319が読み出されるまでこの状態が続く。
- チェンジフラグレジスタは、MAX7319が最後に読み出されてから変化のあった不特定のポートを特定する。たとえそれが遷移のために起こったものだとしても同様である。
- 割込みマスクレジスタは、ある特定の入力ポートのみ変化した時に割込みを要求することを可能にする。