Curso: Técnico em Automação Industrial Integrado ao Ensino...
-
Upload
nguyendien -
Category
Documents
-
view
214 -
download
0
Transcript of Curso: Técnico em Automação Industrial Integrado ao Ensino...
Prof. Sc.M. Thiago Javaroni PratiIFC – Campus Luzerna - SCMicrocontroladores
Disciplina : Microcontroladores
AVR
Curso: Técnico em Automação Industrial Integrado ao Ensino
Médio
Prof. Thiago Javaroni Prati
Prof. Sc.M. Thiago Javaroni PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
Família AVR
• Os microcontroladores AVR da fabricante ATMEL são microcontroladores de 8 bits
• Arquitetura HAWARD – Diferença?
Prof. Sc.M. Thiago Javaroni PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
Família AVR
● Aplicações– Sistemas embarcados
– megaAVR com controlador LCD, USB, PWM, CAN, etc
– FPSLIC (AVR com FPGA)
Prof. Sc.M. Thiago Javaroni PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
Atmega 8
● 3 Ports– A, C e C
● Avcc, Aref● VCC e GND
Prof. Sc.M. Thiago Javaroni PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
Portas Entrada – Saída
PORTx: registrador de dados da porta, usado para escrever nos pinos ou habilitar pull-up.
Prof. Sc.M. Thiago Javaroni PratiIFC – Campus Luzerna - SCMicrocontroladores
Portas Entrada – Saída
PINx: registrador de entrada da porta, usado para ler o conteúdo dos pinos.
Prof. Sc.M. Thiago Javaroni PratiIFC – Campus Luzerna - SCMicrocontroladores
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 PratiIFC – Campus Luzerna - SCMicrocontroladores
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