O cálculo preciso da resolução de um Conversor Analógico-Digital (ADC) é um passo fundamental no desenvolvimento de sistemas de aquisição de dados e instrumentação. A "Calculadora de Resolução de ADC" permite determinar instantaneamente o tamanho do passo do Bit Menos Significativo (LSB), o erro de quantização e a relação sinal-ruído (SNR) ideal com base na resolução em bits e na tensão de referência.
Todas as operações matemáticas são executadas localmente: cada número que insere permanece neste navegador — nada é enviado para um servidor.
O Impacto da Resolução e da Gama de Entrada
A resolução nominal de um ADC, expressa em bits (N), define o número de níveis discretos que o conversor utiliza para representar um sinal analógico. O número total de níveis de quantização é calculado através da fórmula:
Níveis = 2^N
A amplitude total de tensão que o conversor consegue medir é a gama de escala completa (FSR). Esta gama depende diretamente da configuração da entrada:
- Unipolar · 0 a Vref: A gama de escala completa é igual à tensão de referência (FSR = Vᵣef).
- Bipolar · −Vref a +Vref: A gama de escala completa duplica, cobrindo as tensões negativas e positivas (FSR = 2 × Vᵣef).
O tamanho do passo LSB representa a menor alteração de tensão que o ADC consegue distinguir. O cálculo do LSB segue o modelo de um quantizador ideal, onde a primeira transição de código ocorre a meio passo (1 / 2 LSB):
LSB = FSR / (2^N)
Ruído de Quantização e Limites Teóricos
A conversão de um sinal analógico contínuo para o domínio digital discreto introduz inerentemente um erro de arredondamento conhecido como erro de quantização. Num conversor ideal, o erro máximo de quantização (±½ LSB) é metade de um passo LSB:
Erro máximo = ±LSB / 2
O ruído de quantização (rms) assume uma distribuição uniforme do erro ao longo de um passo de quantização, sendo modelado matematicamente como:
Ruído de quantização (rms) = LSB / (√(12))
A partir deste ruído de quantização, define-se a relação sinal-ruído máxima teórica para uma onda sinusoidal pura que ocupa toda a gama de entrada do conversor. O SNR ideal (sinusoide de escala completa) e a gama dinâmica teórica são calculados em decibéis (dB) através das seguintes relações lineares:
SNR = 6.02 × N + 1.76 dB Gama dinâmica = 6.02 × N dB
Estes valores representam limites físicos intransponíveis para um determinado número de bits. Um conversor real adiciona INL/DNL, erros de desvio, ganho e deriva, e a própria tolerância e ruído da referência escalam cada passo. O valor de SNR é o teto teórico para uma sinusoide de escala completa sobre a largura de banda de Nyquist — os bits efetivos (ENOB) de um ADC real situam-se abaixo da sua resolução nominal. A taxa de amostragem, a filtragem antialiasing e o estabelecimento do front-end estão fora desta página.
Conversão no Ponto de Medição
A ferramenta permite analisar o comportamento do ADC num ponto de funcionamento específico através de conversões bidirecionais entre tensão e códigos digitais.
Tensão para Código
Para mapear uma tensão de entrada (Vᵢₙ) para o seu código digital correspondente, a calculadora aplica as seguintes fórmulas de arredondamento:
- Unipolar: código = round(Vᵢₙ / LSB)
- Bipolar: código = round((Vᵢₙ + Vᵣef) / LSB)
Se a tensão de entrada exceder os limites físicos do conversor, ocorrem fenómenos de saturação:
- Saturação Superior: Se a entrada estiver acima da calha superior, o código é limitado ao código superior (2^N - 1). A ferramenta exibe o aviso: "A entrada está acima da calha superior: a saída satura no código superior e o erro apresentado é o resíduo real — o limite de ±½ LSB já não se aplica."
- Saturação Inferior: Se a entrada estiver abaixo da calha inferior, o código é limitado a 0. O aviso apresentado é: "A entrada está abaixo da calha inferior: a saída satura no código 0 e o erro apresentado é o resíduo real — o limite de ±½ LSB já não se aplica."
Código para Tensão
Para reconstruir a tensão analógica a partir de um código digital, utilizam-se as relações:
- Unipolar: V = código × LSB
- Bipolar: V = código × LSB - Vᵣef
O erro de quantização no ponto de medição é calculado como a diferença entre a tensão exata do código e a tensão de entrada real:
Erro de quantização = Tensão do código - Tensão de entrada
Quando a entrada se encontra exatamente a meio da escala, a ferramenta indica: "Exatamente a meio da escala: metade da amplitude mapeia para o código com zero erro de quantização."
Exemplo Prático de Cálculo
Ao carregar o exemplo padrão da ferramenta, são aplicados os seguintes parâmetros:
- Resolução N (bits): 12 bits
- Tensão de referência: 3.3 V
- Gama de entrada: Unipolar · 0 a Vref
Os resultados gerados são:
- Níveis de quantização: 2¹² = 4096
- Código superior: 4095
- Tamanho do passo LSB: 3.3 V ÷ 4096 ≈ 805.6641 µV (com sub-label indicando o equivalente em percentagem da escala completa e em ppm)
- Erro máximo de quantização (±½ LSB): ± 402.832 µV
- Ruído de quantização (rms): 805.6641 µV ÷ √(12) ≈ 232.5752 µV rms
- SNR ideal (sinusoide de escala completa): 6.02 × 12 + 1.76 = 74.01 dB
- Gama dinâmica: 6.02 × 12 = 72.25 dB
Se for introduzida uma tensão de entrada de 1.65 V (exatamente metade de 3.3 V), o conversor mapeia este valor para o código de saída 2048. A representação em binário é 1000 0000 0000 e em hexadecimal é 0x800, resultando num erro de quantização de 0 V.
Dimensionamento de Resolução
Quando define uma meta de precisão através do campo "Menor alteração a resolver", a calculadora determina o número mínimo de bits necessários para que o LSB seja igual ou inferior a esse passo alvo:
N ≥ log₂(FSR / passo)
O resultado é arredondado para o número inteiro de bits imediatamente superior. A ferramenta valida se a resolução atual é suficiente, exibindo mensagens de conformidade ou indicando qual o passo real que o conversor atual consegue resolver.
Perguntas Frequentes
Uma resolução de 12 bits significa uma precisão de 12 bits?
Não. A resolução é apenas a largura do código — quão finamente a gama é dividida. A precisão é limitada pela INL e pelos erros de desvio/ganho do conversor, pela tolerância e ruído da referência, e pelo circuito que o rodeia. É por isso que as fichas técnicas indicam o ENOB: um SAR de 12 bits fornece tipicamente 10–11 bits efetivos. O SNR ideal de 74 dB aqui apresentado é o teto que nenhum conversor real de 12 bits atinge.
Como é que uma entrada de ±Vref altera as contas?
A amplitude duplica para 2 × Vref, pelo que o mesmo conversor resolve passos com o dobro da largura: LSB = 2 × Vref ÷ 2^N. Os códigos vão da calha negativa à positiva — o código 0 é −Vref, o código médio 2^(N−1) é 0 V, e o código superior fica um passo abaixo de +Vref. Selecione a gama bipolar acima e zero volts corresponderá exatamente ao código médio.
Porque é que algumas fontes dividem por 2^N e outras por 2^N − 1?
São dois modelos diferentes do mesmo conversor. As fichas técnicas e a teoria clássica de quantização definem LSB = FSR ÷ 2^N, com a primeira transição de código a meio passo — esse é o modelo que esta página utiliza. A forma Vref ÷ (2^N − 1) surge do mapeamento do código superior exatamente sobre Vref, comum em tutoriais de microcontroladores. A 12 bits, os dois diferem em cerca de 0.02%, muito abaixo da tolerância de qualquer referência real; apenas não misture os dois ao verificar números entre diferentes fontes.
O que posso fazer quando o tamanho do passo é demasiado grosseiro?
A sobreamostragem e a média ganham resolução quando o sinal contém um pouco de ruído: fazer a média de 4× mais amostras ganha cerca de um bit efetivo, 16× ganha dois, desde que o ruído seja branco e não correlacionado — um sinal perfeitamente limpo e perfeitamente estático apenas repete o mesmo código. Além disso, mude para um conversor com mais bits ou adicione uma etapa de ganho programável para que o sinal preencha mais a gama.