외부 ADC의 사용 사례


9

대부분의 마이크로 컨트롤러 (uC)에는 주변 장치 세트의 일부로 ADC (Analog to Digital Converter)가 있으며 이는 두 개의 구성 요소를 단일 패키지로 통합하기 때문에 놀랍습니다. 이 ADC는 일반적으로 레지스터 매핑되기 때문에 데이터를 빠르고 쉽게 추출 할 수 있습니다.

이러한 긴밀한 통합에도 불구하고 여전히 외부 ADC를 구입할 수 있습니다. 이러한 경우에 대한 몇 가지 사례를 볼 수 있습니다.

  • ADC는 uC와 분리되어야합니다.
  • ADC 샘플의 비트 깊이는 uC의 ADC보다 높아야합니다.
  • 감지 할 전압이 마이크로 컨트롤러와 거리가 멀고 긴 아날로그 라인은 허용되지 않습니다.
  • 감지 전압은 uC에 적합하지 않은 열악한 환경에 있습니다.
  • 외부 ADC는 uC의 ADC보다 훨씬 빠릅니다.
  • 일부 샘플의 기준 전압은 다른 샘플과는 다르므로 여러 Vref 핀 (따라서 여러 외부 ADC)이 필요합니다.
  • 현재의 uC는 충분한 ADC 채널을 가지고 있지 않으며 새로운 uC를 넣는 비용은 엄청납니다.
  • 외부 ADC는 uC의 ADC보다 적은 전력을 소비합니다 (믿기 위해서는 예가 필요합니다).
  • ADC 채널은 동시에 샘플링해야합니다 (드문 시나리오).
  • 제조시 펌웨어 프로그래밍 비용이 더 비싼 ADC 부품의 비용을 능가합니다.
  • PCB에는 공간 제약이 있으며 uC를 맞출 수 없습니다.

이것은 모두 좋고 훌륭하지만, 이상한 점은 외부 ADC가 일반적으로 uC에 비해 상당히 비싸지 만 동등한 기능을 제공한다는 것입니다. 예를 들어 12bit 1Msps ADC (내부 기준)가 약 1 달러 인 EFM32Z 부품을 구매하거나 약 $ 3.50 (동일한 속도 (ish), 비교적 동일한 전력 번호 등)에 해당하는 12bit 200ksps ADC를 구매할 수 있습니다. 동일한 작업을 수행합니다 (ADC 데이터 추출).

문제는 엔지니어가 동일한 기능을 수행 할 수있을 때 엔지니어가 uC의 ADC보다 외부 ADC를 선호하는 강력한 이유가 있는가하는 것이다.


1
동시 샘플링은 실제로 신호 처리와 같은 일부 응용 분야에서 매우 일반적인 시나리오입니다.
Jason R

답변:


12

마이크로 컨트롤러의 내부 ADC가 필요로하는 작업을 수행하면 외부 ADC가 필요하지 않습니다. 그러나 그것은 그들이 목표로하는 사람이 아닙니다.

외부 ADC에 대한 대부분의 이유를 다루었지만 몇 가지가 더 있으며 내 의견으로는 가장 중요한 이유 중 하나입니다.

  1. 내부 ADC가 SAR과 같은 다른 샘플링 기술이 필요하지만 델타 시그마를 수행해야합니다.
  2. 내부 ADC는 내부 MCU이며 메인 MCU와 동일한 다이를 공유하므로 나머지 MCU의 노이즈로부터 100 % 자유로울 수 없으므로 외부 ADC는 초 저잡음을 만들 수 있습니다.
  3. 선택한 마이크로 컨트롤러 / SoC / FPGA에는 ADC가 없습니다. 후자의 두 가지가 가장 가능성이 높습니다. 가장 일반적인 SoC 및 FPGA에는 ADC가 전혀 없습니다. 그렇습니다. 할 수는 있지만 얻을 수없는 것은 많이 있습니다. 따라서 외부를 추가하십시오.

포인트 3의 경우, 예를 들어 Raspberry Pi를 사용하십시오. ADC를 전혀 사용할 수 없으므로 아날로그 작업을 수행하려면 외부 ADC를 추가해야합니다.


이제 흥미 롭습니다. 외부 ADC를 얻기 위해 비용을 지불하는 대신 잡음과 관련하여 더 높은 비트 깊이 uC ADC를 얻고 샘플링 된 결과의 최하위 비트를 무시하면 동일한 결과를 얻을 수 있습니다. 추가 비트는 방해 요소가 아닙니다).
TRISAbits

3
실제 신호 처리는 샘플 타이밍과 무관 한 프로세스의 노이즈에만 도움을 줄 수 있으므로 "임의의"노이즈를 발생시킵니다. 프로세서 시스템에서 발생하는 많은 노이즈는 샘플링 프로세스와 다소 동기화 된 전원 공급 장치 및 접지 부하의 변화로 인해 발생합니다. 이를 피할 수있는 유일한 방법은 ADC가 자체 분리 된 공급 레일을 사용하도록하는 것입니다. 많은 ADC가 아날로그와 디지털 VDD / VSS간에 100mV 정도를 쉽게 견딜 수 있기 때문에 완전 격리가 필요하지 않습니다.
supercat December

9

외부 ADC를 선호하는 또 다른 몇 가지 이유 :

  1. 많은 외부 ADC 부품에는 차동 입력이 포함되어 있지만 마이크로 컨트롤러의 내장 컨버터는 그렇지 않습니다. 입력에 공통 모드 노이즈가 많은 경우 매우 중요 할 수 있습니다.

  2. 많은 외부 ADC 부품은 컨버터 자체 앞에 앰프 단을 포함하므로 컨버터가 고 임피던스 신호를 직접 측정 할 수 있습니다. 많은 마이크로 컨트롤러에서 입력 신호를 샘플링하면 방해가 될 수 있습니다. 입력 신호의 특성에 따라 정확한 측정에 필요한 획득 시간이 크게 증가 할 수 있습니다.

  3. 내부 ADC의 너비가 12 비트 인 경우에도 일반적으로 4096에서 한 부분을 정확하게 판독해야한다는 의미는 아닙니다. 일반적인 외부 ADC는 둘 다 동일한 광고 된 비트 깊이를 가진 경우에도 내부 ADC보다 더 나은 사양을 갖습니다.

마이크로 컨트롤러에 ADC를 통합하는 것은 쉽다. 좋은 ADC를 통합하는 것은 훨씬 어렵습니다. 더 일반적인 것 같아요.


1
SAR 커패시터는 샘플링 커패시터 어레이를 입력에 순간적으로 연결하면 측정 대상이 중단되기 때문에 전하 주입에 약간의 어려움이있다. 입력 소스가 충분히 빨리 복구되지 않으면 측정 오류가 발생합니다. 해상도가 높을수록 일반적으로 더 큰 내부 샘플링 커패시턴스가 필요합니다. 델타 시그마 해상도는 디지털 카운터 확장에만 의존합니다. (고해상도 INL / DNL 사양은 달성하기 쉽지 않다.)
MarkU

@ supercat : 나는 변환의 일부로 앰프 단계를 고려하지 않았습니다. 이것은 흥미로운 회로 샘플링 방식을 엽니 다.
TRISAbits

2
@MarkU : 일부 회로에서 전하 주입 문제를 관찰했습니다. 흥미롭게도 일부 변환기는 이전 샘플링 된 값으로 입력을 충전하려고 시도하는 것 같습니다 (마지막으로 샘플링 된 입력에서) 0을 향해 충전하려고 시도하고 적어도 하나는 임의로 ( "임의로") 더 높은쪽으로 충전하는 것 같습니다 또는 다소 성가신 전압을 낮추십시오. 나는 왜 어떤 부분이 후자를 할 것인지 이해하지 못한다. 무언가를 향해 충전해야하더라도 0으로 꾸준히 충전하는 것은 "임의의"값으로 충전하는 것보다 낫습니다.
supercat

4

일부 외부 ADC가 존재하는 또 다른 이유는 내부 ADC가있는 마이크로보다 훨씬 오래 지속되어 많은 제품으로 설계되었습니다. 20 년에서 30 년 더 길어질 수 있습니다. (SOIC 부품이 링크 된 경우는 아니지만 클래식 부품의 현대화 된 다이 수축 변형 일 수 있음)

ADC에 뛰어난 해상도, 정확도 또는 속도가 없지만 프리미엄 가격을 요구하는 경우 이것이 바로 그 이유 일 수 있습니다.

새로운 설계의 경우에도 새로운 부품을 재 설계하지 않고 잘 작동하는 블록을 재사용하는 것이 바람직 할 수 있습니다 (결과 통합으로 BOM 비용이 감소하더라도). 리엔지니어링은 비쌀 수 있습니다. 테스트 및 규제 승인 프로세스

이제 처음부터 시작하고 선택한 마이크로 컨트롤러에 요구 사항을 충족하는 충분한 ADC 채널이있는 경우 위의 어느 것도 적용되지 않습니다.


2

나는 이것이 매우 오래된 질문이라는 것을 알고 있지만 우리가 내부적으로 자주 논의하는 질문입니다.

맞습니다. 외부 버전이 정확히 기능적으로 동일한 경우 외부 ADC를 선택하는 것은 드문 일 입니다. 그러나 저의 경험에 따르면 저렴한 마이크로는 일반적으로 온도 드리프트, 낮은 비트 수 (10-12 비트) 및 VCC 노이즈 (어떤 경우에는 +/- 20mV)를 갖는 상당히 거친 ADC를 가지고 있습니다. .. 오버 샘플링하고 노이즈가있는 경우 S / N을 향상시킬 수 있습니다. 우리의 제품 개발 활동에서, 우리가 선택한 MCU를 ADC의 품질에 기반을 둔 것은 드 rare니다. 일반적으로 툴체인, 비용, 기존 펌웨어 등에 관한 것입니다. 내부 ADC는 일반적으로 배터리 전압 읽기와 같은 중요하지 않은 작업으로 제한됩니다.

다양한 마이크로를 사용하면 빠른 샘플링 시간 동안 독점해야하는 공유 타이머에 문제가있을 수 있지만 MCU에 대해 MCU에 독점 될 때 MCU의 다른 항목 (소프트웨어 직렬 포트, ISR 등)을 방해 할 수 있습니다.

또한 VREF 란 무엇입니까? 펌웨어에서 VCC를 참조로 사용하는 경우 "실제"VCC로 교정하더라도 해당 값은 작동 중에 상당히 크게 변동될 수 있습니다. 과도 전류 사용량이 많은 온보드 고전류 장치 (라디오, Wi-Fi, MCU 등)가있는 경우 전송 중에 VCC가 4.8V로 떨어질 수 있으며 해당 창에서 샘플이 발생하면 0-1023을 순진하게 변환합니다. ADC_VAL / 1023 * 5.0으로 전압에 대한 ADC 읽기 값-200mV의 정밀도를 잃었습니다. 또는 다른 전원 모드 (USB, Wall wart, 배터리)가있는 경우 MCU의 VCC가 변경 될 수 있습니다 (특히 USB 사용). 비트 수가 동일하더라도 외부 ADC는 변동하는 VCC 조건에서 견고한 내부 외부 참조를 제공 할 수 있습니다.

해상도는 매우 중요합니다. 나는 10-12 비트의 해상도에 (실제 세계에서) 어떤 용도가 있다고 생각하지만 모든 종류의 실제 응용 프로그램 (가스 감지, 음향 측정, 가속도계 측정, 정밀 온도 측정 등)에는 16 비트가 일반적입니다. 적절한 신호 대 잡음 및 분해능 특성을 달성하기위한 최소 분해능. Atmel의 SAMD와 같은 정말 멋진 32 비트 MCU조차도 12 비트 내부 ADC로 제한됩니다.

클럭 지터도 문제이며 12 비트 폭의 판독 값을 제공하기 위해 다른 8 비트 마이크로가 필요하고 12 비트 값을 조작하기 위해 최소 2 클럭 사이클이 필요한 경우 고유 한 부정확성이 있습니다. 외부 오실레이터가 있기 때문에 외부 ADC를 사용합니다.

트랜스 듀서에 물리적으로 근접하고 MCU와의 절연이 중요한 경우도 있습니다. 매우 민감한 일부 트랜스 듀서에는 자체 조절 식 전력, 격리 된 접지면 및 0.01 % 패시브가있는 매우 민감한 트랜스 임피던스 초퍼 증폭기가 필요합니다.

때로는 내부 ADC를 사용해야하는 강력한 이유가 있습니다. DMA는 한 가지 이유입니다. 샘플링 속도는 또 다른 것입니다. 오버 샘플링의 용이성은 또 다른 것입니다. 높은 데이터 속도로 외부 ADC를 인터페이스하면 많은 귀중한 멀티플렉싱 I / O 핀을 소비하고보다 복잡한 디자인을 만들 수 있습니다. 또한, 우리가 사용한 많은 ADC는 I2C 기반이므로 샘플링 속도는 I2C 버스 속도에 의해 매우 제한됩니다. 1mbits / sec에서도 16 비트 읽기에는 시간이 오래 걸립니다.


이것은 훌륭한 통찰력입니다! 몇 년이 지나고 경험이 커지면서 내부 MCU ADC가 다소 거칠 수 있다는 데 동의해야합니다.
TRISAbits
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.