디지털 온도 센서는 마이크로컨트롤러나 다른 로직 장치에 매우 정확한 온도 측정값을 입력하는 가장 간단한 방법을 제공합니다. 이 온도 센서 시리즈의 마지막 기사에서 우리는 아날로그 온도 센서를 살펴보았습니다. 이러한 센서들은 단순한 ADC 읽기를 통해 구현하기 쉬워 보일 수 있지만, 가장 정확한 측정값을 얻기 위해서는 생산 중 각 장치의 ADC를 보정해야 하는데, 이는 항상 가능한 것은 아닙니다. 이 기사에서는 여러 가지 다른 디지털 온도 센서 옵션에 대해 자세히 알아보겠습니다. 디지털 온도 센서는 일반적으로 간단한 아날로그 온도 센서보다 비용이 더 들 수 있습니다. 그러나 이러한 장치를 사용하여 생산하는 편리함과 용이성은 높은 수준의 측정 정밀도가 요구되는 곳에서 추가 비용을 정당화하는 경우가 많습니다.
디지털 온도 센서는 이 시리즈에서 살펴볼 다섯 번째 센서 유형입니다. 이 시리즈는 마지막 기사로 마무리되며, 다양한 환경 조건에서 모든 테스트한 센서들을 서로 대결시켜 그들의 기능성, 정확성, 그리고 행동을 비교할 수 있게 합니다. 우리는 표준 온도 센서 카드를 위한 템플릿 세트를 구축하는 소개 기사로 시리즈를 시작했습니다. 아날로그 및 디지털 버전 모두 메자닌 커넥터를 사용하여 쌓을 수 있거나, 그들의 에지 커넥터에서 독립적으로 읽을 수 있습니다. 시리즈 후반부에는 이 모든 센서들을 위한 호스트 보드를 구축할 예정이며, 이를 통해 단일 센서에서 데이터를 읽어 그 기능을 검증하거나, 모든 보드의 스택을 읽어 모든 데이터를 함께 로그할 수 있습니다.
이 시리즈에서는 다양한 온도 센서들을 살펴보고, 그들의 장단점과 일반적인 구현 방식에 대해 이야기할 것입니다. 시리즈는 다음 센서 유형들을 다룰 예정입니다:
제 프로젝트와 마찬가지로, 프로젝트의 세부 사항, 회로도, 보드 파일은 GitHub에서 다른 온도 센서 구현과 함께 찾을 수 있습니다. 이 프로젝트는 오픈 소스 MIT 라이선스 하에 공개되어 있으며, 이를 통해 개인적이거나 상업적인 목적으로 디자인이나 그 일부를 자유롭게 사용할 수 있습니다.
온도 센서의 출력값만 읽고 싶다고 가정해 보겠습니다. 이 경우, 디지털 온도 센서는 전기적으로 가장 간단하게 구현할 수 있는 옵션입니다. 디지털 온도 센서는 모든 감지, 보상, 변환 작업이 칩 내에서 이루어지기 때문에 우수한 정확도 수준을 제공할 수 있습니다. 마이크로컨트롤러의 ADC(또는 외부 ADC)를 교정할 필요가 없습니다. 또한, 아날로그 온도 센서와 마이크로컨트롤러 사이의 연결에 부착된 근처의 트레이스나 다른 장치로부터 발생할 수 있는 전자기 간섭에 대해 걱정할 필요가 없습니다. 이는 온도 읽기에 의도치 않게 영향을 줄 수 있기 때문입니다.
이 프로젝트에서는 다양한 해상도와 감지 범위를 가진 네 가지 다른 디지털 온도 센서 옵션을 구현할 것입니다.
이름 |
MAX31826MUA+T |
STS-30-DIS |
EMC1833T |
SI7051-A20-IMR |
유형 |
디지털 |
디지털 |
디지털 |
디지털 |
감지 온도 최소 (°C) |
-55°C |
0°C |
-40°C |
-40°C |
감지 온도 최대 (°C) |
+125°C |
+60°C |
+125°C |
+125°C |
감지 범위 |
로컬 |
로컬 |
원격 |
로컬 |
해상도 (비트) |
12 |
16 |
|
14 |
정확도 (°C) |
±0.5°C (+10°C에서 +85°C까지) ±2°C (-55°C에서 125°C까지) |
±0.2°C |
±1°C (-20°C에서 +105°C까지) |
±0.1°C |
작동 온도 (°C) |
-55°C에서 +125°C까지 |
-40°C에서 +125°C까지 |
-40°C에서 +125°C까지 |
-40°C에서 +125°C까지 |
기능 |
1 와이어 버스, 기생 전력 |
I²C |
I²C, SMBus |
I²C |
최소 공급 전압 |
3 V |
2.15 V |
1.62 V |
1.9 V |
최대 공급 전압(V) |
3.7 V |
5.5 V |
3.6 V |
3.6 V |
전류 소모량(uA) |
저 논리 레벨 읽을 때 4 mA |
대기 시 45 uA |
변환 중 700 uA, |
195 nA |
제조사 |
Maxim Integrated |
Sensirion AG |
Microchip |
Silicon Labs |
패키지 |
8-MSOP |
8-VFDFN |
8-VDFN |
6-DFN |
EMC1833T를 포함한 이유는, 저에게 있어 매우 흥미로운 센서이기 때문입니다. 이것은 원격 온도 감지 장치로, 구성 요소 내부에 위치한 센서를 사용하지 않습니다. 대신, 이 경우 트랜지스터인 외부 센서의 출력을 디지털 신호로 변환하여 온도를 감지합니다. 이것이 반드시 "디지털 온도 센서" 카테고리에 속한다고는 확신할 수 없습니다. 왜냐하면 다른 센서들과는 잘 맞지 않기 때문입니다. 그럼에도 불구하고, 트랜지스터가 온도 센서로 사용된다는 것은 일반적으로 잘 알려져 있지 않아, 이를 어디에 둬야 할지 몰랐습니다. 이 센서에 대해 저를 매료시키는 점은 거의 모든 트랜지스터를 사용하여 온도를 측정할 수 있다는 것입니다. ASIC을 설계하고 있다면, 이 목적을 위해 다이에 추가 트랜지스터를 쉽게 포함시킬 수 있습니다. 그런 다음 이 트랜지스터를 EMC1833T와 같은 센서로 읽어, 실리콘에 추가 복잡성을 추가하지 않고도 다이의 외부 온도를 측정할 수 있습니다. 이를 다른 방식으로 보면, 실리콘에 맞춤형 디지털 온도 센서를 설계하고 구축하는 데 따른 엔지니어링 위험을 발생시키지 않고도 다이의 온도를 모니터링할 수 있다는 것입니다.
우리가 구현할 첫 번째 센서는 Maxim Integrated에서 생산한 MAX31826입니다. 이 센서는 더 일반적인 I2C나 SPI 버스가 아닌 1-Wire 버스에서 작동합니다. 하나의 잠재적인 문제는 1-Wire가 프로젝트가 기반을 둔 마이크로컨트롤러에서 통신 프로토콜로 제공될 가능성이 낮다는 것입니다. 그러나, 이는 간단한 프로토콜로 비트 방식을 사용하며, 센서를 작동시키기 위해 단지 두 개의 전선만 필요로 하는 점에서 더 인기 있는 선택들보다 상당한 장점을 가지고 있습니다. 전원 공급을 포함하여, I2C는 네 개의 전선이 필요하고, SPI는 다섯 개의 전선이 필요합니다. 반면에, 1-Wire는 대부분의 응용 프로그램에서 접지와 데이터 라인만을 요구합니다. 왜냐하면 기생 전력 기술을 사용하여 데이터 라인에서 자체 전력을 공급할 수 있기 때문입니다. 센서 내에는 데이터 라인이 저 상태일 때 IC의 전원 공급을 유지할 수 있는 커패시터가 통합되어 있어, 대부분의 정상적인 운영 조건에서 전용 전압 공급이 필요 없게 만듭니다. 이는 사용 가능한 공간이 매우 제한된 보드에 매우 편리한 솔루션이 될 수 있습니다.
센서와 1-Wire 버스의 또 다른 흥미로운 기능은 장치 패키지에 설치된 수동으로 선택 가능한 핀을 사용하여 장치에 4바이트 주소를 설정할 수 있는 능력입니다. 이를 통해 각 장치에 고유한 주소를 부여함으로써 단일 1-Wire 데이터 버스에 최대 16개의 온도 센서를 설치할 수 있습니다. 이는 마이크로컨트롤러 핀이 부족하고 동시에 많은 수의 온도 센서를 사용하여 감지 기능이 필요한 경우 매우 편리한 옵션이 될 수 있습니다.
이 시리즈의 이전 기사에서 살펴본 센서들과 비교할 때, MAX31826은 매우 정확할 뿐만 아니라 고해상도 데이터를 제공합니다. 센서는 -10°C에서 +85°C 사이에서 +/- 0.5°C의 정확도를 제공하며, 전체 온도 범위인 -55°C에서 +125°C에서는 +/- 2°C의 정확도를 제공합니다. 모든 센서 읽기 값은 대부분의 마이크로컨트롤러가 제공하는 것보다 높은 해상도인 12비트 값으로 제공됩니다.
온도 센서로서 MAX31826은 많은 것을 제공하지만, 보너스 기능으로 1kB EEPROM이 탑재되어 있습니다. 다이에 여분의 공간이 남아 있었나 봅니다. 마이크로컨트롤러에 통합 EEPROM이 없고 애플리케이션에 일부 구성 데이터를 저장해야 하는 경우, 이 온도 센서가 해결책을 제공합니다. 추가적인 비휘발성 저장소가 필요한 경우, 이 온도 센서는 부품 수를 줄이고 보드 공간을 절약할 것입니다.
데이터시트는 온도가 100°C를 초과할 수 있는 경우 기생 버스 전원을 사용하는 대신 장치를 직접 전원으로 구동할 것을 권장합니다. 대부분의 전형적인 애플리케이션에서는 이러한 온도 수준에 도달할 필요가 없겠지만, 우리가 센서를 통해 수행할 테스트는 100°C를 초과할 것입니다. 따라서, 이 연습에서는 매혹적인 기생 전력 옵션을 탐색하는 대신 장치를 직접 전원으로 구동하는 권장사항을 따를 것입니다.
보드 형태와 일반적인 레이아웃은 이 시리즈의 소개에서 만든 프로젝트 템플릿에서 나왔습니다. 우리가 일반적인 통신 버스를 사용하지 않기 때문에, 관련된 네트와 그 구성 요소들을 보드에서 제거했습니다. 그래도 다른 스택된 센서들에게 문제가 발생하지 않도록 스태킹 커넥터의 연결은 남겨두었습니다. 1-Wire 버스를 사용할 때는 호스트 마이크로컨트롤러로 통신하기 위해 칩 선택 핀만 사용하면 됩니다.
저는 과거 프로젝트에서 Sensirion이 생산한 STS-30-DIS를 사용했습니다. 그 이유는 놀라운 정밀도와 NIST에 추적 가능한 보정된 지시값 때문이었습니다. 이것은 식품 서비스 회사를 위해 개발된 계측기로, 정부 보고 목적으로 데이터를 수집해야 했기 때문에 필요했습니다. 작은 발자국, 넓은 전압 범위, 놀라운 정확도, 그리고 선형화된 16비트 디지털 출력을 갖춘 이 장치는 양의 온도 감지만 필요한 경우 매우 매력적입니다. 영하의 온도를 감지해야 하는 경우, STS-30A-DIS 변형은 자동차에 적합하며 -40°C에서 125°C까지의 감지 범위를 가지고 있습니다. 그러나, 이 증가된 감지 범위는 전체 정확도에 약간의 비용을 초래합니다.
이전 아날로그 온도 센서 기사에서, 아날로그 온도 센서가 프로세스 모니터링, 팬을 켜고 끄는 것, 또는 마이크로컨트롤러의 개입 없이 작동할 수 있는 기타 열 관리 시스템에 얼마나 훌륭한지에 대해 이야기했습니다. STS-30은 비슷한 기능을 수행하는 데 사용될 수 있는 ALERT 핀을 제공합니다. 이는 마이크로컨트롤러의 인터럽트 핀에 연결하기 위한 것이지만, 전용 애플리케이션 노트도 있으며 자동으로 부하를 전환하는 데 사용될 수 있습니다. 마이크로컨트롤러의 인터럽트 기능과의 인터페이스 능력은 중요할 수 있습니다. 이를 통해 센서는 마이크로컨트롤러가 센서를 드문드문 폴링하고 읽은 데이터에 대응하는 것에 의존하는 대신, 즉시 처리해야 할 무언가가 있음을 마이크로컨트롤러에게 고우선 순위 신호로 즉시 알릴 수 있습니다. ALERT 출력이 부하를 구동할 수 있도록 트랜지스터에 연결되면, 센서는 모니터링/로깅 목적뿐만 아니라 자율적인 열 관리 기능을 가질 수 있습니다. 아날로그 솔루션에 비해, 이 설정은 디지털 STS-30을 더 저렴한 옵션으로 만들 수 있습니다. 별도의 비교기가 필요하지 않으며, ALERT 핀의 임계값은 사용자가 마이크로컨트롤러/HMI를 통해 구성할 수 있으므로 공장 설정이 필요하지 않습니다.
STS-30 시리즈 장치는 모두 I2C 버스를 통신에 사용합니다. 이 기사에서 구현하는 회로도는 통신 버스가 올바르게 기능하기 위해 일반적으로 필요한 풀업 저항을 포함하지 않습니다. 이러한 풀업 저항은 대신 호스트 보드에 장착될 것입니다. 버스당 풀업 저항 세트가 하나만 필요하기 때문에 각 센서에 저항을 추가하면 버스에 여러 풀업 저항이 추가되어 오작동을 일으킬 수 있습니다. 게다가, 모든 저항이 병렬로 연결되면 전체 저항이 감소합니다.
ADDR 핀을 사용하면 장치에 대해 두 가지 다른 주소 중에서 선택할 수 있어, 동일한 I2C 버스에 두 개의 STS-30 구성 요소를 연결할 수 있습니다. 이것이 1-Wire 버스의 MAX31826 장치의 기능만큼 인상적이지는 않지만, 여러 장치를 사용할 수 있게 해주는 편리한 기능입니다. ADDR 핀을 논리 저(GND)로 당겨 기본 주소를 0x4A로 설정하고, 논리를 높은 상태로 당기면 이것이 대체 주소인 0x4B로 설정됩니다.
STS-30의 패키지가 마음에 듭니다. 컴팩트하지만 너무 복잡하지 않아 스텐실을 사용하는 경우 수작업으로 보드를 조립할 수 있습니다. 센서 패키지와 0603 디커플링 캐패시터가 함께 있으면 위에서 살펴본 MAX31826과 대략 같은 크기입니다. 더 작은 캐패시터를 사용하면 고밀도 보드에 아주 잘 맞을 것입니다. IC 아래의 큰 접지 패드는 접지면에서 IC 내부의 온도 감지 접합부로 열을 전달하는 데 탁월한 경로를 제공합니다. 이는 접지면을 사용하여 보드로 과잉 열을 배출하는 대형 MOSFET이나 레귤레이터와 같은 장치 옆에 배치하기에 완벽한 선택입니다. IC를 열원에 가깝게 배치하면 더 정확한 온도 감지 결과를 얻을 수 있습니다.
제가 이전에 언급했듯이, Microchip에서 생산한 EMC1883 장치는 다양한 훌륭한 기능을 갖추고 있을 뿐만 아니라, 트랜지스터 접합부의 온도를 읽을 수 있다는 점에서 매우 흥미롭습니다. 위에서 살펴본 STS-30은 절대값에 의해 트리거되는 경고 인터럽트 핀을 가지고 있었지만, EMC1883은 감지된 온도의 변화율에 기반하여 경고를 생성하도록 구성할 수 있습니다. 이 변화율 경고는 지능적인 열 관리 솔루션을 사건이 발생한 후가 아니라 필요에 앞서 자동으로 켤 수 있게 해줍니다. 이는 운영 온도의 세심한 관리를 통해 장치의 신뢰성을 전반적으로 향상시킬 수 있는 잠재력을 가지고 있습니다. STS-30과 마찬가지로, 완전히 소프트웨어로 구성 가능하며, 이는 완전히 아날로그 온도 조절기를 사용하여 같은 결과를 달성하려고 할 때 필요할 수 있는 모든 공장 설정 옵션보다 상당한 이점을 제공합니다.
우리가 테스트하고 있는 EMC8xx 시리즈의 특정 모델은 단일 접합부의 감지만을 지원합니다. 그러나, 시리즈 내의 다른 모델들은 최대 다섯 개의 접합부에 대한 감지를 제공할 수 있습니다.
STS-30과 같이, 이 센서도 단일 I2C 버스에 여러 센서를 설치할 수 있는 I2C 기반 센서입니다. 하나의 차이점은 EMC1833T ADDR 핀의 구현이 STS-30 장치의 이진 켜기/끄기 특성과 다르다는 것입니다. 이 장치는 다른 풀업 저항 값들을 사용하여 최대 여섯 개의 별도 주소를 설정할 수 있게 해줍니다. ADDR 핀은 또한 인터럽트 핀 중 하나로 기능하며, 열 경고 핀(열 ALERT/경고 2 핀과 함께)으로 작동합니다. 이전 장치 설치와 같이, 온도 센서 보드의 I2C 라인에 풀업 저항을 구현하지 않을 것입니다. 그러나 센서 통신 버스가 올바르게 기능하도록 회로 내 어딘가에 반드시 장착해야 합니다.
데이터시트는 CPU 트랜지스터를 측정용으로 사용할 수 없기 때문에 원격 감지 요소로 2N3904 양극성 접합 트랜지스터를 사용할 것을 권장합니다. 이 보드에서 온도를 감지하기 위해 2N3904의 표면 실장 변형을 사용하고 있습니다. MMBT3904는 BJT를 다루는 거의 모든 실리콘 제조 회사에서 구할 수 있으며, 이 경우 가장 잘 구비되어 있던 ON Semiconductor 부품을 사용하기로 했습니다. 마지막으로 Octopart에서 확인했을 때 수백만 개가 있었습니다.
이 시리즈의 이전 기사에서 했던 것처럼, 온도 감지 요소인 우리의 트랜지스터를 열 차단 내에 배치했습니다. 비감지 요소들은 열 차단 뒤에 배치했습니다. 이는 EMC1833T가 자체적으로 발생할 수 있는 열로 인해 온도 측정에 부정적인 영향을 줄 수 없도록 방지합니다.
마지막으로, Silicon Labs의 Si7051-A20입니다. 이 시리즈 전체에서 가장 기대되는 결과를 이 장치에서 보게 될 것입니다. MAX31826은 상당히 정밀한 센서이지만, Si7051-A20은 인상적인 +/- 0.1°C의 정밀도와 샘플링 시 단지 195 nA의 매우 낮은 전력 소비를 제공합니다. 전력 소비는 다른 모든 디지털 온도 센서보다 적어도 한 자릿수 이상 적으며, 이전 기사에서 살펴본 아날로그 온도 센서보다 훨씬 적습니다.
많은 센서들이 매우 높은 정확도를 광고하지만, 그 수치들은 보통 전체 감지 범위의 제한된 부분에만 적용됩니다. 반면에, Si7051-A12는 전체 -40°C부터 +125°C 감지 범위에 걸쳐 보고된 정확도를 제공합니다. 더욱이, 0.1°C 오류는 평균이나 최소가 아닌 최악의 시나리오 정확도입니다. 14비트 해상도를 선택한 Si7051-A20는 0.01°C의 반복 가능한 읽기 값을 제공합니다 - 나는 정확하고 반복 가능한 센서를 사랑합니다!
마지막 두 센서와 마찬가지로, Si7051-A20은 I2C 호환 센서입니다. 하지만, 주소 핀을 제공하지 않기 때문에 I2C 버스에 단일 장치만 연결할 수 있습니다. 이는 같은 버스에 연결된 다른 장치들 사이에서 전원을 전환하거나 I2C 스위치를 추가하지 않는 이상 가능합니다. 이는 추가적인 IO 핀이 필요하며 회로의 복잡성을 증가시켜, 회로 보드 전반에 걸쳐 여러 위치를 감지하는 데 Si7051-A20을 덜 이상적으로 만듭니다. 이 장치는 또한 어떠한 경고/인터럽트 핀도 가지고 있지 않으며, 순수하게 디지털 온도 센서로 사용될 목적입니다. 일반적으로, 회로 보드에서 열 관리를 자동화하려는 경우, 덜 정확하고 비용이 낮은 센서가 그러한 응용 프로그램에 충분할 것입니다.
STS-20을 마지막으로 사용했을 때 정말 마음에 들었던 기능 중 하나는 각 장치에 적용된 NIST 인증 교정이었습니다. 왜냐하면 제 고객이 그 기능을 요구했기 때문입니다. Si7051-A20은 데이터시트에서 이에 대해 언급하지 않지만, 교정 증명서가 제공됩니다. 또한, 더 구체적인 교정 증명서를 찾을 수 있었지만, 이는 Silicon Labs 웹사이트에 없으므로, 특정 회사가 구매한 단위에만 적용될 수 있습니다. 만약 그렇다면, Silicon Labs가 고객을 위해 특정 증명서를 발급하는 선례를 만들 수 있습니다.
이 기사에서 다룬 다른 I2C 구현과 마찬가지로, 이 카드의 I2C 라인은 데이터/클록 라인에 풀업 저항이 장착되어 있지 않습니다. Si7051-A20이 성공적으로 통신할 수 있도록 회로 내 어딘가에 각 라인에 풀업 저항을 포함해야 합니다.
6핀 DFN 패키지는 이 글에서 다룬 모든 무연 옵션 중에서도 손으로 프로토타이핑하기 가장 쉬운 것입니다. 스텐실이나 Voltera V-One과 같은 페이스트 적용 도구를 사용하면, 이 센서를 손으로 배치하고 기본 도구를 사용하여 리플로우하는 것이 매우 쉬워집니다. 이는 집이나 사무실 실험실에서 프로토타이핑하기에 완벽합니다.
이 글에서는 네 가지 다른 디지털 온도 센서를 살펴보았습니다. 그러나 프로젝트의 특정 요구 사항을 충족할 수 있는 수백 가지 다른 디지털 온도 센서 옵션이 잘 구비되어 있습니다. 아날로그 온도 센서는 자율적인 공정 모니터링이나 아날로그에서 디지털 변환기와 함께 사용하기에 탁월하지만, 디지털 온도 센서는 마이크로컨트롤러가 있는 제품에 통합할 때 상당한 편의성을 제공합니다. 이 글에서 본 바와 같이, 구성 가능한 임계값에서 인터럽트와 경고를 생성할 수 있는 디지털 온도 센서가 있어, 아날로그 온도 센서와 함께 사용할 가능성이 높은 공장 설정 비교 기반 온도 조절기를 넘어서는 흥미로운 응용 프로그램을 가능하게 합니다. 현대 디지털 온도 센서의 정밀도와 정확도는 매우 높을 수 있지만, 많은 옵션이 아날로그 대응품보다 상당히 더 많은 전류를 소비할 수 있으며, 이는 자체 발열로 인한 일부 온도 오프셋을 제공할 수 있습니다.
가장 인기 있고 잘 갖춰진 디지털 온도 센서는 일반적으로 통신을 위해 I2C 버스를 사용하지만, SPI 및 1-Wire 버스 옵션도 프로젝트의 대체 통신 버스를 위한 사용 가능성을 충족하기 위해 쉽게 이용할 수 있습니다.
기사 시작 부분에서 언급했듯이, 이러한 센서 보드와 다른 모든 온도 센서 구현에 대한 세부 정보는 GitHub에서 찾을 수 있습니다. 이 디자인들은 모두 오픈 소스 MIT 라이선스 하에 공개되어 있으며, 개인적이거나 상업적인 용도로 디자인을 자유롭게 사용할 수 있습니다.
다음 PCB 디자인에서 Altium이 어떻게 도움을 줄 수 있는지 더 알아보고 싶으신가요? Altium의 전문가와 상담하세요.