MAX6954를 이용한 일반적인 애플리케이션은 최대 8개의 16세그먼트 모노컬러 LED를 구동하는 것이다. 이 애플리케이션 노트에서는 MAX6954를 16세그먼트 디스플레이에 연결하고 내장된 104문자 폰트 맵을 이용해서 디스플레이를 제어하도록 내부 레지스터를 구성하는 방법에 대해 설명한다.
MAX6954는 포트를 교대로 음극 및 양극 드라이버로 이용해서 드라이버 핀 수를 줄인다. 이는 양극 및 음극에 별도의 드라이버 핀을 이용하는 표준적인 LED 다중 연결과 다르다. 이 기법에 대해서는 다음 애플리케이션 노트를 참조하세요. "Charlieplexing - Reduced Pin-Count LED Display Multiplexing". 표 1은 MAX6954 다중화 체계 및 내장 104문자 폰트 맵과 호환되는 16세그먼트 디스플레이의 연결 체계이다. 표 1의 글자가 그림 2의 세그먼트 라벨과 상응한다. 그림 1은 MAX6954의 8디지트, 16세그먼트 애플리케이션 회로이다.
MAX6954를 16세그먼트 디스플레이에 연결한 다음 디스플레이 테스트 모드를 이용해서 연결을 확인할 수 있다. 디스플레이 테스트 모드는 모든 제어 및 디지트 레지스터를 무시하지만 변경하지는 않고 모든 세그먼트를 켠다. 디스플레이 테스트 모드를 이용하려면 레지스터 0x07을 0x01로 작성한다. 디스플레이 테스트 모드에서 어떤 세그먼트가 켜지지 않으면 연결에 문제가 있는 것이므로 검사해야 한다. 디스플레이 테스트 모드를 종료하려면 레지스터 0x07을 0x00으로 작성한다.
MAX6954와 16세그먼트 디스플레이의 연결을 확인한 다음에는 디바이스가 16세그먼트 디스플레이와 동작하도록 구성해야 한다. 표 2는 주요 MAX6954 레지스터의 초기 파워 업 상태이다. MAX6954에 처음으로 전원을 연결하면 디바이스가 셧다운 모드이고 모든 디지트가 켜지지 않고 16세그먼트 폰트 맵이 선택되고 디바이스가 최대 8개 디지트를 스캔하도록 설정된다. 디폴트 디코드 모드(0x01) 및 디지트 유형(0x0C) 레지스터 설정이 16세그먼트 애플리케이션에 적절하다.
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비트는 현재 깜빡임 타이밍 단계를 보여준다 (읽기 전용 - 이 비트에 대한 쓰기는 무시된다).
표 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에서 발진기 출력을 이용할 수 있다. 디지트 제어 레지스터 0x60~0x67의 파워 업 상태가 0x20이거나 세그먼트가 켜지지 않으므로 16세그먼트 디스플레이가 블랭크이다 (표 2와 그림 3 참조).
MAX6954는 16세그먼트 디스플레이를 위해 104문자 ASCII 폰트 맵을 포함한다. 이들 문자는 표준적인 ASCII 폰트를 따르며 £, €, ¥, °, µ, ±, ≠ 및 를 추가한다. 7비트가 104문자 폰트 맵을 표현한다. 8번 비트는 소수점(DP)을 표시할지를 선택한다(표 4). 디지트 레지스터는 P0과 P1의 두 플레인으로 구현된다. 각 디지트는 플레인 P0의 1바이트와 플레인 P1의 1바이트인 2바이트 메모리로 표현된다(표 7참조). 디지트 레지스터는 플레인 P0(레지스터 0x20~0x27), 플레인 P1(레지스터 0x40~0x47), 또는 두 플레인(레지스터 0x60~0x67)이 동시에 데이터가 업데이트되도록 맵핑할 수 있다. 디지트 레지스터의 데이터는 16세그먼트 디스플레이의 디지트 세그먼트를 직접적으로 제어하지 않는다. 레지스터 데이터는 16세그먼트 폰트의 데이터를 저장한 문자 생성기의 주소를 지정하는 데 이용된다(그림 3). 디지트 데이터의 하위 7비트(D6~D0)는 문자를 선택한다. 레지스터 데이터의 최상위 비트가 디지트의 소수점 세그먼트를 제어한다. 이 비트를 1로 설정하면 소수점이 켜지고 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글자를 표시한다. 구성 레지스터를 프로그램할 때 깜빡임 기능을 해제했으므로 0x20~0x27 레지스터에 데이터를 작성해서 디지트 0에서부터 7까지를 제어할 수 있다. 그림 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나 키 스캔 같은 기타 첨단 기능에 대해서는 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