MAX6954とMAX6955のキースキャンを32キーを超えて拡張

要約

このアプリケーションノートでは、MAX6954とMAX6955のLEDディスプレイドライバのキースキャン機能を32キーから最大80キーに拡張する方法について詳しく説明します。

MAX6954/MAX6955は、4線式と2線式のシリアルインタフェースのLEDドライバであり、最大7セグメント、14セグメント、および16セグメントのLED桁、あるいは16x8のLEDの配列を制御します。ドライバは、5つのI/Oエキスパンダ(GPIO)ポートを備え、またこれらのポートの一部または全部を使用して最大32のキースイッチを自動的にスキャンしてデバウンスするためのロジックも備えています。このロジックには、割込み出力端子を経由してシステムプロセッサにキーのデバウンスを通知するオプション機能があります。ここで説明する手法は、特別なダイオードを追加することによって、MAX6954/MAX6955の機能を32から80以上のキーに拡張するものです。

表1. MAX6954/MAX6955への標準32キー接続
P0 P1 P2 P3
LED Output O0 SW A1 SW B1 SW C1 SW D1
LED Output O1 SW A2 SW B2 SW C2 SW D2
LED Output O2 SW A3 SW B3 SW C3 SW D3
LED Output O3 SW A4 SW B4 SW C4 SW D4
LED Output O4 SW A5 SW B5 SW C5 SW D5
LED Output O5 SW A6 SW B6 SW C6 SW D6
LED Output O6 SW A7 SW B7 SW C7 SW D7
LED Output O7 SW A8 SW B8 SW C8 SW D8

図1. MAX6954/MAX6955への標準32キー接続

図1. MAX6954/MAX6955への標準32キー接続

表1と図1は、MAX6954/MAX6955への標準キースイッチ接続を示しています。キースイッチ回路は、4 x 8のマトリックス(4列8行)で構成された32のキーを読み取ります。キーマトリックスの8行は、8つのLEDカソード駆動出力(LED Output O0~LED Output O7)によって駆動されます。これらのLEDカソード駆動出力は、複合LED駆動の一部として、順に320µs (定格)の間ローとなり、これによってLEDを順次駆動します。また、これらの駆動出力を使用して、2つのキースイッチのそれぞれ一端をローにプルダウンしています。キーのもう一端は4つの入力端子(P0~P3)に接続され、MAX6954/MAX6955の内部でV+にプルアップされています。スイッチが押された場合、該当するLED Output Ox出力によってP0、P1、P2、またはP3がローにプルダウンされるため、MAX6954/MAX6955はキーが押されたことを検出し、デバウンスを実施します。

スイッチに直列に接続されたダイオードは、複数のキーが同時に押された場合に2つ以上のLEDカソード駆動出力が同時に短絡しないようにしています。たとえば、SW A1とSW A2が同時に押された場合、キーに直列に接続されたダイオードによってLED Output O0がLED Output O1に短絡されることを防止しています(常に少なくとも1つのダイオードに逆バイアスがかかるためです)。通常、ダイオードには、低コストなSOT23のコモンアノードBAW56が実装されます。

MAX6954/MAX6955は、任意の時点で押される(または離される)可能性のある32のキーのいずれの組み合わせも区別して識別します。製品にはこれら32のキーの状態を示せるだけのレジスタしかありません。したがって、このスキャニングトポロジを、MAX6954/MAX6955を設計したときの32キーを超えて拡張する方法がないことは明らかです。このため、より独創的な別の手法を考える必要があります。

具体的には、冗長的な状況を利用することが可能かどうかを探すことになります。多くの場合、アプリケーションに必要なことは、多数のキーの1つが押されたかどうかを検出するということだけです。通常、装置で2つのキーが押された場合、間違って入力したか、あるいは特殊な方法で工場診断モードに移行したかのいずれかです。つまり、冗長的な状況とは、2つのキーが押された場合です。ここで提案する独創的な方法とは、追加キーを、特定のキーのペアが同時に押されたかのように思わせることです。表2と図2の例では、P0とP1、およびP2とP3を組み合わせることによって、16のキーを追加しています。たとえば、SW AB1が押されたとき、SW A1とSW B1が同時に押されたかのようにMAX6954/MAX6955に思わせる必要があります。この拡張アーキテクチャは、元のキーの組み合わせ(たとえば、SW A1とSW B1)が物理的に隣接しておらず、したがって誤って同時に押されることのない限り、正しく機能します。1回のキースキャンパスの結果が確実に解析されるようにするために、MAX6954/MAX6955のデバウンスサイクルタイム以内にキーの/IRQ出力に反応するようにソフトウェアを記述する必要があります。ソフトウェアの/IRQ反応が遅いと、2つのキーが同時に押されたのか(追加した特別キーの識別)、同じ2つのキーが連続して押されたのかを区別することができなくなります。どちらの場合でも、キーデバウンスレジスタ0x08~0x0Bは、各キーに対応するビットのセットを示すだけです

表2. MAX6954/MAX6955への拡張48キーの接続
P0 P1 P2 P3 P0 & P1 P2 & P3
LED Output O0 SW A1 SW B1 SW C1 SW D1 SW AB1 SW CD1
LED Output O1 SW A2 SW B2 SW C2 SW D2 SW AB2 SW CD2
LED Output O2 SW A3 SW B3 SW C3 SW D3 SW AB3 SW CD3
LED Output O3 SW A4 SW B4 SW C4 SW D4 SW AB4 SW CD4
LED Output O4 SW A5 SW B5 SW C5 SW D5 SW AB5 SW CD5
LED Output O5 SW A6 SW B6 SW C6 SW D6 SW AB6 SW CD6
LED Output O6 SW A7 SW B7 SW C7 SW D7 SW AB7 SW CD7
LED Output O7 SW A8 SW B8 SW C8 SW D8 SW AB8 SW CD8

特別キーのそれぞれにデュアルダイオード(低コストなSOT23のコモンカソードBAV70など)が必要となります。スイッチが押されたとき、このデュアルダイオードがP0とP1 (またはP2とP3)をローにプルダウンします。

図2. MAX6954/MAX6955への拡張48キーの接続

図2. MAX6954/MAX6955への拡張48キーの接続"

図2(表2)の方式では、P0とP1、およびP2とP3を組み合わせることによって、16のキーが追加されています。実際には、P0~P3のキースキャン入力について可能な2つのキーの組み合わせは、さらに4通りあります。2つのキーの組み合わせ(6通り)をすべて使用すると、表3に示すように、キーの数を80スイッチに拡張することができます。図3は、6つの特別キーをLED Output O0の行に接続する方法を示しています。ここでも、特別キーのそれぞれが1つのデュアルダイオードを使用します。

表3. MAX6954/MAX6955への拡張80キーの接続
P0 P1 P2 P3 P0 & P1 P0 & P2 P0 & P3 P1 & P2 P1 & P3 P2 & P3
LED Output O0 SW A1 SW B1 SW C1 SW D1 SW AB1 SW AC1 SW AD1 SW BC1 SW BD1 SW CD1
LED Output O1 SW A2 SW B2 SW C2 SW D2 SW AB2 SW AC2 SW AD2 SW BC2 SW BD2 SW CD2
LED Output O2 SW A3 SW B3 SW C3 SW D3 SW AB3 SW AC3 SW AD3 SW BC3 SW BD3 SW CD3
LED Output O3 SW A4 SW B4 SW C4 SW D4 SW AB4 SW AC4 SW AD4 SW BC4 SW BD4 SW CD4
LED Output O4 SW A5 SW B5 SW C5 SW D5 SW AB5 SW AC5 SW AD5 SW BC5 SW BD5 SW CD5
LED Output O5 SW A6 SW B6 SW C6 SW D6 SW AB6 SW AC6 SW AD6 SW BC6 SW BD6 SW CD6
LED Output O6 SW A7 SW B7 SW C7 SW D7 SW AB7 SW AC7 SW AD7 SW BC7 SW BD7 SW CD7
LED Output O7 SW A8 SW B8 SW C8 SW D8 SW AB8 SW AC8 SW AD8 SW BC8 SW BD8 SW CD8

図3. MAX6954/MAX6955への拡張80キーの接続

図3. MAX6954/MAX6955への拡張80キーの接続

しかし、特別キーを識別するために、なぜキーの二重押しに限定するのでしょうか? 3つおよび4つのキーの組み合わせを、キーの二重押しの代わりに、あるいは二重押しに加えて使用することもできます。表4は、これらの特別な構成を示しています。3つのキーの組み合わせ(4通り)はトリプルダイオードを必要とし、4つのキーの組み合わせはクワッドダイオードを必要とすることに留意してください。

表4. 3つおよび4つのキーの接続
P0 & P1 & P3 P0 & P1 & P4 P0 & P2 & P3 P1 & P2 & P4 P0 & P1 & P2 &P3
LED Output O0 SW ABC1 SW ABD1 SW ACD1 SW BCD1 SW ABCD1
LED Output O1 SW ABC2 SW ABD2 SW ACD2 SW BCD2 SW ABCD2
LED Output O2 SW ABC3 SW ABD3 SW ACD3 SW BCD3 SW ABCD3
LED Output O3 SW ABC4 SW ABD4 SW ACD4 SW BCD4 SW ABCD4
LED Output O4 SW ABC5 SW ABD5 SW ACD5 SW BCD5 SW ABCD5
LED Output O5 SW ABC6 SW ABD6 SW ACD6 SW BCD6 SW ABCD6
LED Output O6 SW ABC7 SW ABD7 SW ACD7 SW BCD7 SW ABCD7
LED Output O7 SW ABC8 SW ABD8 SW ACD8 SW BCD8 SW ABCD8
3つおよび4つのキーの組み合わせを採用しないのには、十分な理由があります。なぜなら、より多くのダイオードを必要とするからです。ただし、アプリケーションが32のキーの制限をわずかに超える特別キーだけを必要とする場合には、これらの5つを最初に考慮することも可能です。これは、ユーザが3つまたは4つのキーを誤って打ち間違える可能性は、2つのキーを間違える可能性よりも低いからです。

注:説明した拡張キーをそれぞれ接続することで、同じLEDカソード駆動出力(LED Output O0~LED Output O7)上のキーの複数押下をシミュレートしています。このように接続することで、キーの複数押下の組み合わせに関与するキーが同時にスキャンされてデバウンスが実施されるため、結果は同時に表示されます。異なるLEDカソード駆動出力によってスキャンされるキーの複数押しを特別キーでシミュレートする場合には、キーが同時にデバウンスされないため、信頼性は低下します。