Como todo microcontrolador que se preze, o ATmega328 possui uma boa coleção de periféricos internos. A plataforma Arduino se aproveita disto e disponibiliza quase todos os pinos do ATmega para os shields, como mostram as figuras abaixo (clique para ampliar).
Entradas e Saídas Digitais
Dos 28 pinos do ATmega328, 23 podem ser usados como entrada ou saída digital (inclusive os que estão marcados como entradas analógicas na placa do Arduino). Todos os pinos possuem funções alternativas, por exemplo no Arduino utiliza funções como Reset, XTAL1 e XTAL2, limitando o uso destes pinos para E/S digital.
Os pinos de E/S digital estão organizados em três portas (PB, PC e PD), mas cada pino pode ser configurado independentemente como entrada e saída. Todos os pinos possuem um resistor de pull-up (também controlado independentemente) e diodos de proteção. Quando operando como saída, os pinos podem tanto gerar como receber uma corrente suficiente para acender um LED (até 40mA por pino).
Os 23 pinos de E/S digital podem também ser gerar uma interrupção quando ocorre mudança de sinal. É possível controlar a geração de interrupção pino a pino e ela independe do pino ter sido configurado como entrada ou saída.
Conversor Analógico Digital
O conversor analógico digital (ADC) possui 10 bits de resolução e possui 8 opções de entrada (6 no encapsulamento DIP normalmente usado no Arduino). Existem três opções de referência: a tensão de alimentação (fornecida em um pino separado, AVcc), uma referência interna de 1,1V ou um tensão externa (fornecida no pino ARef).
USART
A USART (Transmissor/Receptor Síncrono/Assíncrono Universal) é extremamente flexível, operando em full-duplex, com 5 a 9 bits de dados, 1 ou 2 bits de parada e geração/detecção de paridade. Possui capacidade para detecção de erros de overrun (caracteres perdidos por lentidão no tratamento) e framing (caracteres recebidos com formato inválido) e para geração de interrupções de recepção de caracter, pronto para transmitir e final da transmissão.
A USART pode ainda ser colocada em um modo de operação SPI, fornecendo assim um segundo canal (porém operando somente como mestre).
SPI
O Atmega328 possui um módulo específico para comunicação SPI, capaz de operar tanto em modo mestre como escravo. A comunicação SPI utiliza quatro fios (MISO, MOSI, SCLK e SS) para comunicação serial full-duplex de alta velocidade entre um mestre e vários escravos.
TWI
O módulo TWI (Two Wire Interface) implementa o padrão I2C, uma forma de comunicação que utiliza apenas dois sinais (SDA e SCL) para interligar em "varal" múltiplos mestres e escravos. Entre os seus recursos, está o de conferir automaticamente o endereço, reduzindo o trabalho do software.
Comparador Analógico
Para aplicações que precisam testar um sinal analógico mas não precisam de toda a sofisticação da conversão analógico digital, o ATmega328 possui um módulo comparador analógico que pode gerar uma interrupção ou iniciar/parar um timer quando a voltagem na sua entrada positiva fica maior que a voltagem na sua entrada negativa.
Timers
O ATmega328 possui três timers: o Timer0, de 8 bits, o Timer1, de 16 bits, e o Timer2 de 8 bits. Os três timers podem ser usados para geração de sinais PWM, Timer1 e Timer2 possuem duas unidades de comparação e saída independentes, o Timer3 apenas uma.
Nenhum comentário:
Postar um comentário