Calculadora de Resolução de ADC

Insira os bits e a tensão de referência de um ADC para obter o tamanho do passo, erro de quantização e SNR ideal, converta entre volts e códigos, e acompanhe cada substituição.

Conversor e faixa

Número inteiro de 1 a 32 — a largura de bits nominal do conversor.
Faixa de entrada

Ponto de medição (opcional)

Deixe em branco para pular a medição.

De quantos bits você precisa? (opcional)

Tamanho do passo e ruído

Tamanho do passo LSB

Fórmulas e substituição

LSB = FSR ÷ 2ᴺ · erro máx. = ½ LSB · SNR = 6.02N + 1.76 dB

    Cada número que você insere permanece neste navegador — nada é enviado.

    FAQ

    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.

    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.

    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.

    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, hexadecimal 0x800), 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.