비휘발성 메모리 레지스터 - 안전성 및 신뢰성 향상을 위한 디지털 온도 센서의 차세대 진화
글/브라이스 모건(Bryce Morgan)
엄청난 문제를 야기할 수 있는 전자제품 과열에 관한 뉴스를 거의 매일 보는 것 같다. 물론 과열된 제품은 문제를 일으킬 수 있기에, 불가피한 발열에 대한 적절한 관리는 합리적이고 신중한 제품 설계에 있어 필수적이다. 이 글에서는 디지털 출력(I2C 프로토콜) 온도 센서에 내장된 내부 사용자 프로그래머블 레지스터에 대한 설명과 비휘발성 메모리 레지스터가 통합된 디지털 온도 센서를 사용하여 일반적인 설계 문제를 해결할 수 있는 방안을 소개한다.
온도 센서 레지스터
먼저 산업 표준 I2C 온도 센서의 내부 레지스터가 어떻게 프로그래밍되는지에 대해 기본적인 사항부터 살펴본다. 이러한 I2C 온도 센서는 ‘LM75 타입’ 프로토콜 호환 디바이스로 불리기도 하며, 다음 4개의 기본적인 내부 레지스터를 포함한다.
• 포인터 레지스터
• 컨피규레이션(configuration) 레지스터
• 상한 온도(THIGH) 제한 레지스터
• 하한 온도(TLOW) 제한 레지스터
이 레지스터들을 통해 전원을 켠 후에 호스트 컨트롤러에 의해 초기화 과정 진행 중에 온도 센서의 동작을 사용자 정의에 맞도록 설정을 할 수 있다(여기서 온도 레지스터는 제외되며, 이 레지스터에 대해서는 추후 설명한다). 포인터 레지스터는 선택된 레지스터를 간접적으로 ‘지정(pointing)’하여 4개 레지스터 중 하나에 액세스할 수 있게 한다. 컨피규레이션, TLOW 및 THIGH 제한, 온도 레지스터는 I2C 소프트웨어 명령으로는 직접 액세스할 수 없으며, 다음과 같이 포인터 레지스터를 통해서만 액세스할 수 있다.
컨피규레이션 레지스터는 주요 동작 모드와 디바이스의 설정을 제어하는 데 사용되며, 여기에는 온도 변환 분해능, 오류 허용오차 큐, ALERT 핀 극성, 경보 서모스탯 모드, 셧다운 모드 등이 포함된다. 또한 시중의 일부 디바이스는 원샷(one-shot) 모드를 제공한다. 원샷 모드는 절전 모드로서 디바이스가 대기 모드에서 벗어나 온도 측정을 수행하고 온도 레지스터를 업데이트한 후 다시 대기 모드로 전환하는 것이다.
온도 레지스터는 읽기 전용 레지스터이며, 가장 최근 수행한 온도 측정을 디지털화한 값으로 저장하고, 간단하게 읽어 최신 온도 측정값을 파악할 수 있다. 온도 레지스터는 언제든 읽을 수 있으며, 온도 측정이 백그라운드에서 수행되기 때문에 온도 레지스터 읽기는 진행 중인 다른 모든 동작에 영향을 미치지 않는다.
TLOW 및 THIGH 제한 레지스터는 온도 경보를 위한 사용자 프로그래머블 하한 및 상한 온도 제한을 저장한다. 다음 그림은 전형적인 온도 프로파일을 보여준다. 예를 들어 사용자가 TLOW 및 THIGH 제한 레지스터를 각각 85°C 및 50°C로 설정하면, 온도 센서는 제한 값 중 하나가 초과될 경우 호스트 컨트롤러에 알리기 위해 플래그를 설정하고 출력 핀을 구동할 수 있다.
휘발성 메모리 레지스터 관련 문제
이제 이러한 레지스터의 설정과 관련된 일반적인 문제를 살펴보자. 첫 번째 문제는 이러한 사용자 프로그래머블 레지스터들은 전력이 제거되면 레지스터에 저장된 데이터 값이 저장되거나 유지되지 않는 휘발성 메모리 유형의 레지스터라는 점이다.
이러한 휘발성 메모리 레지스터는 시스템 구동 및 초기화 시퀀스 수행 시마다 업데이트해야 하므로, 위험하고 신뢰할 수 없는 타이밍 이벤트를 초래하여 레지스터들이 실수로 잘못 구성 및 설정되어 제품에서 열이 폭주하는 문제를 발생시킬 수 있다. 전체 수명 주기 동안 제품을 얼마나 많이 끄고 켜는지 생각해 본 적이 있는가? 일부 제품들은 수백 번에 그치지만 무려 수천 번에 이르는 제품들도 있으며, 이 경우 구동 시퀀스에서 에러가 발생할 가능성이 높아진다. 이는 중대한 문제이다.
앞 사례에서 TLOW 및 THIGH 제한 레지스터는 각각 50℃ 및 85℃로 설정되었다. 하지만 구동 시퀀스 동안 시스템 잡음으로 인해 단 1개의 디지털 비트가 로직 1 상태로 세트되어 THIGH 제한 레지스터가 우발적으로 185℃로 설정된다면 어떻게 될까? 이로 인해 발생한 시스템 과열이 화재까지 이어지지는 않는다 해도, 시스템 성능 저하는 물론 치명적인 문제도 발생할 수 있다. 오늘날 많은 제품들은 구동 시퀀스 동안 제품 내 주요 블록과 디바이스의 타이밍 등 수많은 작업을 진행한다. 이러한 이벤트 타이밍은 적절한 최종 사용자 동작 수행을 위해 매우 중요하다...(중략)
연산증폭기 노이즈요인과 시스템 노이즈의 최소화
작성자 : Kevin Tretter