Curso: Técnico em Automação Industrial Integrado ao Ensino...

33
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. Thiago Javaroni Prati

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

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

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

Prof. Sc.M. Thiago Javaroni PratiIFC – Campus Luzerna - SCMicrocontroladores

Modelo de Programa

Prof. Sc.M. Thiago Javaroni PratiIFC – Campus Luzerna - SCMicrocontroladores

Modelo de Programa