LT36D Microcontroladores Notas de Aula Aulas 1 e 2

Documentos relacionados
Jadsonlee da Silva Sá

Família de Microcontroladores AVR

Introdução aos microcontroladores Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial

Programa Trainee 2012 Módulo 4 Microcontroladores AVR

Sistemas Embarcados:

ARDUINO. Profº. Engº. Robson Dias Ramalho

07/06/2015. Outras características importantes em Microprocessadores/Microcontroladores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Sistemas Microprocessados

Microcontrolador 8051

Arquitetura e Organização de Computadores. Conjunto de Instruções da Arquitetura CompSim

Prof. Adilson Gonzaga

Microcontrolador 8051:

INTRODUÇÃO: MICROCONTROLADORES

Aula 10 Microcontrolador Intel 8051 Parte 1

FACULDADE LEÃO SAMPAIO

Microprocessadores. São máquinas elétricas onde podemos armazenar instruções lógicas, aritméticas e de tomada de decisão;

MSP430 - Arquitertura

Arquitetura do Microcontrolador Atmega 328

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

Microcontroladores PIC

Família 8051 (introdução) 2011/1

SISTEMAS MICROCONTROLADOS

Aplicações Avançadas de Microprocessadores. Professor: Marco Shawn Meireles Machado

Sistemas Microcontrolados

Microprocessadores e Microcontroladores. Professor Lucas Araujo do Nascimento

Disciplina : Microcontroladores AVR

Manual da Pinagem dos Microcontroladores BASIC Step 1 e M8 + Esquema de instalação do cabo

Sistemas Embarcados:

Objetivos MICROCONTROLADORES HARDWARE. Aula 03: Periféricos. Prof. Mauricio. MICRO I Prof. Mauricio 1. Arquitetura de um Microcontrolador

Organização de Memórias

Projeto de Sistemas Embarcados

AULA2 Introdução a Microcontrolador. Disciplina: Aplicações Avançadas de Microprocessadores (AAM)

Microcontroladores. Rafael Silva de Lima

Conjunto de Instruções e Modelos de Arquiteturas

MSP430 Lab 01 Instalação do Code Composer Studio e teste da Launchpad

Arquitetura do Disciplina de Microcontroladores. Prof. Ronnier Prof. Rubão

Microcontroladores. Prof. Nivaldo T. Schiefler Jr. M.Eng Homepage:

Objetivos MICROCONTROLADORES HARDWARE. Microcontroladores I. Prof. Mauricio. Micro-I Prof. Mauricio 1. Microcontroladores PIC. Requisitos de Hardware

Introdução à Organização de Computadores. Aula 8

Introdução à robótica

Microcontroladores PIC16 - XM 116 -

ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR

1.1 Noções básicas sobre interrupções em Microcontroladores

Conjunto de Instruções e Modelos de Arquiteturas

14/3/2016. Prof. Evandro L. L. Rodrigues

Descrição dos pinos de entrada e saída e de funções especiais. Descrição dos modos de acesso: individual e por porto

Microcontroladores: Programação em C

AULA 6 - INTRODUÇÃO AO ARDUINO Revisão de Eletrônica Digital e introdução aos Sistemas Computacionais.

Disc.: Sistemas Microprocessados Curso Técnico em Eletrônica

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Anatomia do Arduino Bootloader

Suporta os microcontroladores: R. Leonardo da Vinci, Campinas/SP CEP F.: (19) Kit de Desenvolvimento ACEPIC 28

SEL-0415 Introdução à Organização de Computadores Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira

Aula 4. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 8051

Curso de Microcontroladores PIC 16F84A

Microcontrolador PIC: Conceitos Básicos

Introdução ao AVR Butterfly

Guia da Placa de desenvolvimento PD Mega16 N1

SICILIANO TECNOLOGIA

1.ARQUITETURA INTERNA DE UM MICROPROCESSADOR

Sistemas Digitais EDUARDO ELIAS ALVES PEREIRA

9/3/2009. Aula 4. Engenharia de Sistemas Embarcados. Cenário: Sistema de Controle de LEDs

HARDWARE DOS RELÉS NUMÉRICOS

CAPÍTULO 5. Interfaces I 2 C e SPI. Interface I 2 C. Interfaces e Periféricos 37

Estrutura Básica de um Computador

1.2 Registradores relacionados as Interrupções. 3. TOSE Sentido da transição da borda do sinal aplicado am TMR0

A placa descrita pode receber alimentação pela conexão USB ou por uma fonte de alimentação externa.

QSPAVR40 Manual do usuário Ver 1.0

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento

O protocolo SPI. 1 - Introdução. 2 Ligação física

Arquitetura e Organização de Computadores. Processador Registrador Memória. Professor Airton Ribeiro

Circuito Eletrônico. Entendendo o circuito eletrônico na robótica. domingo, 28 de agosto de 11

SEMINÁRIO ASSEMBLY: Arquitetura 8051

Acetatos de apoio às aulas teóricas

Kit de desenvolvimento ACEPIC PRO V3.0

Arquitetura e Organização de Computadores. Processador Registrador Memória. Professor Airton Ribeiro

MINICURSO - PLATAFORMA ARDUINO Eixo de Informação e Comunicação Gil Eduardo de Andrade

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento

Programação C para Arduino

Sistemas Embarcados. Prof. Dr. Fábio Rodrigues de la Rocha. (Apresentação) 1 / 45

PLATAFORMA PARA ESTUDO EM PROGRAMAÇÃO DE MICROCONTROLADORES FAMÍLIA 8051

Interfaces Seriais. Disciplina de Microcontroladores. Prof. Rubão

ORGANIZAÇÃO DE COMPUTADORES

Placa de desenvolvimento USB AFSmartBoard utiliza PIC18F4550 da Microchip, microcontrolador com o Flash 32kb, 2048 bytes de memória RAM

EPAC Microcontroladores Organização do curso 30/8/2007

Curso Arduino ESP8266. Aula #1 - Introdução

Palestra de Tecnologia. Assunto: Microcontroladores.

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PROF. DEJAIR PRIEBE

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

Cerne. Conhecimento para o Desenvolvimento. Cerne Tecnologia e Treinamento

Transcrição:

1 LT36D Microcontroladores Notas de Aula Aulas 1 e 2 Prof. Eduardo G. Bertogna DAELN/UTFPR-Campo Mourão

2 Sistema Microprocessado Mínimo Microprocessador: Também chamada de CPU (Central Processing Unit), controla todas as operações do sistema, executando instruções residentes na memória de programa. Estas instruções podem realizar operações lógicas, aritméticas, de acesso às portas de entrada e saída, e acesso a memória de dados ou programa; Memória de Programa: Memória do tipo não volátil (ROM/EPROM/FLASH), onde o programa (Firmware) a ser executado pelo microprocessador ca armazenado; Memória de Dados: Memória do tipo volátil (RAM) onde os dados a serem processados cam temporariamente armazenados. Estes dados podem ser provenientes das portas de entrada, por exemplo um teclado, ou então podem ser gerados através de operações lógicas ou aritméticas com outros dados;

Portas de Entrada e Saída (E/S): São dispositivos que permitem a entrada e saída de dados do/para o mundo exterior, sendo constituídas de interfaces e periféricos; Bus de Dados: Linhas de dados bidirecionais que interligam a CPU às portas de E/S e memória, sendp utilizadas para leitura/escrita nestes dispositivos; Bus de Endereços: Linhas de endereços unidirecionais (a CPU sempre fornece endereços), que interligam o barramento de endereços da CPU aos barramentos de endereços das memórias e circuito de seleção; Bus de Controle: Linhas de controle que interligam sinais de controle da CPU e os respectivos sinais nas memórias, portas de E/S e demais circuitos auxiliares. Alguns sinais de controle são fornecidos pela CPU, como sinais de requisição de leitura e escrita, e requisição de memória/dispositivos de E/S, enquanto outros são por esta recebidos, como os de interrupção, reset, de espera, requisição de acesso direto à memória, etc. Circuito de Power-On Reset: Fornece o sinal de RESET ao se energizar o sistema, assim a CPU inicializa os seus registros internos para valores default; Circuito de Seleção: Fornece os sinais de seleção e habilitação para as memórias de dados e de programa, assim como para portas de E/S, de conformidade com instruções executadas pela CPU; Circuito de Clock: Fornece o sinal de clock ou relógio para que o Microprocessador possa operar.

3 Microcontroladores Microcontrolador é um sistema microprocessado e vários periféricos integrados em um único chip, com as seguintes vantagens: Custo muito reduzido e minimização no projeto da PCI e maior facilidade de uso, com menor consumo de potência; Grande número de derivativos com características diversas, atendendo aos mais variados projetos, e grande suporte de HW (Kits) e SW (IDEs) fornecido por fabricantes e parceiros. Von-Neumann e Harvard Quanto à organização do barramento de dados há dois tipos de arquiteturas de microprocessadores e microcontroladores: Von-Neumann: nesta arquitetura, cujo nome foi dado em homenagem ao seu criador - John Von- Neumann, um único barramento de dados interno interfaceia a memória de programa, onde as instruções são buscadas, e a memória de dados;

Harvard: nesta outra arquitetura o processador possui barramentos de dados distintos para a memória de programa e a memória de dados. Desta forma, o processador pode buscar simultaneamente o código de instrução na memória de programa e seu operando (quando existente) na memória de dados, e portanto, a execução da instrução é mais rápida que no Von- Neumann; Uma possiblidade adicional é a busca antecipada de instruções, operação esta chamada de pipeline, e neste caso todas as duas arquiteturas podem fazer uso deste processo.

4 Arquiteturas CISC vs RISC CISC: sigla de Complex Instruction Set Computer, nesta arquitetura há um grande número de instruções com variedade de operações e sua codicação não possibilita um código de tamanho xo, podendo haver instruções com variado nr de bytes; RISC: sigla de Reduced Instruction Set Computer, nesta arquitetura, há um menor número de instruções com operações mais simples e nr de bytes xo. Como a arquitetura CISC tem um conjunto de instruções com nr de bytes maior que a RISC, a execução destas instruções se torna menos eciente que os de arquitetura RISC.

5 Famílias de Microcontroladores Populares 8051: Originalmente desenvolvida pela INTEL, hoje produzida por um grande n de fabricantes como Atmel, Dallas Semiconductors, NXP, dentre tantas outras. Possui arquitetura CISC de 8 bits, com cerca de 400 dispositivos derivativos entre os vários fabricantes. PIC: Produzida pela Microchip, possui arquitetura RISC de 8 bits, ideal para as aplicações de baixa e média complexidade, como os da família AVR. AVR: Produzida pela Atmel, possui arquitetura RISC de 8 bits, alto desempenho, ideal para aplicações de baixa e média complexidade. Usado como base das placas Arduino. MSP430: Produzida pela Texas Instruments, possui arquitetura RISC de 16 bits ideal para aplicações de baixo consumo e média complexidade. ARM: Produzida por inúmeros fabricantes, o núcleo é licenciado pela empresa ARM, sendo de arquitetura RISC de 32 bits, ideal para as aplicações de média e alta complexidade.

6 Visão Geral da Família AVR Desenvolvido em 1996, na Atmel da Noruega por Alf-Egil Bogen e Vergard Wollan, sendo o AT90S1200 o primeiro elemento da família, pino a pino compatível com o AT89S2051 exceto pelo Reset em nível 1; A família AVR possui arquitetura RISC de 8 bits com conceito Harvard, e pipeline de um nível garantindo o paralelismo; Conjunto de 131 instruções, a maioria sendo executadas em um único ciclo de clock, poucas executadas em 2, 3 ou 4 ciclos; 32 registros de uso geral, todos conectados diretamente à ULA, permitindo que dois registros quaisquer sejam acessados em um único ciclo de clock; Perto de 20 MIPS, com o clock máximo de 20 MHz: 1MIPS por MHz, 10x mais rápido que os microcontroladores de arquitetura CISC; Eciência na geração de código, tanto em C como em assembly, comparável ao CISC; Memória Flash ISP, 10.000 ciclos de escrita/apagamento; Tensões de alimentação em alguns elementos entre 1,8V e 5,5V, e possibilidade de operação em baixo consumo; Grande suporte de hardware e software para o desenvolvimento, muitos destes de natureza livre e aberta.

7 Elementos da Família AVR tinyavr megaavr XmegaAVR Battery Management Automotive AVR Sub-Famílias tinyavr e megaavr tinyavr: Entre 6 e 20 pinos de E/S linhas, pequena área de memória Flash (1kB ou 2kB), poucos periféricos internos, ideal para aplicações de baixa complexidade, e baixo custo. megaavr: Entre 8kB e 256kB de memória Flash, entre 23 e 54 pinos de E/S, inúmeros periféricos internos: Canais de ADC, Canais de PWM, Comparador Analógico, Canais TWI/I2C, UART e SPI, ideal para as aplicações de média complexidade.

8 Sub-Famílias tinyavr, e megaavr Modelo* tiny11 tiny12 tiny13 tiny15 tiny26 tiny28 tiny2313 mega8 mega8515 mega8535 mega16 mega162 mega32 mega64 mega128 mega48 mega88 mega168 mega256 Características Principais 1kB Flash, 1 T/C de 8bits, 6 Pinos de E/S. Idem ao tiny11, com 64B de EEPROM. Idem ao tiny12, com 64B de SRAM, e 4 ADC's. Idem ao tiny12, com 4 ADC's. 2kB Flash, 128B EEPROM, 128B SRAM, 2 T/C de 8bits, 16 Pinos de E/S, 11 ADC's de 8bits. 2kB Flash, 1 Timer/Counter de 8bits, 20 Pinos de E/S. 2kB Flash, 128B de EEPROM, 128B de SRAM, 2 T/C (1 de 8bits, 1 de 16bits), 18 Pinos de E/S, 1 Serial. 8kB Flash, 512B EEPROM, 512B SRAM, 3 T/C (2x8,1x16) 23 Pinos de E/S, 1 Serial, 3 PWM, 8 ADC' s, 8kB Flash, 512B EEPROM, 512B SRAM, 2 T/C (1x8,1x16) 35 Pinos de E/S, 1 Serial, 3 Canais de PWM Idem ao mega8515, com 2 Timer/Counter de 8bits, 4 Canais de PWM, 8 ADC's, e 32 Pinos de E/S. 16kB Flash, 1KB EEPROM, 1KB SRAM, 3 T/C (2x8,1x16) 32 Pinos de E/S, 1 Serial, 6 Canais de PWM, 8 ADC' s, Idem ao mega16, c/ 2 T/C de 16bits, 4 Canais de PWM, 2 Canais Seriais, 35 Pinos de E/S, porém sem ADC's. Idem ao mega16, c/ 32kB de Flash, 2kB SRAM, 4 PWM. 64kB Flash, 2kB EEPROM, 4kB SRAM, 4 T/C (2x8,1x16) 54 Pinos de E/S, 2 Serial, 8 Canais de PWM, 8 ADC's. Idem ao mega64, com 128kB Flash, 4kB EEPROM. 4kB Flash, 256B EEPROM, 512B SRAM, 3 T/C (2x8,1x16) 24 Pinos de E/S, 1 Serial, 5 Canais de PWM, 8 ADC's. Idem ao mega48, c/ 8kB Flash, 512B EEPROM, 1kB RAM. Idem ao mega88, c/ 16kB de Flash. Idem ao mega128, c/ 256kB Flash, 8kB SRAM, 16 PWM.

9 Ambientes de Desenvolvimento p/ AVR CodeVisionAVR Possibilita apenas desenvolvimento em C, e não conta com simulador /depurador. Possui um Wizard para prévia conguração do código através da geração automática de código de congurações de registros de acordo com as seleções feitas para cada periféricos neste Wizard. Sua versão de avaliação possibilita a geração de até 4k de código, com pequenas limitações. AVR Studio 4 ou Atmel Studio 7 Desenvolvimento em assembly e C, com simulador/depurador. Freeware fornecido pela Atmel. No desenvolvimento em C pode ser usado com o compilador GNU GCC WinAVR e com o AVR Toolchain da Atmel.

10 Tela do IDE CodeVisionAVR Bastante leve de baixar e instalar, podendo ser obitido em http://www.hpinfotech.com sua versão de avaliação.

11 AVR Studio 4 ou 5 Versão distribuída anteriormente à criação do Atmel Studio, tendo como vantagem ser mais leve (125MB), pela razão de não sendo baseado no Visual Studio. Pode ser baixada de: http://pessoal.utfpr.edu.br/ebertonha/programas-p-download/avrstudio-4.19.

12 Atmel Studio 6 ou 7 Versão bastante pesada para baixar (cerca de 900MB) e também para instalar, porém, dispõe de recursos poderosos como plugins que possibilitam o uso do Code- Vision AVR e Arduino, incluindo ainda suporte a uma variedade de placas de desenvolvimento.

Núcleo da Arquitetura AVR RISC 13

14 Recursos do ATmega328 131 Instruções (maioria executada em 1 ciclo clock) 32 kb Memória Flash ISP 10.000 ciclos de escrita 2.048 B Memória SRAM 1.024 B Memória EEPROM 100.000 ciclos de escrita 32 Registros de 8 bits de uso geral 23 pinos de I/O programáveis individualmente 2 T/C de 8 bits, c/ prescaler separado e Modo de Comparação 1 T/C de 16 bits, c/ prescaler separado e Modos de Comparação e de Captura 6 Canais de PWM Contador de Tempo Real c/ oscilador independente Watchdog Timer c/ oscilador independente 6 Conversores A/D de 10-bits (8 ADCs em TQFP/MLF) Multiplicador por Hardware (2 ciclos de clock) 1 Comparador Analógico 1 Serial TWI compatível c/ I2C Philips 1 USART 1 SPI Master/Slave 2 Interrupções Externas e 23 Interrupções/Wake-Up de I/O 6 Modos de Baixo Consumo Detecção de Brown-out e Power-On Reset Oscilador RC Interno Calibrado Encapsulamentos DIP-28, TQFP-32, MLF-28 Tensões: 1,8V-5,5V Clock: 0-20 MHz

ATmega328: Arquitetura Interna 15

16 ATmega328: Pinagem DIP-28 Descrição dos Pinos do ATmega328 Vcc - Tensão de Alimentação de 1,8 a 5,5V GND - Referência. AVcc - Entrada da Tensão do Conversor A/D, devendo ser conectado externamente a Vcc. Se o ADC é usado deve ser conectado a Vcc via ltro passa-baixas. AREF - Entrada da Tensão de Referência do Conversor A/D

17 PORTAS B, C e D (PCINT0...PCINT22) - Todos os 23 pins de E/S das Portas B, C e D possuem a função alternativa de ativar uma interrupção na mudança de estado do respectivo pino, servindo assim como uma interrupção externa. PORTB (PB0...PB7) - Porta de 8 bits bidirecional de E/S. Cada pino desta porta possui uma função alternativa, ver tabela abaixo. Pinos Funções Alternativas PB0 CLK0 Saída de clock dividido ICP1 Entrada de Captura do T/C1 PB1 OC1A Saída Comparação A do T/C1 PB2 OC1B Saída Comparação B do T/C1 SS Seleção Master/Slave da SPI PB3 OC2A Entr. Inv. do Comp. Analógico MOSI Saída Output/Slave da SPI PB4 MISO Saída Input/Slave da SPI PB5 SCK Entrada de Clock da SPI PB6 XTAL1 Entrada Clock Externo 1 TOSC1 Entrada Clock T/C2 qdo Osc. RC PB7 XTAL2 Entrada Clock Externo 2 TOSC2 Entrada Clock T/C2 qdo Osc. RC

18 PORTC (PC0...PC6) - Porta de 7 bits bidirecional de E/S. Cada pino desta porta possui uma função alternativa, ver tabela a seguir. Pinos Funções Alternativas PC0...PC5 ADC0...ADC5 Entradas de conversão A/D PC4 SDA Entrada/Saída de Dados da I2C PC5 SCL Entrada/Saída de Clock da I2C PC6 RESET Entrada de Reset PORTD (PD0...PD7) - Porta de 8 bits bidirecional de E/S. Cada pino desta porta possui uma função alternativa, ver tabela a seguir. Pinos Funções Alternativas PD0 RXD Entrada de Recepção Serial - USART PD1 TXD Saída de Transmissão Serial - USART PD2 INT0 Entrada Interrupção Externa INT0 PD3 INT1 Entrada Interrupção Externa INT1 OC2B Saída de Comparação B do T/C2 PD4 T0 Entrada Contagem do T/C0 XCK Entrada/Saída Clock Externo da USART PD5 T1 Entrada Contagem do T/C1 OC0B Saída de Comparação B do T/C0 PD6 AIN0 Entrada Positiva Comparador Analógico OC0A Saída de Comparação A do T/C0 PD7 AIN1 Entrada Negativa Comparador Analógico

19 Placas da Família Arduino AVR Pinagem do ATmega328p na Placa Arduino Uno/Nano Aduino - Pino ATmega328p Aduino - Pino ATmega328p D0 PD0 D8 PB0 D1 PD1 D9 PB1 D2 PD2 D10 PB2 D3 PD3 D11 PB3 D4 PD4 D12 PB4 D5 PD5 D13 PB5 D6 PD6 A0..A5 PC0...PC5 D7 PD7 VIN ARef

20 Placa Atmel Xplained328 Gravadores ISP

21 Sistema de Clock do ATmega328 Seleciona a fonte primária de clock de 5 fontes distintas: Clock Externo, Cristal Oscilador Externo, Cristal Oscilador de Baixa-Freq., Oscilador RC Interno e Oscilador Watchdog. Fornece os sinais de clock derivados da fonte primária;

22 Sinais de clock derivados da fonte primária: Clk CPU Clk IO Clk Flash Clk ADC Clk ASY Núcleo AVR e RAM Módulo de E/S, T/C's, Canal SPI, e UART; Memória Flash, ativado junto c/ clock da CPU; Conversor A/D; T/C2 clock assíncrono Arbitra a ativação dos sinais de clock, acima, não necessariamente ativos simultaneamente, em razão dos modos de baixo consumo. Fontes de Sinal de Clock São 5 diferentes possibilidades para a fonte de geração de sinal de clock, listadas a seguir: Fonte de Clock Externa; Cristal/Ressonador Cerâmico Externo: Cristal de Baixa Freqüência Externo; Oscilador RC Interno Calibrado; Oscilador RC Interno de 128 khz.

23 Seleção da Fonte Primária de Clock - Fuse-bits CKSEL3...0 A fonte primária de clock é selecionada quando da programação do dispositivo, através dos fuse-bits CKSEL3...0: CKSEL3...0 Fonte de Clock Selecionada 1111-1000 Cristal Externo Baixa Potência 0111-0110 Cristal Externo Excursão Completa 0101-0100 Cristal Externo de Baixa Frequência 0011 Oscilador RC Interno de 128 khz 0010 Oscilador RC Interno Calibrado 0000 Clock Externo Seleção default de fábrica é p/ Oscilador RC interno Obs: Maior atraso de inicialização (start-up time), possibilita usar qualquer métodos de gravação ISP disponível. Fontes Externas de Clock Cristal Quartz Oscilador - Figura (a) Pinos XTAL1/XTAL2: Entrada/Saída do amplicador inversor usado como oscilador interno. O cristal oscilador e dois capacitores, ou um ressonador cerâmico devem ser conectados conforme a gura (a). Fonte de Clock Externa - Figura (b) Pino XTAL1: Entrada de fonte de clock externa; Pino XTAL2: Não conectado, conforme gura (b).

24 Oscilador Interno Calibrado Quando se deseja minimizar o uso de componentes externos, e existe uma certa tolerância na precisão do sinal de clock; Por default 8 MHz a 25ºC e Vcc=3V ±10%, ou calibrado pelo usuário de 7,3 a 8,1 MHz ±1%; Precisão é dependente de temperatura e tensão de alimentação; Registro de Calibração OSCCAL permite ajustar a calibração do oscilador RC Interno, no Reset um valor associado ao byte de assinatura é carregado neste registro. Start-up do Oscilador Interno Calibrado Os tempos de inicialização do Oscilador RC Interno, é feita através dos fuse-bits SUT1 e SUT0: Start-up Time para Oscilador Interno (Vcc=5V) SUT0 Start-Up Time Adicional Recomen- SUT1 após Power-Down após Reset* dação 00 6 Clocks 14 Clks BOD Habilit. 01 6 Clocks 14 Clk + 4,1 ms Fonte Rápida 10 6 Clocks 14 Clk + 65 ms Fonte Lenta 11 Reservado

25 Circuito de Reset Faz a carga dos Registros de E/S com seus valores iniciais e carrega o PC com o vetor de Reset: 0000H; Após sua ativação, um atraso de tempo, Start-Up Time, é gerado conforme seleção dos fuse-bits CKSEL3...CKSEL0; A execução do programa inicia no endereço RESET, e uma instrução de desvio desvia a execução p/ a rotina principal. Modo de operação do Circ. de Reset, depende dos bits de controle: WDRF, BORF, EXTRF, e PORF, do Reg. MCUSR.

26 Fontes de Ativação do Reset Sinal de Ativação Externo: sinal de nível lógico baixo por mais de 50ns no pino de RESET; Power-On Reset: tensão Vcc abaixo da tensão limite de Power-On Reset (Power-On Threshold) - V P OT, tipicamente entre 1,4V e 2,3V; Watchdog Timer Reset: período programado no Temporizador Watchdog expira antes da instrução WDR ser executada, com o WDT habilitado; Brown-Out Reset: tensão Vcc abaixo de um valor limite, (Brown-Out Threshold) V BOT, c/ o detector de Brown-Out (BOD) habilitado pelo fuse bit BODEN. V BOT é selecionada pelo fuse-bit BODLEVEL: - Se programado o V BOT = 4, 0V - Se desprogramado, V BOT = 2, 7V. Por default BODEN estará desprogramado; Bits BODSE e BODS no registro MCUCR permite desligar o circuito de BOD em modo Sleep.

27 Registro de e Status da CPU - MCUSR Neste registro são alocados bits de status (Flags) da CPU em relação à geração do sinal de Reset pelas 5 fontes distintas. MCUSR WDRF BORF EXTRF PORF Bit PORF: Power-On Reset Flag, Sinalizador de Power-On Reset, setado no Power-On, e resetado somente por software; Bit EXTRF: External Reset Flag, Sinalizador de Reset Externo, setado no reset externo e resetado unicamente por software; Bit BORF: Brown-Out Reset Flag, Sinalizador de Brown-Out Reset, setado no reset por Brown-Out, e resetado por software ou Power-On; Bit WDRF: Watchdog Reset Flag, Sinalizador de Watchdog Reset, setado pelo reset do WDT, e resetado por software ou no Power-On.

28 Registro de Controle da CPU - MCUCR Neste registro são alocados bits de controle da CPU. MCUCR - BODS BODSE PUD - - IVSEL IVCE Bit IVSEL: Interrupt Vector Selection, setado move os vetores de interrupção p/ o início do setor de boot; Bit IVCE: Interrupt Vector Change Enable, setado habilita a função do bit IVSEL. Resetado por hardware 4 ciclos de clock após ter sido setado, ou quando IVSEL é setado. Bit PUD: Pull-Up Disable, setado desabilita todos os pull-ups em todos os pinos das portas; Bit BODSE: BOD Sleep Enable, setado permite que o bit BODS desligue o circuito de detecção de Brown-out durante estado Sleep; Bit BODS: BOD Selection, Deve ser setado para desligar o circuito de detecção de Brown-out durante estado alguns modos Sleep;

30 Registro de Status da CPU - SREG Registro de ags acerca das operações Aritméticas/- Lógicas executadas, como também alocação do bit de habilitação global de interrupções e um bit de uso geral. SREG I T H S V N Z C Flag T: Temporary, bit de alocação temporária usado p/ teste em bits, através das instruções BLD e BST; Flag H: Half-Carry, indica ocorrência de um vai-um do nibble inferior p/ o superior; Flag S: Signal, indica o resultado: N V Flag V: Overow, indica se o byte sinalizado em complemento de 2, está na faixa de -127 a 128; Flag N: Negative, indica resultado negativo em operação aritmética/lógica; Flag Z: Zero, indica resultado zero em operação aritmética/lógica; Flag C: Carry, indica ocorrência de vai-um, em uma operação aritmética/lógica. Bit I: Interrupt, setado p/ que qualquer fonte de interrupção possa ter efeito.

31 Operação do Registro SREG Habilitação/Desabilitação de Interrupções Declarações em C: Para o compilador C do IDE Codevision: #i n c l u d e <mega328p. h> // Arq. h e a d e r i n t e r r u p.... #asm ( " c l i " ) / * D e s a b i l i t a i n t e r r u p ç õ e s g l o b a l m e n t e * /... #asm ( " s e i " ) / * H a b i l i t a i n t e r r u p ç õ e s g l o b a l m e n t e * / Para o compilador C avr-gcc do WinAVR: #i n c l u d e <a v r / i n t e r r u p t. h> // Arq. h e a d e r i n t e r r u p.... c l i ( ) ; / * D e s a b i l i t a i n t e r r u p ç õ e s g l o b a l m e n t e * /... s e i ( ) ; / * H a b i l i t a i n t e r r u p ç õ e s g l o b a l m e n t e * / Declarações em ASM:. INCLUDE "M328PDEF. INC" ; Arq. de d e f i n i ç õ e s d i s p o s.... CLI ; D e s a b i l i t a i n t e r r u p ç õ e s... SEI ; H a b i l i t a i n t e r r u p ç õ e s

Modos de Baixo Consumo - Sleep Modes O modo de baixo consumo é ativado se o bit de Habilitação do Modo Sleep, SE=1 (registro SMCR), e uma instrução SLEEP for executada. Modo Idle - CPU é parada; - Periféricos e Interrupções continuam funcionando; - CPU retorna do modo Idle ao ocorrer uma destas interrupções; - Circuito de BOD não pode ser desativado neste modo. Modo Power-Down - Oscilador externo é parado; - Circuitos dos TWI, WDT, e Interrupções, permanecem funcionando; - Retorno do Power-Down através de uma interrupção destes circuitos, de um Reset externo, ou Reset por Brown-out. Modo Power-Save - Idêntico ao Power-Down, exceto que T/C2 continua ativo; - Adicionalmente, pode retornar deste modo por interrupções do T/C2; - Se o T/C2 não será usado recomenda-se o modo Power-Down. Modo Standby - Idêntico ao Power-Down, exceto que o oscilador externo se mantém funcionando; - Somente possível de ser usado com Cristal/Ressonador externo. Modo Standyby Extendido - Idêntico ao modo Power-Save, exceto que o oscilador externo se mantém funcionando. - Somente possível de ser usado com Cristal/Ressonador externo. 32

33 Reg. de Controle dos Modos de Sleep - SMCR Neste registro são alocados bits de controle e seleção do modo de baixo consumo dentre os 5 modos disponíveis já descritos. SMCR SM2 SM1 SM0 SE Bit SE: Sleep Enable, setado bit permite que o ATmega328 entre em dos 5 modos de baixo consumo disponíveis após a execução da instrução SLEEP. Bits SM0...SM2: Sleep Modes, seleciona um dos 5 modos de operação sleep conforme tabela abaixo. Modos de Baixo Consumo SM2 SM1 SM0 Modo 0 0 0 Modo Idle 0 0 1 Redução de ruído do ADC 0 1 0 Modo Power-down 0 1 1 Modo Power-save 1 0 0 Reservado 1 0 1 Reservado 1 1 0 Modo Standby 1 1 1 Modo Standby extendido