Sei sulla pagina 1di 33

Prof. Sc.M.

Thiago Javaroni Prati


IFC – Campus Luzerna - SC
Microcontroladores

Curso: Técnico em Automação


Industrial Integrado ao Ensino
Médio
Disciplina : Microcontroladores

AVR

Prof. Thiago Javaroni Prati


Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Família AVR
• Os microcontroladores AVR da fabricante
ATMEL são microcontroladores de 8 bits e
32 bits
• Arquitetura HAWARD – Diferença?
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Família AVR
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Família AVR
• Os microcontroladores AVR da fabricante
ATMEL são microcontroladores de 8 bits
• Arquitetura HAWARD – Diferença?
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Família AVR
• Instrução é 1, 2, … n bytes que o
processador entende como algo que ele
pode executar
• Ex: movimentar valores de memória, somar,
subtrair, rotacionar memória
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Família AVR
• Arquitetura permite a execução de uma
instrução por CICLO do processador.
• Uma função pode exigir algumas
isntruções
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Família AVR
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Família AVR
● Aplicações
– Sistemas embarcados
– megaAVR com controlador LCD, USB, PWM,
CAN, etc
– FPSLIC (AVR com FPGA)
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Família AVR
● Características:
– Portabilidade de código
– Um conjunto de ferramenta de
desenvolvimento(Atmel Studio)
– Comptibilidade de pinos e sua utilização em
software
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Família AVR
● Programas com memória entre 1kb e 8kb
● Encapsulamento entre 8 pinos e 32 pinos
● Conjunto limitado de periféricos
● Modelos também para Tempo Real
– Tempo Real – Sistema que deve desenvolver
uma função dentro de um tempo específico.
Não necessáriamente quer dizer
processamento instantâneo
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Família AVR
● AVR Attiny
– 1KB Flash
– 64B SRAM
– 64B EEPROM
– 32B para registros
– 4 A/Ds de 10 bits
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Família AVR
● MegaAVR
– Bootloader independente
● Pedaço de software que recebe o programa e o passa
para a memória destino (Arduino)
– Real Time Clock Counter
– Versões especiais para aplicações automotivas
com controle PWM, A/Ds com suporte CAN
– A/D de 12 bits
– Suporta encriptação do programa
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Família AVR
● Atmega8
– 8kB de memória Flash para o programa
– 1kB bytes de memória para execução do programa
– 1kB de EEPROM
– Oscilador interno de 1MHz, aceita oscilar externo de até 16MHz
– 6 canais para conversão analógico digital
– Comunicação serial
– PWM
– 3 Contadores, 2 de 8 bits e um de 16 bits
*Valores sujeitos a alteração de acordo com a revisão do hardware
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Família AVR
● Alguns projetos com Atmega
– Sistemas operacionais
● AvrX (http://www.barello.net/avrx/)
● FreeRTOS (http://www.freertos.org/)
● csRTOS(http://www.circuitcellar.com/avr2004/DA3650.html)
● AVR wii nunchuck library
(http://davidegironi.blogspot.com.br/2012/11/avr-
atmega-wii-nunchuck-library-
01.html#.Vs5vFPkrLIU)
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Atmega 8
● 3 Ports
– A, C e C
● Avcc, Aref
● VCC e GND
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Programação AVR
● O código fonte (programa – firmware) para o
microcontrolador necessita ser escrito,
compilado, depurado e gravado.
● Todas estas tarefas são realizadas com o
suporte de softwares adequados.
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Programação AVR
Para Escrita, Compilação e Depuração
 AVR Studio®
Para Gravação
 Khazama AVR Programer http://
khazama.com/project/programmer
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Programação AVR
● sistemas microcontrolados → programação é
tão importante quanto o hardware
● Um bom programa pode aumentar
consideravelmente o desempenho de um
sistema
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Programação AVR
● sistemas microcontrolados → programação é
tão importante quanto o hardware
● Um bom programa pode aumentar
consideravelmente o desempenho de um
sistema
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Programação AVR
● É um sistema de recursos limitados – memória
e poder de procesamento
● Muito cuidado ao programar em C para não
confundir com a programação para
computadores
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Programação AVR
● É um sistema de recursos limitados – memória
e poder de procesamento
● Muito cuidado ao programar em C para não
confundir com a programação para
computadores
● Maneiras para se economizar RAM?
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Programação AVR
● Constantes e literais devem ser colocados na
memória flash
● Evite usar variáveis globais. Empregue
variáveis locais sempre que possível.
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Programação AVR
● Microcontroladores não possuem sistema
operacional para controlar o programa
executado então este nunca porde terminar
pois não sobra nada para controlar o hardware
● Interface de entrada pode variar muito
dependendo o projeto, já que essa é
personalizada dentro do programa
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Portas Entrada – Saída


O ATmega8 possui 3 portas:
PORTB, PORTC e PORTD
Com seus respectivo pinos:
PB7 .. PB0, PC6 .. PC0 e PD7 .. PD0
Todos os pinos do AVR possuem a função Lê –
Modifica – Escreve quando utilizados como portas
genéricas de I/Os
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Portas Entrada – Saída


● Direção do Pino pode ser alterada
individualmente
● Valores lógicos dos pinos assim como
resistores de Pull-UP podem ser ativados
individualmente
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Portas Entrada – Saída


Todas as portas têm resistores de pull-up e
diodos de proteção para o VCC e o terra
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Portas Entrada – Saída


DDRx: registrador de direção da porta, usado para
definir se os pinos são de entrada ou saída.

Registradores: Memórias específicas que definem o


funcionamento dos periféricos do microcontrolador
ou possuem valores dos hardwares
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Portas Entrada – Saída


PORTx: registrador de dados da porta, usado
para escrever nos pinos ou habilitar pull-up.
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Portas Entrada – Saída


PINx: registrador de entrada da porta, usado
para ler o conteúdo dos pinos.
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Portas Entrada – Saída


Resumindo, para uso de um pino de I/O, deve-se:
Primeiro definir no registrador DDRx se ele será entrada ou saída:

Se o pino for de saída, uma escrita no registrador PORTx altera o estado


lógico do pino, também empregado para habilitar os pull-ups

.
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Portas Entrada – Saída


Os estados dos pinos da porta são lidos do registrador PINx

Detalhe: para a leitura do PINx logo após uma escrita do


PORTx e DDRx, deve ser gasto pelo menos um ciclo de
máquina para sincronização dos dados pelo µcontrolador
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Modelo de Programa
Prof. Sc.M. Thiago Javaroni Prati
IFC – Campus Luzerna - SC
Microcontroladores

Modelo de Programa

Potrebbero piacerti anche