Casos de uso para um ADC externo


9

A maioria dos microcontroladores (uC) possui um conversor analógico para digital (ADC) como parte de seu conjunto periférico, o que é fenomenal, pois integra dois componentes em um único pacote. Esses ADCs também costumam ser mapeados para registro, o que permite a extração rápida e fácil dos dados.

Apesar dessa forte integração, você ainda pode adquirir ADCs externos. Eu posso ver vários casos para estes:

  • O ADC precisa ser isolado do uC.
  • A profundidade de bits das amostras ADC precisa ser maior que a ADC do uC.
  • A tensão para detectar está longe do microcontrolador e linhas analógicas longas não são aceitáveis.
  • A tensão para detectar está em um ambiente hostil, não adequado para o uC.
  • O ADC externo faz uma amostragem muito mais rápida que o ADC do uC.
  • A tensão de referência para algumas amostras é diferente da de outras, exigindo vários pinos Vref (e, portanto, vários ADCs externos).
  • O uC atual não possui canais ADC suficientes e o custo de criação de um novo uC é proibitivo.
  • O ADC externo consome menos energia que o ADC do uC (eu precisaria de um exemplo para acreditar).
  • Os canais ADC devem ser amostrados simultaneamente (cenário raro).
  • O custo de programação do firmware no momento da fabricação supera o custo da peça mais cara da ADC (improvável).
  • O PCB possui restrição de espaço e nenhum uC pode se encaixar (improvável).

Tudo está bem, mas o que me parece estranho é que os ADCs externos geralmente são um pouco mais caros do que seus colegas do uC, mas fornecem funcionalidade equivalente. Por exemplo, você pode comprar uma peça EFM32Z com um ADC de 12 bits a 1Msps (com referência interna) por cerca de US $ 1 ou comprar um ADC equivalente de 12 bits a 200ksps por cerca de US $ 3,50 (mesmas velocidades (ish), relativamente números de energia etc.) e execute a mesma tarefa (extração de dados ADC).

A questão então se torna: existem razões convincentes para um engenheiro favorecer um ADC externo em vez do ADC de um uC quando este pode executar a mesma funcionalidade?


11
A amostragem simultânea é realmente um cenário bastante comum em alguns espaços de aplicativos, como o processamento de sinais.
Jason R

Respostas:


12

Se o ADC interno do seu microcontrolador executar o trabalho que você precisa, então não, não há necessidade de ADCs externos. Mas, então, não é para quem eles são direcionados.

Você abordou a maioria dos motivos de um ADC externo, mas há mais alguns e, na minha opinião, são alguns dos motivos mais importantes:

  1. Você precisa de uma tecnologia de amostragem diferente - por exemplo, o ADC interno é SAR, mas precisa fazer o Delta Sigma.
  2. O ADC interno, por ser interno e compartilhar o mesmo dado que o MCU principal, nunca estará 100% livre do ruído do restante do MCU; portanto, um externo seria possível produzir um ruído ultra baixo
  3. Seu microcontrolador / SoC / FPGA de sua escolha não possui ADC. Os dois últimos são mais prováveis ​​- os SoCs e FPGAs mais comuns não têm nenhum ADC. Sim, você pode conseguir, mas muitos não. Então você adiciona um externo.

Para o ponto 3, use o Raspberry Pi, por exemplo. Como não há ADC disponível, é necessário adicionar um externo para executar qualquer trabalho analógico.


Agora isso é interessante. Quando se trata de ruído, em vez de pagar para obter um ADC externo, o mesmo resultado seria alcançado obtendo um uC ADC com profundidade de bits mais alta e ignorando os bits menos significativos do resultado amostrado (isso obviamente pressupõe que o tempo de conversão extra de os bits adicionais não são um fator impeditivo).
TRISAbits

3
O processamento de sinal após o fato só pode ajudar com o ruído de processos independentes do tempo da amostra (e, assim, contribuir com ruído "aleatório"). Grande parte do ruído em um sistema de processador será resultado de variações na fonte de alimentação e no carregamento do solo que são um tanto sincronizadas com o processo de amostragem; a única maneira de evitá-los é fazer com que o ADC use seus próprios trilhos de suprimento separados. Observe que o isolamento total não é necessário, pois muitos ADCs podem facilmente tolerar 100mV entre o VDD / VSS analógico e o digital.
Super dec

9

Mais algumas razões para favorecer um ADC externo:

  1. Muitas partes externas da ADC incluem entradas diferenciais, enquanto os conversores internos dos microcontroladores geralmente não. Nos casos em que as entradas apresentam muito ruído no modo comum, isso pode ser muito importante.

  2. Muitas partes externas do ADC incluem um estágio de amplificador antes do próprio conversor, permitindo assim que o conversor meça diretamente um sinal de alta impedância. Em muitos microcontroladores, o ato de amostrar um sinal de entrada pode perturbá-lo. Dependendo da natureza do sinal de entrada, isso pode aumentar bastante o tempo de aquisição necessário para fazer medições precisas.

  3. Mesmo que um ADC interno tenha doze bits de largura, isso geralmente não significa que ele exige leituras precisas para uma parte em 4096. Um ADC externo típico geralmente possui especificações melhores do que uma interna, mesmo quando ambos têm a mesma profundidade de bits anunciada.

É fácil integrar um ADC a um microcontrolador. Integrar um bom ADC é muito mais difícil. Adivinha o que é mais comum.


11
Os ADCs da SAR sofrem um pouco com a injeção de carga, porque a conexão momentânea do conjunto de capacitores de amostragem à entrada interrompe o que está sendo medido. Se a fonte de entrada não se recuperar rapidamente, isso causa um erro de medição. Mais resolução geralmente requer uma maior capacidade de amostragem interna. A resolução Delta-sigma depende apenas da extensão de um contador digital. (Embora specs bom de alta resolução INL / DNL não são triviais para conseguir.)
Marku

@ supercat: Eu nunca tinha considerado um estágio de amplificador como parte da conversão. Isso abre avenidas interessantes de amostragem de circuitos.
TRISAbits

2
@ MarkU: Eu observei o problema de injeção de carga em alguns circuitos. Curiosamente, alguns conversores parecem tentar cobrar a entrada em relação ao valor amostrado anterior (de qualquer entrada que foi amostrada pela última vez), alguns tentam cobrar em direção a zero e pelo menos um parecia arbitrariamente ("aleatoriamente") cobrar em valor mais alto ou tensão mais baixa que eu achei bastante irritante. Não entendo por que uma parte faria a segunda; mesmo que precisasse cobrar algo, cobrar para zero consistentemente seria melhor do que cobrar para algum valor "aleatório".
Supercat

4

Outro motivo para a existência de alguns ADCs externos: eles existem há muito mais tempo do que micros com ADCs internos e foram projetados para muitos produtos. Possivelmente 20 ou 30 anos a mais. (Provavelmente não é o caso da parte SOIC vinculada, embora possa ser uma variação encolhida modernizada de uma parte clássica)

Onde o ADC não possui resolução, precisão ou velocidade estelares, mas exige um preço premium, esse pode ser o motivo.

Mesmo para novos projetos, pode ser preferível reutilizar blocos que funcionam bem, em vez de reprojetar uma peça mais nova (mesmo que a integração resultante reduz o custo da BOM). Essa reengenharia pode ser cara; o processo de teste e aprovações regulatórias, ainda mais.

Agora, se você está começando do zero e o microcontrolador escolhido possui canais ADC suficientes que atendem aos seus requisitos, nenhuma das opções acima se aplica.


2

Sei que essa é uma pergunta muito antiga, mas é uma questão que debatemos internamente com bastante frequência.

Você está certo, seria incomum escolher um ADC externo se a versão externa fosse exatamente funcionalmente equivalente. No entanto, na minha experiência, micros de baixo custo geralmente têm ADCs bastante ruins com variação de temperatura, baixa contagem de bits (10 - 12 bits) e ruído do VCC (+/- 20mV em alguns casos) ... embora o inverso possa ser verdadeiro. .. você pode melhorar o S / N se fizer uma amostragem excessiva e houver ruído presente. Em nossas atividades de desenvolvimento de produtos, é muito raro basear nossa seleção de MCU na qualidade da ADC presente nela. Geralmente, trata-se mais de cadeia de ferramentas, custo, firmware existente etc. Os ADCs internos geralmente se limitam a tarefas não críticas, como a leitura da tensão da bateria.

Com vários micros, também pode haver problemas com cronômetros compartilhados que precisam ser monopolizados para tempos de amostragem rápidos, mas interferem com outras coisas no MCU (portas seriais de software, ISRs etc.) quando são monopolizados para o ADC.

Além disso, o que é VREF? Se você estiver usando o VCC como referência no firmware, mesmo se você calibrar para o VCC "real", esse valor poderá variar bastante durante as operações. Se você tiver um dispositivo de alta corrente a bordo (rádio, wifi, MCU etc.) com grande uso de corrente transiente, o VCC poderá cair para 4,8 volts durante uma transmissão e se sua amostra ocorrer durante essa janela, e você converter ingenuamente o 0-1023 ADC lê o valor da tensão com ADC_VAL / 1023 * 5.0 - você perdeu 200mV de precisão. Ou, se você tiver diferentes modos de energia (USB, verruga, bateria) - o VCC no MCU pode mudar (especialmente com USB). Os ADCs externos (mesmo com a mesma contagem de bits) podem fornecer vref interno sólido como uma rocha sob condições VCC flutuantes.

A resolução é muito importante. Eu imagino que exista algum uso (no mundo real) para 10 a 12 bits de resolução, mas para qualquer tipo de aplicação no mundo real (detecção de gás, medição acústica, medição do acelerômetro, medição precisa da temperatura, etc.) 16 bits é geralmente a resolução mínima para obter sinal adequado para características de ruído e resolução. Mesmo um MCU de 32 bits realmente bom, como o SAMD da Atmel, é limitado a ADCs internos de 12 bits.

A tremulação do relógio também é um problema e também existe alguma imprecisão inerente quando outros micros de 8 bits são necessários para fornecer uma leitura ampla de 12 bits e são necessários pelo menos 2 ciclos de relógio para manipular um valor de 12 bits, o que pode não ser verdade. com um ADC externo (já que eles podem ter osciladores internos).

Também há momentos em que a proximidade física do transdutor e o isolamento do MCU são importantes. Alguns transdutores muito sensíveis requerem sua própria energia condicionada, planos de aterramento isolados e amplificadores de picagem por transimpedância extremamente sensíveis com passivos de 0,01%.

Às vezes, existem razões convincentes para o uso de ADCs internos. DMA é uma razão ... a taxa de amostragem é outra. Facilidade de oversampling é outra. A interface de ADCs externos com altas taxas de dados pode consumir muitos pinos de E / S multiplexados valiosos e criar um design mais complicado. Além disso, muitos dos ADCs que usamos são baseados em I2C, portanto a taxa de amostragem é muito limitada pela velocidade do barramento I2C. Mesmo a 1mbits / s, uma leitura de 16 bits leva muito tempo.


Esta é uma excelente visão! Com o passar dos anos (e minha experiência cresceu), eu teria que concordar: os ADCs internos da MCU podem ser bastante ruins.
TRISAbits
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.