クイックスタート:MAX6954を使って16セグメントディスプレイを駆動する

要約

このアーティクルは、MAX6954を使用して16セグメントのモノカラーLEDを駆動することを検討している技術者が迅速に学ぶことを目的に作られたガイドブックです。

MAX6954は汎用のディスプレイドライバであり、シリアルインタフェースを通して、個別の7セグメント、14セグメント、及び16セグメントLEDディスプレイを混在して、駆動することができます。このアプリケーションノートでは、8個のモノカラー、16セグメンントLEDを駆動するための標準的なアプリケーションと構成を示します。

MAX6954の機能についてさらに情報を得たい場合はMAX6954のデータシートをご覧ください。

クイックスタート:MAX6954を使って7セグメントディスプレイを駆動」及び「クイックスタート:MAX6954を使って14セグメントディスプレイを駆動」は、MAX6954を7セグメント及び14セグメントのアプリケーションを構成することを述べた同様のアプリケーションノートです。

MAX6954の標準的なアプリケーションの一例は、最大8個までの16セグメントモノカラーのLEDの駆動です。このアプリケーションノートは、MAX6954を16セグメントディスプレイに接続し、内蔵の104キャラクタのフォントマップを使ってディスプレイを制御するための内蔵のレジスタを構成するプロセスをユーザに解説します。

MAX6954はマルチプレクス技術を使用します。これは使用するポートのピン数を少なくして、これを交互にカソードとアノードドライバとして使うものです。これはアノード用とカソード用に別のドライバを用いる標準的なLEDマルチプレクス接続とは異なります。この技術は「Charlieplexing - Reduced Pin-Count LED Display Multiplexing」にて説明されています。表1はMAX6954マルチプレクス方式に対応した16セグメントの各桁に対する接続方法と内蔵の104種の文字フォントマップを示しています。表1における文字は図2に示したセグメントラベルに対応しています。図1はMAX6954に対する8桁の16セグメントのアプリケーションを図示しています。

図1. MAX6954の16セグメントアプリケーション回路

図1. MAX6954の16セグメントアプリケーション回路

図2. MAX6954の16セグメントディスプレイのセグメントラベリング図

図2. MAX6954の16セグメントディスプレイのセグメントラベリング図

表1. 16セグメント、8桁の接続方式
DIGIT O0 O1 O2 O3 O4 O5 O6 O7 O8 O9 O10 O11 O12 O13 O14 O15 O16 O17 O18
0 CCO a1 a2 b c d1 d2 e f g1 g2 h i j k l m dp
1 -- CC1 a1 a2 b c d1 d2 e f g1 g2 h i j k l m dp
2 a1 a2 CC2 -- b c d1 d2 e f g1 g2 h i j k l m dp
3 a1 a2 -- CC3 b c d1 d2 e f g1 g2 h i j k l m dp
4 a1 a2 b c CC4 -- d1 d2 e f g1 g2 h i j k l m dp
5 a1 a2 b c -- CC5 d1 d2 e f g1 g2 h i j k l m dp
6 a1 a2 b c d1 d2 CC6 -- e f g1 g2 h i j k l m dp
7 a1 a2 b c d1 d2 -- CC7 e f g1 g2 h i j k l m dp

MAX6954を16セグメントのディスプレイに接続した後、接続を確認するためにディスプレイのテストモードを使うことができます。ディスプレイのテストモードはすべての制御用レジスタと桁レジスタに優先して、しかし、その内容を変更することなく、すべてのセグメントをオンとします。0x01をレジスタ0x07に書き込むことによってディスプレイテストモードがイネーブルとなります。ディスプレイテストモードでセグメントが点灯しない場合、接続に問題があるので、調査を必要とします。0x00をレジスタ0x07に書き込むとディスプレイテストモードを解除します。

MAX6954と16セグメントディスプレイ間の接続確認が終わった後、16セグメントディスプレイを動作させるようにデバイスを構成しなければなりません。表2はMAX6954の重要なレジスタの電源投入時の初期状態リストです。電源がMAX6954に最初に印加されたとき、デバイスはシャットダウンモードとなっており、すべての桁は消灯であり、16セグメントのフォントマップが選択されてデバイスは最大8桁をスキャンするようにセットされています。これはDecode Mode (0x01)とDigit Type (0x0C)レジスタのデフォルト設定値が16セグメントのアプリケーションにとって正しい値となっているためです。

図3. 16セグメントディスプレイのフォントマップ

図3. 16セグメントディスプレイのフォントマップ

表2. MAX6954の電源投入時のレジスタ初期状態
REGISTER POWER-UP CONDITION ADDRESS
(HEX)
REGISTER DATA
D7 D6 D5 D4 D3 D2 D1 D0
Decode Mode 16-segment font enabled 0x01 1 1 1 1 1 1 1 1
Global Intensity 1/16 (minimum intensity) 0x02 X X X X 0 0 0 0
Scan Limit Display eight 16-segment digits: 0, 1, 2, 3, 4, 5, 6, 7 0x03 X X X X X 1 1 1
Control Register Shutdown enabled, blink disabled, blink speed is slow 0x04 0 0 X X 0 0 0 0
Display Test Normal operation (display test disabled) 0x07 X X X X X X X 0
Digit Type Digits 0 through 7 are 16 segment digits 0x0C 0 0 0 0 0 0 0 0
Intensity10 1/16 (min on), digits 1 and 0 0x10 0 0 0 0 0 0 0 0
Intensity32 1/16 (min on), digits 3 and 2 0x11 0 0 0 0 0 0 0 0
Intensity54 1/16 (min on), digits 5 and 4 0x12 0 0 0 0 0 0 0 0
Intensity76 1/16 (min on), digits 7 and 6 0x13 0 0 0 0 0 0 0 0
Digit 0 Blank digit, both planes 0x60 0 0 1 0 0 0 0 0
Digit 1 Blank digit, both planes 0x61 0 0 1 0 0 0 0 0
Digit 2 Blank digit, both planes 0x62 0 0 1 0 0 0 0 0
Digit 3 Blank digit, both planes 0x63 0 0 1 0 0 0 0 0
Digit 4 Blank digit, both planes 0x64 0 0 1 0 0 0 0 0
Digit 5 Blank digit, both planes 0x65 0 0 1 0 0 0 0 0
Digit 6 Blank digit, both planes 0x66 0 0 1 0 0 0 0 0
Digit 7 Blank digit, both planes 0x67 0 0 1 0 0 0 0 0

コンフィギュレーションレジスタ(0x01)は、シャットダウンの設定、ブリンク機能の制御、すべての桁のデータクリア、全体または桁ごとの輝度制御の選択を行うために使用されます。コンフィギュレーションレジスタは7ビットで構成されています(表3):

  • Sビットはシャットダウンまたは通常動作を選択(リード/ライト可能)。
  • Bビットはブリンク速度を選択(リード/ライト可能)。
  • Eビットは全桁のブリンク機能を許可/禁止(リード/ライト可能)。
  • Tビットはブリンクタイミングをリセット(過渡ビットであり、記憶されません)。
  • Rビットはすべての桁に対してP0とP1の両面の桁データをクリア(過渡ビットであり、記憶されません)。
  • Iビットは全体または桁ごとの輝度制御を選択(リード/ライト可能)。
  • Pビットは現在ブリンクタイミング位相(phase)を反映(リード専用、このビットへのライトは無視)。
表3. コンフィギュレーションレジスタのフォーマット
CONFIGURATION REGISTER DATA BIT DATA BIT LABEL STATE FUNCTION
D7 P 0 P1 Blink Phase
1 P0 Blink Phase
D6 I 0 Intensity for all digits is controlled by one setting in the Global
Intensity Register
1 Intensity for digits is controlled by the individual settings in the
Intensity10 through Intensity76 registers.
D5 R 0 Digit data for both planes P0 and P1 are unaffected
1 Digit data for both planes P0 and P1 are cleared on the rising edge of active-low CS
D4 T 0 Blink timing counters are unaffected.
1 Blink timing counters are reset on the rising edge of active-low CS.
D3 E 0 Blink function disabled
1 Blink function enabled
D2 B 0 Slow Blinking. Segments blink on for 1s, off for 1s with fOSC = 4MHz.
1 Fast Blinking. Segments blink on for 0.5s, off for 0.5s with fOSC = 4MHz.
D1 X X Don't care
D0 S 0 Shutdown
1 Normal Operation

レジスタ0x04に0x01を書き込むことによってブリンクさせるのではなく、全体の輝度制御をディスプレイドライバに許可してください。MAX6954がシャットダウンから抜け出して、内蔵の発振器が給電されると、OSC_OUTの発振器出力が有効になります。このとき、まだ、16セグメントディスプレイは消灯のままです。それは桁制御レジスタ0x60~0x67の電源投入時の状態は0x20、即ち、点灯セグメントなしの状態であるからです(表2と図3を参照してください)。

MAX6954は16セグメントディスプレイ用の104文字ASCIIフォントマップを持っています。文字は標準のASCIIフォントに従いますが、次のような一般的なシンボルが追加されています:£、€、\、°、µ、±、≠、及び。104文字を表すために7ビットが使われ、8番目のビットは少数点(DP)を点灯させるかどうかを選択します(表4)。桁レジスタは2つの面、P0とP1を使って実現されます。各桁は2バイトのメモリで表現され、1バイトが面P0に、もう1バイトが面P1にあります(表7を参照)。桁レジスタは桁データが面P0(レジスタ0x20~0x27)、面P1(レジスタ0x40~0x47)、または両面に同時に(レジスタ0x60~0x67)更新することができるようにマッピングされています。16セグメントディスプレイの場合は桁レジスタのデータは桁セグメントの制御に直接使われず、16セグメントのフォント用データを蓄積する文字発生器のアドレス指定のために使われます(図3)。桁データの下位7ビット(D6~D0)はフォントから文字を選択します。このレジスタデータの最上位ビット(D7)は桁のDPセグメントを制御します:1に設定すると、DPを点灯し、0にすると非点灯のままです。

表4. 桁タイプデータレジスタのフォーマット
MODE ADDRESS CODE (HEX) REGISTER DATA
D7 D6 D5 D4 D3 D2 D1 D0
16-segment mode, writing digit data to use font map data with decimal place unlit 0x20 to 0x27
0x40 to 0x47
0x60 to 0x67
0 Bits D6 to D0 select font character 0 to 127
16-segment mode, writing digit data to use font map data with decimal place lit 0x20 to 0x27
0x40 to 0x47
0x60 to 0x67
1 Bits D6 to D0 select font character 0 to 127

コンフィギュレーションレジスタのブリンクイネーブルビットE(表3)によってブリンク機能がディセーブルされている場合、P0面の桁レジスタデータはディスプレイをマルチプレクスするために使われます。P1面にある桁レジスタデータは使われません。ブリンク機能がイネーブルとされている場合、P0面とP1面の両方の桁レジスタデータはディスプレイをマルチプレクスするために交互に使われます。ブリンキングは、ブリンククロックの交互の位相で面P0と面P1を用いてLEDディスプレイをマルチプレクスすることによって行われます。

例として、MAX6954を用いて、「MAXIM-IC」という8文字を表示してみましょう。コンフィギュレーションレジスタをプログラムしたとき、ブリンク機能をディセーブルとしたため、データは桁0から桁7を制御するために、0x20~0x27レジスタに書き込むことができます。図3のフォントマップを用いて、各文字に対応したコードを決定してください。

表5. MAXIM-ICの例
REGISTER ADDRESS (HEX) DIGIT CHARACTER FONT MAP EQUIVALENT CODE
DECIMAL HEX
0x20 0 M 0100 1101 0x4D
0x21 1 A 0100 0001 0x41
0x22 2 X 0101 1000 0x58
0x23 3 I 0100 1001 0x49
0x24 4 M 0100 1101 0x4D
0x25 5 - 0010 1101 0x2D
0x26 6 I 0100 1001 0x49
0x27 7 C 0100 0011 0x43

全体の輝度制御レジスタであるレジスタ0x02に書き込むことによってディスプレイの輝度を調整してください。輝度は0x00 (最小オン、1/16の電流)と0xFF (最大オン、15/16の電流)の間で調整することができます。ディスプレイの明るさのディジタル制御は、また、各桁を個別に管理することができます。桁の明るさの調整及びその他のGPIOやKey-scanのような高度な機能については、MAX6954のデータシートを参照してください。

表6. クイックスタート例のコマンドサマリ
REGISTER
(HEX)
COMMAND
(HEX)
FUNCTION
0x07 0x01 Enter display test mode
0x07 0x00 Exit display test mode
0x04 0x01 Exit shutdown mode, disable blinking and select global
intensity control
0x20 0x4D Write "M" to digit 0
0x21 0x41 Write "A" to digit 1
0x22 0x58 Write "X" to digit 2
0x23 0x49 Write "I" to digit 3
0x24 0x4D Write "M" to digit 4
0x25 0x2D Write "-" to digit 5
0x26 0x49 Write "I." to digit 6
0x27 0x43 Write "C" to digit 7
0x02 0xFF Set globalk intensity to full-scale
表7. MAX6954/MAX6955レジスタアドレスマップの抜粋
REGISTER ADDRESS (COMMAND BYTE) ADDRESS (HEX CODE)
D15 D14 D13 D12 D11 D10 D9 D8
Decode Mode R/active-low W 0 0 0 0 0 0 1 0x01
Global Intensity R/active-low W 0 0 0 0 0 1 0 0x02
Scan Limit R/active-low W 0 0 0 0 0 1 1 0x03
Configuration R/active-low W 0 0 0 0 1 0 0 0x04
Display Test R/active-low W 0 0 0 0 1 1 1 0x07
Digit Type R/active-low W 0 0 0 1 1 0 0 0x0C
Intensity 10 R/active-low W 0 0 1 0 0 0 0 0x10
Intensity 32 R/active-low W 0 0 1 0 0 0 1 0x11
Intensity 54 R/active-low W 0 0 1 0 0 1 0 0x12
Intensity 76 R/active-low W 0 0 1 0 0 1 1 0x13
Digit 0 Plane P0 R/active-low W 0 1 0 0 0 0 0 0x20
Digit 1 Plane P0 R/active-low W 0 1 0 0 0 0 1 0x21
Digit 2 Plane P0 R/active-low W 0 1 0 0 0 1 0 0x22
Digit 3 Plane P0 R/active-low W 0 1 0 0 0 1 1 0x23
Digit 4 Plane P0 R/active-low W 0 1 0 0 1 0 0 0x24
Digit 5 Plane P0 R/active-low W 0 1 0 0 1 0 1 0x25
Digit 6 Plane P0 R/active-low W 0 1 0 0 1 1 0 0x26
Digit 7 Plane P0 R/active-low W 0 1 0 0 1 1 1 0x27
Digit 0 Plane P1 R/active-low W 1 0 0 0 0 0 0 0x40
Digit 1 Plane P1 R/active-low W 1 0 0 0 0 0 1 0x41
Digit 2 Plane P1 R/active-low W 1 0 0 0 0 1 0 0x42
Digit 3 Plane P1 R/active-low W 1 0 0 0 0 1 1 0x43
Digit 4 Plane P1 R/active-low W 1 0 0 0 1 0 0 0x44
Digit 5 Plane P1 R/active-low W 1 0 0 0 1 0 1 0x45
Digit 6 Plane P1 R/active-low W 1 0 0 0 1 1 0 0x46
Digit 7 Plane P1 R/active-low W 1 0 0 0 1 1 1 0x47