Por que a maioria dos ADCs, como os do Arduino , fornece resolução de 10 bits em vez de 8 ou 16 bits?
Parece estranho que eles não correspondam aos tamanhos de dados padrão, principalmente nos integrados.
Por que a maioria dos ADCs, como os do Arduino , fornece resolução de 10 bits em vez de 8 ou 16 bits?
Parece estranho que eles não correspondam aos tamanhos de dados padrão, principalmente nos integrados.
Respostas:
Não há nenhum problema técnico importante com a extensão de um ADC SAR (aproximação sucessiva) para converter 16 bits, mas o problema é que você começa a ver o nível de ruído do front-end analógico. Isso tende a deixar os clientes em pânico, porque eles vêem os códigos ADC pulando e nem sempre percebem que estão olhando para dezenas de microvolts de desvio.
Assumindo uma tensão de referência de 5,00 V e um ADC de 10 bits, o LSB representa uma tensão de 4,88 mV (5 V × 2 -10 ). Para um ADC de 16 bits com uma referência de 5,00 V, a tensão LSB seria 76 µV.
Mas a fonte de alimentação em um sistema digital não é exatamente 5,00 V, geralmente é especificada em uma faixa de 4,75 V a 5,25 V. Sempre que houver um evento transitório de comutação dentro do microcontrolador, há um pequeno pulso de corrente que causa a fonte tensões para contrair. Se o LSB estiver em torno de 5 mV, você mal poderá vê-lo, mas no nível de 76 µV é difícil não ver esse ruído.
De fato, depois de passar pelo ADC de 12 bits, você realmente precisa ter uma referência de tensão analógica em vez de apenas usar a fonte de alimentação digital. Então, isso adiciona um pouco mais de custo. Para obter melhores resultados, essa referência de tensão deve ser um chip separado, com suas próprias linhas de energia e, idealmente, deve estar longe do circuito digital quente / barulhento.
Se você deseja que um ADC de 16 bits forneça boas leituras estáveis, precisará de muito voltagem de referência limpa e controle térmico, e de preferência mantenha-o longe de qualquer sinal digital de comutação rápida ... para integrar um SAR de 16 bits ao o mesmo chip que um microcontrolador, na verdade anularia o propósito de ter esses bits extras. Você estaria apenas medindo ruído aleatório nesses bits extras.
Existem aplicativos de clientes que usam ADCs de resolução mais alta. A empresa em que trabalho faz algumas delas. O equipamento de teste automatizado (ATE), o ultra-som médico e alguns outros tipos especializados de clientes usam ADCs de alta resolução, em alguns casos de 18 ou mesmo 24 bits.
O teste de produção de um ADC de alta resolução é demorado (e, portanto, caro). Os clientes que precisam desse tipo de desempenho pagam um prêmio por um ADC externo independente, não pelos tipos baratos de SAR embutidos em muitos microcontroladores modernos.
Depois, existem aplicativos de alta velocidade, como radar ou osciloscópio de amostragem digital, que precisam amostrar a taxas de 100 MHz ou mais rápidas - nessas velocidades, você tem sorte de obter 8 bits significativos.
Alterne entre resolução e custo.
8 bits fornece 2 8 = 256 combinações, das quais 0 é uma, deixando de 0 a 255 como possíveis valores digitais. Isso não é suficiente para muitos aplicativos. Cada bit extra dobra a resolução e 10 bits fornece 1024 etapas, o que é bom o suficiente para a maioria das coisas do projeto. Os sistemas industriais podem usar 12 bits para obter uma resolução ainda melhor.
Os ADCs de alta resolução exigem tolerâncias mais rígidas e são mais caros de fabricar.
Uma série de pontos bons e válidos já foram feitos. Eu usei extensivamente ADCs de 8, 10, 12 e 16 bits ao longo dos anos e hoje em dia é bastante fácil atingir 16 bits com um tempo de conversão de 4 ou 5 microssegundos (estão disponíveis melhores, vou me ater ao que pode ser praticável para a maioria das pessoas), em um chip independente. Mas isso contém uma rede de escadas de precisão, geralmente usando resistores de filme fino, e várias técnicas de design analógico altamente especializadas. (Também quase sempre existe a necessidade de transistores bipolares de alto desempenho em algum lugar no circuito de um ADC de precisão, mas todos os microcontroladores modernos são CMOS, por isso existem inúmeras etapas adicionais de fabricação para fazer qualquer coisa com boa precisão analógica e lógica CMOS combinadas. ) Um bom ADC também custa mais do que a maioria dos microcontroladores! Não é tão fácil de fazer,
Por exemplo, considere a TI ADS8509, cujo antecessor ADS7509, não tão rápido, que usei em muitos lugares em um projeto grande e importante.
http://www.ti.com/lit/ds/symlink/ads8509.pdf
É bastante mundano para os padrões de hoje. No entanto, seus recursos internos de design não são compatíveis com o processo de fabricação barato para microcontroladores. E custa mais de US $ 15,72, mais do que a maioria dos microcontroladores. Usei-os na forma de matriz semicondutora nua, incorporada em híbridos de latas de metal hermético, com circuitos de suporte cuidadosamente projetados, e realmente superei apenas o ruído de 1 LSB pp, para que isso possa ser feito, se você souber o que está fazendo, e ter os recursos, incluindo orçamento. Mas você nunca verá um ruído tão baixo dentro ou ao redor de um microcontrolador.
O principal problema, como pelo menos uma pessoa explicou, é que o ruído no trilho de suprimento digital afetará diretamente o ADC. Agora você pode contornar isso, usando uma boa referência de tensão externa, onde um pino é fornecido para isso, mas você também precisa fazer o mesmo com o terra. E esses pinos precisam ser limitados a algumas centenas de mV da fonte e do aterramento digitais, ou a coisa explode. Além disso, é claro, o acoplamento de ruído interno no silício, a partir da lógica, alterando os estados de maneiras complexas na freqüência do relógio e, pior ainda, nos pinos de E / S, alguns dos quais podem estar dirigindo e alternando 10s de mA, se você carregou-os até o limite. Barulho, barulho e mais barulho ...
A parte que citei (e procure no Google por mais baratos, mais rápidos ou diferentes, troque a flexibilidade em relação ao custo) possui uma interface SPI, por isso é facilmente usada EXTERNALMENTE em um microcontrolador, com seu próprio plano de aterramento local, filtragem etc. , com cuidado, ele realmente fornecerá 16 bits.
Costumava ser bastante difícil obter mais de 10 bits sem ruído de um ADC de 12 bits e ainda está em um ambiente sujo, como próximo à lógica digital, razão pela qual os ADCs integrados nos chips de processador são mais ou menos preso a essa resolução e provavelmente será para sempre. Mas a TI tem um chip externo de 32 bits. Ainda não olhou a folha de dados ou o custo ...
Se você puder sacrificar a precisão absoluta (ou seja, o fator de escala pode estar fora de 5% ou mais, para não mencionar o deslocamento DC e seu desvio com o tempo e a temperatura, mas a linearidade será excelente), um ADC de nível de áudio pode ser para você. Eles têm pelo menos 16 bits e foram projetados para o mercado de massa, geralmente com um bom valor, mas não espere usar um em um instrumento de precisão que precise medir sinais DC para +/- 0,1%.
Você não pode ter tudo de uma vez. É tudo uma questão do que mais importa. Precisão, ruído, desvio de longo prazo, velocidade, custo, potência, tipo de interface (serial ou paralela) etc. Além disso, convém multiplexar vários canais, portanto, é necessário um tempo de resposta rápido, que exclui muitos ADCs sigma-delta, que caso contrário, terá algumas propriedades muito boas.
Ao escolher um ADC. O Google é, como sempre, seu amigo. Existem muitos artigos e notas de aplicação da TI, Linear, National e vários outros fabricantes de semicondutores. Sempre tome cuidado com o que as folhas de dados não informam e verifique quais parâmetros os concorrentes enfatizam.
Mas se você quiser tudo no chip do microcontrolador, não planeje usar mais de 10 bits (provavelmente 9 utilizáveis, com ruído LSB) em seus projetos. E planeje uma referência analógica e um aterramento separados, se o seu chip permitir. Dessa forma, você não estará perdendo seu tempo.
Os ADCs de 8 bits são horríveis de usar devido às etapas de 0,49% - já vi o suficiente disso. O Arduino, projetado para eletrônicos de hobby, usa quatro vezes mais etapas, tão perto de 0,1%, o que é próximo do sinal de ruído alcançável (mais hum) esperado dos circuitos comuns de amplificadores operacionais ou sensores de transistor. Melhor do que isso seria desperdiçado em eletrônicos caseiros de nível hobista, e pior do que isso seria muito difícil e horrível.
Embora o ADC de 16 bits esteja disponível comercialmente, eles demoram mais para se estabilizar, durante os quais o zumbido ou o ruído se moveu, para que você não obtenha uma medida melhor e seja mais lenta.
Quando um ADC faz uma conversão, ele fornece um valor digital (quantizado) para o sinal analógico contínuo. Como o valor digital não será exatamente o valor analógico no momento da conversão, a diferença pode ser considerada como ruído aditivo. Quanto maior a resolução do ADC, mais próximo o valor digital do valor analógico. Em outras palavras, melhoramos a relação sinal / ruído de quanitização (SQNR) aumentando os bits do ADC. Portanto, o ADC de 10 bits é melhor que os de 8 bits (cerca de 12dB).
Usar A / D de 16 bits será melhor em termos de SQNR. No entanto, eles são mais caros. E em muitos aplicativos, o ADC de 10 bits fornece SQNR necessário o suficiente.
Como regra geral, você deseja que o número de bits em sua cobrança seja tal que sua etapa de quantização fique um pouco abaixo do nível de ruído (analógico) do sistema.
O uso de mais bits e, portanto, uma etapa de quantização mais abaixo do nível de ruído, proporciona muito pouca melhoria no desempenho geral do ruído, mas utiliza mais silício, aumentando o tempo de conversão ou exigindo que os componentes internos do conversor funcionem mais rapidamente (e, portanto, sejam mais ruidosos)
Usar menos bits e, portanto, ter uma etapa de quantização acima do nível de ruído geralmente é ruim. Isso significa que você está desperdiçando o desempenho do circuito analógico e, em alguns casos, ele pode criar erros sistemáticos que não podem ser removidos através da média (na verdade, às vezes, os projetistas adicionam deliberadamente ruído ao sistema para evitar erros sistemáticos devido à quantização).
A diferença entre 8 bits e 16 bits é enorme. O primeiro termina com uma etapa de quantização muito grande, mesmo em sistemas com desempenho de ruído bastante baixo. O último é desperdiçado em qualquer sistema que não tenha um design analógico muito cuidadoso. Então, sem surpresa, os microcontroladores acabam em algum lugar.
Observe que as pessoas costumam falar sobre "ruído de quantização", mas é importante lembrar que o conceito de "ruído de quantização" é um modelo simplificado da realidade que se decompõe em algumas circunstâncias.
O uso mais comum dos ADCs é indiscutivelmente na área de processamento de som (VoIP, CD music etc.). A música não é interessante aqui, pois isso requer 16 bits. Mas o VoIP é o que impulsiona o mercado ADC de bit mais baixo. O VoIP geralmente usa companding, que produz um código PCM comprimido de 8 bits a partir de um sinal de entrada de 12 bits. A entrada para a etapa de compactação precisa ter mais bits - geralmente 12, ou às vezes 10 pode ser suficiente (você sempre pode falsificar os dois bits mais baixos).
Como resultado, a demanda por ADCs de 8 bits é muito baixa, mas as ADCs de bits mais altos estão em alta demanda e, portanto, estão disponíveis a baixo custo. O Arduino provavelmente usaria componentes baratos e onipresentes.