Qual a função do bit PUD (registrador MCUCR)?
Passo 1
Beleza, a questão é a seguinte: “Qual a função do bit PUD (registrador MCUCR)?”
Matéria: microcontroladores (especificamente AVR, tipo ATmega).
O que a gente precisa saber:
Matéria: microcontroladores (especificamente AVR, tipo ATmega).
O que a gente precisa saber:
- O que são resistores pull-up internos nas portas I/O.
- Como o MCUCR (MCU Control Register C) controla certos recursos globais do micro.
- Em particular, o que o bit PUD faz dentro desse registrador.
Passo 2
Primeiro, deixa eu te explicar o lance dos resistores pull-up:
Quando você configura uma porta de um AVR como entrada, o pino pode “flutuar” (ficar sem nível definido). Para evitar isso, o micro tem resistores internos que “puxam” o pino pro nível alto (VCC) se você não conectar nada. São os pull-ups.
Quando você configura uma porta de um AVR como entrada, o pino pode “flutuar” (ficar sem nível definido). Para evitar isso, o micro tem resistores internos que “puxam” o pino pro nível alto (VCC) se você não conectar nada. São os pull-ups.
Passo 3
Normalmente você habilita cada pull-up de uma porta com um bit na porta em si (PORTx). Mas e se você quiser desligar todos os pull-ups de uma vez só? É aí que entra o bit PUD no registrador MCUCR.
Passo 4
No datasheet do ATmega, o MCUCR é um byte assim (um exemplo simplificado):
7 6 5 4 3 2 1 0
– – SE PUD – – – –
O PUD é o bit 4.
- Se PUD = 0 → tudo normal, cada pull-up é controlado pelo seu PORTx correspondente.
- Se PUD = 1 → todos os resistores pull-up internos ficam desativados, mesmo que PORTx esteja com pull-up habilitado.
Resposta
O bit PUD em MCUCR serve para desabilitar globalmente todos os resistores pull-up internos do microcontrolador quando for igual a 1. Se for 0, os pull-ups continuam funcionando conforme cada configuração de PORTx.