PSoC 디바이스 이용한 EL-백라이트의 마이크로컨트롤러 디자인 PSoC 디바이스 이용한 EL-백라이트의 마이크로컨트롤러 디자인
김재호 2008-01-17 16:03:16

PSoC 디바이스 이용한 EL-백라이트의 마이크로컨트롤러 디자인

EL-디스플레이(Electro-Luminescent Backlight Displays)는 자동차의 야간 백라이트 용도로 사용되었다. 이 애플리케이션 노트는 EL-백라이트의 마이크로 컨트롤러 디자인 예를 보여준다. 이 디자인 애플리케이션은 로저스(Rogers)회사와 싸이프레스 마이크로시스템간의 공동 작업으로 만들어 졌다

글 | 스티브 거버(Steve Gerber),싸이프레스

 

EL-백라이트 레퍼런스 디자인은세개의 주요 요소로 구성된다. 즉 ELBulb,드라이버, 그리고 컨트롤러이다.드라이버는 로저스-DUREL D306AEL 램프 드라이버를 사용하였다. 이 디자인 노트는 컨트롤러 부분의 기능을 주로 서술하고 있다. U2 디바이스(CY8C24143-24PI)가EL-백라이트 주요 동작의 컨트롤러 역할을 한다. CY8C24143 PSoCTM 디바이스는 설정하기 매우 쉬운 아날로그와디지털 요소를 가지고 있으며, 8비트MCU와 SRAM 그리고 4KB의 플래시메모리를 가지고 있는 8핀 딥 타입의디바이스이다.

PSoC으로 설정 가능

한 자원들은 디밍 컨트롤, Life Compensation,Elapsed TimeAlgorithm, Data Storagein Flash, 로우 볼티지 디텍션, 위치독 타이머이다.PSoC 블록 다이아그램ADC 모니터의 분압기의 전압이 사용자가 원하는 밝기를 결정해 준다.이것은 밝기를 조정해주는 작은 보드에서 표시해준다. 이러한 원리 동작을 위한동안 보상 동작은 수정 크리스탈과 리얼타임 클럭이 사용되어진다. PWM 1과 2는 직접 DUREL D306A EL 램프 드라이버에 연결되어 컨트롤 되어진다. M8CCPU와 SRAM 그리고 Internal MainOscillator는 블록 다이어그램에 표시 하지 않았다.

디밍 컨트롤

그림 1의 디밍 컨트롤 출력 CHF는54kHZ, DUREL D306A EL 램프 드라이버의 8비트 해상도(Resolution)PWM 출력이다. 다양한 PWM의 듀티사이클(Duty Cycle)은 디바이스의 출력을 제어해준다. 이 PSoC의 8비트 하드웨어 PWM은 15%에서 50%까지의 듀티사이클을 가진다.(그림 2)실제의 밝기를 조정하는 분압기의 구성형태는 그림 1에 보인 것 보다도 더복잡하다.

 

<그림 2> PSoC 안에서 디밍 컨트롤 PWM

그림 3에 정확한 전압 조정회로를 표시 하였다. 저항 R1과 R2는유저모듈의 FlashTemp 결과값을 플래시 메모리에 저장하기 위해 필요하다.플래시 메모리에 저장하는 동안 CPU는플래시에 저장하기 위한 데이터로 최적화 시킨다. FlashTemp 모듈의 사용은온보드 밴드갭 레퍼런스를 사용하기 위해 필요로 한다. 그러므로 밴드갭 레퍼런스는 ADC 측정을 위하여 정확하게사용되어야 한다.ADC에 의한 밴드갭 레퍼런스의 연속적인 사용은 ADC입력 전압의 제한을가져온다. 사용 가능한 입력 전압은 0V에서 2.6V까지 이다. 크고 작은 저항들은 10K Potentiometer에 사용된다.이렇게 디자인하면 최소 0.12V부터2.65V까지 전압을 사용할 수 있다. 제공된 전압이 안정적으로 유지할 수 있다면이 저항 값은 변화가 가능하다.출력 싸이클은 다양한 비율로 0%부터 100%까지 변화되는 것을 그림 4에서 보여주고 있다. 그림 4의 그래프의커브는 CHF PWM 듀티 사이틀과 분압기의 관계를 선형적으로 보여주고 있다. 이 선형성은 룩업 테이블에 의한 것이다.분압기는 PSoC 디바이스의 Mux와ACB00 아날로그 입력으로 사용되는데이러한 모양을 그림 5에 표시하였다.게인(Gain) 버퍼의 출력은 ASC10에 있는 SAR ADC의 입력 값으로 연결된다.ADC의 결과값은 CHF 아웃풋 PWM의 출력을 변화시키는데 유용하게 사용된다. 만약 ADC값이 2.6V이고, CHFPWM이 15% 듀티 사이클로 정해졌다면최고치 밝기가 나올 것이다. 아래는 룩업 테이블의 코드 1의 리스트이다.

‘IntervalTime’이라고 하는 카운터를 그림 6에 보여주는데 프로세서가 분압기의 값 측정과 PWM의 값 업데이트를 수행하는 것이다. 이 작동은 카운터의 인터럽트 신호이고 매 50msec 마다수행된다.

 

TableCHF:

db 111, 110, 109, 107, 106, 105,104,102

db 101, 100, 99, 97, 96, 95, 94, 93

db 91, 90, 89, 88, 86, 85, 84, 83

db 81, 80, 79, 78, 76, 75, 74, 73

db 72, 70, 69, 68, 67, 65, 64, 63

db 62, 60, 59, 58, 57, 56, 54, 53

db 52, 51, 49, 48, 47, 46, 44, 43

db 42, 41, 39, 38, 37, 36, 35, 33

Code 1. CHF Dimming Control

Look-up Table

<그림 5> PSoC 디자인에서 ADC 컨피규레이션

램프의 수명 연장

시간이 흐름에 따라 Electro-LuminescentLamps 밝기는 흐려진다. 대부분의 애플리케이션에서 램프의 밝기를 수명 동안 유지하는 것은 매우 중요하다고 할 수 있다. PSoC 디바이스의리얼타임 클럭은 램프가 수명 동안 밝기를 유지하는데 도움을 준다. PWM기능이 DUREL D306A EL 램프 드라이버의 CLF 10핀의 입력을 조정함으로써 밝기를 유지 시킨다.CLF Life를 보상하는 PWM은555Hz, 8비트 PWM로 동작하고 듀티사이클은 15%부터 36%이다. 이러한 변화 값은 EL 디스플레이의 수명과 깊은관계가 있다.그림 7에 EL 라이프 보상의 디자인을 표시하였다. EL 램프의 부하를 줄여주기 위해 실제 평균 전압은 높아진다.(그림 8) 시간이 경과해서 전압을 바꾸기 위해 255주기의 8비트 PWM이사용된다. 표 1에 주요한 파라미터들을표시하였다. 더 세세한 컨트롤을 위해아래의 값들이 테이블에 추가 되어야한다.

<그림 6> 프로세서가 분압기의 값 측정과 PWM의 값 업데이트를 수행하는‘IntervalTime’카운터

<그림 7> EL life 보상의 디자인

램프의 수명 연장

시간이 흐름에 따라 Electro-Luminescent Lamps 밝기는 흐려진다. 대부분의 애플리케이션에서 램프의 밝기를 수명 동안 유지하는 것은 매우 중요하다고 할 수 있다. PSoC 디바이스의리얼타임 클럭은 램프가 수명 동안 밝기를 유지하는데 도움을 준다. PWM기능이 DUREL D306A EL 램프 드라이버의 CLF 10핀의 입력을 조정함으로써 밝기를 유지 시킨다.CLF Life를 보상하는 PWM은 555Hz, 8비트 PWM로 동작하고 듀티 사이클은 15%부터 36%이다. 이러한 변화 값은 EL 디스플레이의 수명과 깊은 관계가 있다.

그림 7에 EL 라이프 보상의 디자인을 표시하였다. EL 램프의 부하를 줄여주기 위해 실제 평균 전압은 높아진다.(그림 8) 시간이 경과해서 전압을 바꾸기 위해 255주기의 8비트 PWM이 사용된다. 표 1에 주요한 파라미터들을 표시하였다. 더 세세한 컨트롤을 위해 아래의 값들이 테이블에 추가 되어야 한다.

TableCLF:

db 36, 34, 32, 30, 28, 26, 23, 21, 19, 17

Code 2. Life Compensation Lookup Table

시간 초과 시 알고리즘

이러한 알고리즘이 동작하는 동안 항상 똑 같은 밝기를 유지하기 위하여 매우 정확한 클럭이 램프 수명을 체크하면서 사용된다. 그림 9에 시간 초과에대한 수행을 순서도로 표시하였다. 이러한 알고리즘은 85??C 넘은 온도에서5만 번을 넘지 않는 범위에서 플래시블록에 지우기와 쓰기를 그리고 8천시간의 디스플레이 사용을 위해 디자인된 알고리즘이다.실시간 클럭은 그림 9 아래쪽에 서술하였다. 이 클럭은 외부에 사용하는32.768kHz을 기본으로 하고 PSoC의내부 저속 Oscillator(ILO)에 연결된다. 매 10분 마다 Fail-Safe의 방법이전체적인 초과 타임 트랙 유지를 위해플래시에 쓰여진다. 소프트웨어의‘Seconds’ 카운터와 ISR(SleepTimer Interrupt Service Routine)를위해 10분의 간격이 필요하다.카운터가 감소 할 때 600초부터 0까지 1초 간격으로 줄어드는데 10분의 시간과 유효한 표시들은 처음 램에 저장되고 두 개의 다른 플래시 블록에 저장된다. 이 시점에서 초 단위 카운터는599초가 되면 리셋 된다.이 예제 디자인 코드의 주요한 동작루프는 매우 간단하다. 각 루프마다 워치독 타이머가 정확하다. 인터벌 카운터가 0이 될 때까지 소프트웨어 코드가모니터 한다. 인터벌 타이머가 0을 얻으면 PWM 값이 업데이트 된다.

 

; Infinite loop

MainLoop:

M8C_ClearWDT

tst [Flags],UPDATE_

BRIGHTNESS

jz MainLoop

and [Flags],~UPDATE_

BRIGHTNESS

call UpdateBrightness

call MeasureTemperature

jmp MainLoop

Code 3. MainLoop

로우 볼티지 디텍션

낮은 전압 (LVD) 의 인지될 때, 플래시내의 Second Counter(RunningCount)에 데이터 값을 업데이트 하기위해 인터럽트가 CPU에 인가된다. 시스템이 꺼질 동안 안전한 저장을 위해10분 단위로 동작 한다. 안전한 동작 레벨 로 전 원 이 돌 아 오 면 SecondCounter는 Running Count에 값들은다시 재저장 한다. 이 시점에 경과된 시간과 보상은 다시 검증한다.이 시스템에서 LVD(~4.81V)와 POR(the Power On Reset), (~3.0V)을 보장하기 위한 Vdd 벌크 바이패스 커패시터는 업데이트 될 수 있게 디자인 되야하고 플래시 라이트 타임(~30 msecper Block) 보다 커야 한다. LVD 값은PSoC 디자이너에서 조정 가능하다. 그림 10에 470-uF Capacitor가 사용되었음을 보여주고 있다.이 커패시터 값은 LVD와 POR에180msec을 공급하기 위해 결정되었다.오직 하나의 블록만이 LVD ISR 내에쓰여지고 가장 나쁜 경우에는 세개의블록들에 쓰여진다. 만약 전원 불량이생기면 프로세서가 슬립 ISR 들어간 후슬립 ISR 모드를 빠져 나오면 LVDISR 상태로 된다.이 디자인에 12MHz CPU 스피드가사용되었고 이것이 로우 POR 지원과파워 다운시 플래시 라이트 하는데 이상적이라고 할 수 있다. ISR 루틴이 아래 코드로 적어 놓았다.

LVDISR:

call StopResources

; Stop all resources and Switch off EL

; Store the Running Count to the

E2PROM

mov A,[Seconds+1]

add A,[Seconds]

; Checksum = [Seconds+1] +

[Seconds]

cpl A

add A,1

; 2’s Complement of Checksum

mov [Checksum1],A

; Update the Checksum for Second

Counter

mov [DataPointer],Seconds

; Point to Second Variable

mov [DataCount],64

; 64 bytes to be writtenmov

[E2PromOffset],RUNNING_

COUNT_BLOCK_OFFSET

; Set offset to Running Count Block

of E2PROM

call WriteDataToE2Prom; Write the Second Counter to E2PROM

; Wait till Vcc is good

call TestForGoodVcc

; Loop till Vcc becomes good

call LoadParameters

; Load the values from E2PROM

call StartResources

; Start all the stopped resources

reti

Code 4. LVD ISR

파워 다운 플래시 라이트를 위해 CPU 스피드는 12MHz 이상을 요구한다. PSoC 디자이너에서 105℃와 125℃의 환경에 관해 PSoC 디바이스 설정이가능하다.예제 코드를 보여 주었듯이 전류 소모를 줄이고 방전 시간을 줄이기 위한ADC와 PWMs의 스위치는 매우 유용하다. 이 방법은 작은 벌크 커패시터를사용하는데 이롭다.

Flash Validation Process

유용한 플래시 수행은 LVD에 관해아래 단계의 수행이 필요하다.- Elapsed Time Block과 BackupBlock의 유효한 시그널의 체크.- Elapsed Time Count Value와Backup Count Value의 비교.- 만약 두개 블럭 중 하나가 유효한 스그널은 가지고 있다면 다른 블록에 유효한 블록의 데이터 값은 덮어 써라.- 만약 두개 블록의 데이터 모두 유효 하나 두개 블록의 값이 틀린다면 BackupBlock’S Value에 덮어 써라.

애플리케이션의 변화

8천시간을 넘겨서 타임 알고리즘을구성할 수 있다. 이것은 64바이트 블록들을 사용함으로써 구현 가능하다. 더나아가 전압의 모니터링 알고리즘 기능을 추가하여 램프의 수명을 늘릴 수 있다. 인위적으로 램프의 강도를 낮게 해놓으면 램프의 수명은 천천히 감소하게된다.이러한 디자인은 125℃의 온도에서사용 가능하고 플래시에 라이트 하는횟수는 제한된다. 이러한 경우에 싼 플래시를 외부에 사용하는 것이 권장되는데 I2C 블록 이 시리얼 플래시가 에 라이트 하는데 사용된다. 비용 절감을 위해, 싸이프레스의 CY8C21xxx 디바이스 패밀리가 이러한 애플리케이션에 적합하다.

<자료제공: 반도체네트워드 2006년 01월>

디지털여기에 news@yeogie.com <저작권자 @ 여기에. 무단전재 - 재배포금지>