Entendendo a Resolução e o Tamanho do Passo de um ADC
A resolução de um Conversor Analógico para Digital (ADC) define a sua capacidade de segmentar um sinal analógico contínuo em valores digitais discretos. O menor degrau de tensão que o conversor consegue distinguir é conhecido como o tamanho do passo do Bit Menos Significativo (LSB).
Esta calculadora computa o tamanho do passo 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 fornecidas. O processamento de todos os dados inseridos ocorre localmente no dispositivo do usuário; cada número que você insere permanece neste navegador — nada é enviado.
Entradas do Conversor
Para realizar os cálculos, a ferramenta utiliza os seguintes parâmetros de entrada:
- Resolução N (bits): Um número inteiro de 1 a 32 que representa a largura de bits nominal do conversor.
- Tensão de referência: Um valor numérico positivo que define o limite de tensão para a conversão.
- Unidade de referência: A unidade de medida associada à tensão de referência (como V, mV ou µV).
- Faixa de entrada: A configuração do circuito de entrada, selecionável entre "Unipolar · 0 a Vref" ou "Bipolar · −Vref a +Vref".
- Casas decimais exibidas: O nível de precisão numérica desejado para a exibição dos resultados.
- Converter (Ponto de medição - opcional): Permite alternar o modo de conversão direta entre "Tensão → código" ou "Código → tensão".
- Tensão de entrada (opcional): O valor de tensão que se deseja mapear para um código digital correspondente.
- Código (contagens) (opcional): Um número inteiro que varia de 0 até o código máximo do conversor para conversão reversa em tensão.
- Unidade de tensão: A unidade de medida para as tensões de entrada ou de código.
- Menor alteração a ser resolvida (opcional): Um valor de tensão alvo para determinar a resolução em bits mínima necessária para detectá-lo.
- Unidade do passo: A unidade de medida para o menor passo de alteração.
O usuário pode utilizar os botões "Carregar exemplo" para preencher os campos com valores padrão ou "Limpar" para redefinir todas as entradas.
Resultados e Saídas Detalhadas
Os resultados calculados são exibidos sob rótulos específicos na interface do usuário:
Tamanho do passo e ruído
- Tamanho do passo LSB: O valor de tensão correspondente a 1 LSB, acompanhado por um sub-rótulo que expressa esse passo como uma porcentagem da escala cheia e em partes por milhão (ppm).
- Níveis de quantização: O número total de estados discretos de saída, dado por 2^N.
- Código máximo: O maior valor decimal que o conversor pode assumir (2^N − 1).
- Faixa de escala cheia: O intervalo total de tensão (FSR) coberto pelo ADC.
- Erro máx. de quantização (±½ LSB): A metade do tamanho do passo LSB, representando o desvio máximo teórico na digitalização de um sinal estático.
- Ruído de quantização (rms): O valor eficaz (root-mean-square) do ruído gerado pelo processo de quantização ideal.
- SNR ideal (seno em escala cheia): O limite teórico superior para a relação sinal-ruído em decibéis.
- Faixa dinâmica: A relação em decibéis entre o maior e o menor sinal tratáveis pelo conversor.
No ponto de medição
- Código de saída: O código digital resultante da conversão da tensão de entrada fornecida.
- Binário: A representação em base binária do código de saída.
- Hexadecimal: A representação em base hexadecimal do código de saída.
- Tensão do código: A tensão analógica exata representada pelo código digital obtido.
- Erro de quantização: A diferença residual entre a tensão de entrada real e a tensão teórica do código gerado.
- Janela de entrada para este código: A faixa de tensões analógicas contínuas que são mapeadas para este mesmo código digital.
De quantos bits você precisa?
Ao inserir um valor no campo de menor alteração a ser resolvida, a ferramenta avalia a viabilidade física do sistema:
- Se o conversor atual for suficiente, exibe-se a mensagem: "Resolver
‹step›requer pelo menos‹bits›bits — este conversor de‹current›bits atende a isso." - Caso contrário, a mensagem exibida é: "Resolver
‹step›requer pelo menos‹bits›bits — este conversor de‹current›bits resolve apenas‹lsb›."
Fórmulas Matemáticas e Substituições
A ferramenta apresenta as equações simbólicas e realiza a substituição direta com os valores inseridos pelo usuário:
- Faixa de escala cheia (FSR):
- Unipolar: FSR = Vref
- Bipolar: FSR = 2 × Vref
- Tamanho do passo LSB: LSB = FSR ÷ 2^N
- Erro máx. de quantização: ±LSB ÷ 2
- Ruído de quantização (rms): LSB ÷ √12
- SNR ideal (seno em escala cheia): SNR = 6.02 × N + 1.76 dB
- Faixa dinâmica: 6.02 × N dB
- Código digital (Unipolar): código = round(Vin ÷ LSB)
- Código digital (Bipolar): código = round((Vin + Vref) ÷ LSB)
- Tensão do código (Unipolar): V = código × LSB
- Tensão do código (Bipolar): V = código × LSB − Vref
- Erro de quantização no ponto de medição: Tensão do código − Tensão de entrada
- Dimensionamento de resolução: N ≥ log₂(FSR ÷ passo) (arredondado para o próximo número inteiro de bits)
Exemplo Prático de Substituição
Ao carregar o exemplo padrão de 12 bits, referência de 3.3 V e faixa unipolar, os seguintes resultados são obtidos:
- Níveis de quantização: 2¹² = 4.096 níveis.
- Código máximo: 4.095.
- LSB = 3.3 V ÷ 4.096 ≈ 805.6641 µV.
- Erro máximo de quantização: ±402.832 µV.
- Ruído de quantização: 805.6641 µV ÷ √12 ≈ 232.5752 µV rms.
- SNR ideal: 6.02 × 12 + 1.76 ≈ 74.01 dB.
- Faixa dinâmica: 6.02 × 12 ≈ 72.25 dB.
- Para uma entrada de 1.65 V (exatamente metade da escala), o código gerado é 2.048 (binário
1000 0000 0000, hexadecimal0x800), resultando em erro de quantização igual a zero.
Regras de Comportamento e Casos Limites
O modelo matemático implementado segue premissas estritas para garantir a consistência dos cálculos:
- Modelo de Quantização: Assume-se um quantizador ideal onde a primeira transição de código ocorre em exatamente ½ LSB.
- Limites de Escala (Clipping):
- Se a tensão de entrada estiver acima do limite superior, o código satura no valor máximo (2^N − 1). A ferramenta exibe o aviso: "A entrada está acima do limite superior: a saída satura no código máximo e o erro exibido é o resíduo real — o limite de ±½ LSB não se aplica mais."
- Se a tensão de entrada estiver abaixo do limite inferior, o código satura em 0. O aviso exibido é: "A entrada está abaixo do limite inferior: a saída satura no código 0 e o erro exibido é o resíduo real — o limite de ±½ LSB não se aplica mais."
- Entrada em Meia-Escala: Quando a entrada coincide exatamente com o ponto médio da faixa, a ferramenta indica que metade da faixa é mapeada para o código central com erro de quantização zero.
- Limitações Práticas: Os cálculos descrevem um conversor ideal. Na prática, parâmetros como não-linearidade integral (INL), não-linearidade diferencial (DNL), erros de ganho, offset e ruído térmico degradam o desempenho real. A resolução nominal em bits difere da precisão real do sistema.
Perguntas Frequentes (FAQ)
Resolução de 12 bits significa precisão de 12 bits?
Não. A resolução é apenas a largura do código — quão finamente a faixa é dividida. A precisão é limitada pelo INL e erros de offset/ganho do conversor, pela tolerância e ruído da referência e pelo circuito ao redor. É por isso que as folhas de dados citam o ENOB: um SAR de 12 bits normalmente entrega de 10–11 bits efetivos. O SNR ideal de 74 dB mostrado aqui é o teto que nenhum conversor real de 12 bits alcança.
Como uma entrada de ±Vref altera os cálculos?
A faixa dobra para 2 × Vref, de modo que o mesmo conversor resolve passos duas vezes mais largos: LSB = 2 × Vref ÷ 2^N. Os códigos vão do limite negativo ao positivo — o código 0 é −Vref, o código central 2^(N−1) é 0 V e o código máximo fica um passo abaixo de +Vref. Selecione a faixa bipolar acima e zero volts cairá exatamente no código central.
Por que algumas fontes dividem por 2^N e outras por 2^N − 1?
São dois modelos diferentes do mesmo conversor. As folhas de dados e a teoria clássica de quantização definem LSB = FSR ÷ 2^N, com a primeira transição de código na metade de um passo — esse é o modelo que esta página usa. A forma Vref ÷ (2^N − 1) vem do mapeamento do código máximo exatamente sobre Vref, comum em tutoriais de microcontroladores. Em 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 fontes diferentes.
O que posso fazer quando o tamanho do passo for muito grosso?
A sobreamostragem e a média aumentam a resolução quando o sinal carrega um pouco de ruído: tirar a média de 4× mais amostras ganha cerca de um bit efetivo, e 16× ganha dois, desde que o ruído seja branco e não correlacionado — um sinal perfeitamente limpo e estático apenas repete o mesmo código. Além disso, mude para um conversor com mais bits ou adicione um estágio de ganho programável para que o sinal preencha mais a faixa.