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?
fonte
Respostas:
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:
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.
fonte
Mais algumas razões para favorecer um ADC externo:
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.
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.
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.
fonte
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.
fonte
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.
fonte