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:
  • 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.

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.

Exercícios relacionados