서미스터 측정에서 온도 값을 얻는 방법
제가 경력을 쌓으면서 디자인한 모든 제품에는 일종의 온도 회로가 포함되어 있습니다. 가장 간단하고 비용 효율적인 회로는 NTC(부온도 계수) 또는 PTC(정온도 계수) 서미스터를 사용하여 온도를 측정합니다. 가장 기본적인 회로는 아날로그-디지털 변환기(ADC)가 있는 저가형 마이크로컨트롤러(MCU)에 연결된 저항기 분배기를 기반으로 합니다. 이 기사에서는 NTC 또는 PTC 서미스터를 ADC와 함께 사용하는 방법과 ADC 측정 결과를 사용 가능한 온도 값으로 변환하는 다양한 프로세스 기술에 대해 설명합니다.
일반적인 서미스터 회로는 ADC 입력에 적용되는 전압(VSense)을 제공합니다. 그런 다음 ADC는 이 전압을 입력 전압에 비례하는 LSB(최하위 비트) 디지털 값으로 변환합니다. 많은 저가형 MCU의 일반적인 ADC 분해능은 12비트이므로 이 기사의 공식에서는 12비트 분해능을 사용합니다. 그림 1은 전압 분배기와 정전류 회로를 모두 보여줍니다.
방정식 1을 사용하여 측정된 12비트 ADC LSB 값을 전압으로 변환할 수 있습니다.
여기서 ADC 분해능(12비트 ADC(212))은 총 4,096비트이고 VREF는 3.3V이며 측정된 ADC LSB 값은 2,024입니다(예: Texas Instruments(TI) TMP61 서미스터 제품군 테스트 보드의 ADC LSB 값).
예를 들어:
방정식 2는 전압 분배기의 VSense에서 저항을 계산합니다.
예를 들어:
방정식 3은 정전류 Ibias로부터 저항을 계산합니다.
여기서 Ibias는 200μA(TMP61 제품군 부품의 기본 표준 전류)이고 VSense는 1.63V입니다.
예를 들어:
전압을 ADC 표현으로 변환한 후에는 서미스터의 VSense 전압에서 실제 온도를 얻는 여러 가지 방법이 있습니다. 가장 일반적인 방법은 일반적으로 서미스터 제조업체에서 제공하는 저항 테이블이라고도 알려진 LUT(조회 테이블)를 사용합니다. 1°C LUT 테이블에는 166개의 요소가 있으며 컨트롤러에 저장해야 하지만 이로 인해 컨트롤러 메모리가 소모됩니다. 요소 수를 줄이기 위해 5°C LUT를 사용할 수 있지만 계산에 선형 오류가 발생할 수 있습니다. 5°C LUT에는 33개의 요소가 필요하지만 누구도 5°C 해상도를 보고 싶어하지 않으므로 5°C 또는 1°C보다 나은 해상도를 얻으려면 LUT의 추가 처리가 필요합니다. 이에 대해서는 선형 보간 섹션에서 더 자세히 논의하겠습니다.
또 다른 방법은 3차 다항식 곡선 맞춤을 기반으로 하는 Steinhart-Hart 방정식을 사용하는 것입니다. 이를 완료하려면 자연 로그 수학이 필요하며 계산을 수행하려면 부동 소수점 컨트롤러 또는 부동 소수점 수학 라이브러리가 있어야 합니다. Steinhart-Hart 방정식은 LUT보다 더 정확합니다.
PTC는 장치의 선형 출력을 고려하여 다항 방정식을 사용할 수 있습니다. 다항식은 서미스터에서 온도를 얻는 가장 정확한 방법입니다. 다항식은 덧셈, 뺄셈, 곱셈 및 음이 아닌 정수의 연산만을 포함하는 변수의 수학적 표현입니다. 다항식을 설명하는 또 다른 방법은 기울기에 대한 곡선 맞춤 방정식을 제공하는 것입니다. 다항식 피팅을 직접 적용한 다음 회귀 함수(곡선 피팅을 기반으로 한 온도)를 풀어 온도를 구해야 합니다. 대부분의 PTC는 다항식을 기반으로 합니다.
걱정하지 마세요. 다항식을 익힌 후에는 더 나은 정확도를 얻을 수 있습니다. 또한 컨트롤러에 LUT가 필요하지 않습니다. 이는 보간을 통해 LUT보다 빠르게 처리할 수 있는 간단한 수학 함수입니다. TI는 서미스터에서 가장 정확한 온도를 얻기 위해 컨트롤러의 C 코드에 이러한 수학 함수를 적용하는 방법에 대한 예와 함께 LUT 또는 4차 다항식 및 회귀 함수를 제공할 수 있는 설계 도구를 보유하고 있습니다.
LUT의 범위는 일반적으로 -40°C ~ 125°C이지만 서미스터의 열 한계에 따라 달라집니다. LUT에는 1°C와 5°C의 두 가지 유형이 있습니다. 예를 보려면 그림 2를 참조하세요.
LUT 방법은 다음과 같이 작동합니다.