Prof. Sc.M. Thiago Javaroni Prati IFC – Campus Luzerna - SC
Microcontroladores
Disciplina : Microcontroladores
AVR
Curso:
Técnico em Automação
Industrial Integrado ao Ensino
Médio
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
Prof. Sc.M. Thiago Javaroni Prati IFC – Campus Luzerna - SC
Microcontroladores
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
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,
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
Prof. Sc.M. Thiago Javaroni Prati IFC – Campus Luzerna - SC
Microcontroladores
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
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
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
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
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
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-
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
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://
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
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
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
Prof. Sc.M. Thiago Javaroni Prati IFC – Campus Luzerna - SC
Microcontroladores
Portas Entrada – Saída
PINx: registrador de entrada da porta, usado
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
Prof. Sc.M. Thiago Javaroni Prati IFC – Campus Luzerna - SC
Microcontroladores