Baixe o app para aproveitar ainda mais
Prévia do material em texto
Interfaceamento Eletrônico I Material Teórico Responsável pelo Conteúdo: Prof. Esp. Elvis Luiz dos Santos Revisão Textual: Prof. Me. Luciano Vieira Francisco Arquitetura e Recursos Básicos do Microcontrolador • Arquitetura AVR – ATmega328; • Unidade Lógica e Aritmética (ULA). • Tratar das particularidades dos microcontroladores. OBJETIVO DE APRENDIZADO Arquitetura e Recursos Básicos do Microcontrolador Orientações de estudo Para que o conteúdo desta Disciplina seja bem aproveitado e haja maior aplicabilidade na sua formação acadêmica e atuação profissional, siga algumas recomendações básicas: Assim: Organize seus estudos de maneira que passem a fazer parte da sua rotina. Por exemplo, você poderá determinar um dia e horário fixos como seu “momento do estudo”; Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma alimentação saudável pode proporcionar melhor aproveitamento do estudo; No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você tam- bém encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão sua interpretação e auxiliarão no pleno entendimento dos temas abordados; Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus- são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e de aprendizagem. Organize seus estudos de maneira que passem a fazer parte Mantenha o foco! Evite se distrair com as redes sociais. Mantenha o foco! Evite se distrair com as redes sociais. Determine um horário fixo para estudar. Aproveite as indicações de Material Complementar. Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma Não se esqueça de se alimentar e de se manter hidratado. Aproveite as Conserve seu material e local de estudos sempre organizados. Procure manter contato com seus colegas e tutores para trocar ideias! Isso amplia a aprendizagem. Seja original! Nunca plagie trabalhos. UNIDADE Arquitetura e Recursos Básicos do Microcontrolador Arquitetura AVR – ATmega328 Após tratarmos das características, anteriormente, iniciaremos o estudo de um microcontrolador real; para esta tarefa elegeremos o microcontrolador ATmega328, da Microchip, que é o uC usado na placa do Arduino UNO. Pinagem do ATmega quando usado na board Arduino: http://bit.ly/2pOdjKL Ex pl or Figura 1 – Pinagem do CI ATmega Fonte: Reprodução Figura 2 – Placa do Arduino Uno Fonte: Wikimedia Commons Aprofunde os seus conhecimentos assistindo ao trailer intitulado Arduino: The Documentary, Disponível em: https://bit.ly/2TL9YJhEx pl or Arduino é uma plataforma de desenvolvimento para sistemas microcontrolados. A facilidade de uso e o sistema aberto, tanto do hardware quanto do software, fazem desse uma ótima opção para qualquer um que queira construir projetos eletrônicos. Ademais, permite que você conecte componentes e circuitos de interfaceamento eletroeletrônico em seus terminais, de modo a controlar cargas como, por exemplo, ligar ou desligar lâmpadas e motores, ou medir, por meio de sensores, variáveis como níveis de água, luz e temperatura. Arduino é conectado ao computador para que possa receber os arquivos do programa que foi desenvolvido. Essa conexão se dá por meio de um conector Universal Serial Bus (USB). Dessa forma, podemos usar o Arduino como placa de interface e controlar os dispositivos a partir de comandos do seu computador como, por exemplo, usar o assistente Jarvis do filme Homem de Ferro, a fim de acionar as lâmpadas da sua casa através de comando de voz. 8 9 Assista ao vídeo intitulado Jarvis com Arduino – agora você vai viajar nas ideias! Disponível em: https://youtu.be/p9bADo8dRCkEx pl or O “coração” do seu Arduino é um microcontrolador. A maioria dos diversos componentes da placa destina-se a alimentar o Arduino e proporcionar a comuni- cação com o computador. Como já vimos, o microcontrolador tem tudo que havia nos primeiros computadores domésticos. Os pinos de entrada e saída ligam o microcontrolador aos demais componentes eletrônicos e os coloca no conector de saída, onde são conectados os componentes e circuitos de interfaceamento. Esses pinos podem ser utilizados como saída ou como entrada, lendo dados analógicos ou digitais. A função de cada pino é definida por um programa, no qual configuramos as funções em uma linha de comando. Por exemplo, para configurar o pino 10 do Arduino como uma entrada, utilizamos o comando pinMode(10, output); Vale lembrar que o Arduino é programado através de um programa proprietário. Disponível em: https://bit.ly/37hPTOmEx pl or Figura 3 – Ícone do programa do Arduino Fonte: Reprodução O microcontrolador utilizado é de linha, produzido em massa e disponível para venda separadamente da board Arduino. Assim, podemos programar o microcon- trolador na board do Arduino e logo após retirá-lo e utilizar em uma aplicação com interface eletroeletrônica produzida por você mesmo. 9 UNIDADE Arquitetura e Recursos Básicos do Microcontrolador Figura 4 Fonte: Acervo do conteudista As características do ATmega 328 são as seguintes: • Microcontrolador da família AVR-RISC de 8 bits e de baixo consumo de corrente; • Arquitetura Harvard; • Velocidade de processamento de até 20 Mips – Milhões de Instruções por Segundo –, em 20 MHz; • Memória de programa – flash – de 32 Kbytes; • 2 Kbytes de memória volátil (RAM); • 1 Kbyte de Electrically-Erasable Programmable Read-Only Memory (Eeprom). MEGA8-P PC8(/RESET) PC0(ADC0) PC1(ADC1) PC2(ADC2) PC3(ADC3) PC4(ADC4/SDA) PC5(ADC5/SCL) POD(RXD) PD1(TXD) PD2(INT0) PD3(INT1) PD4(XCK/T0) PD5(T1) PD6(AIN0) PD7(AIN1) P800(CP) PB1(OC1A) PB2(SS/OC1B) PB3(MOSI/OC2) PB4(MISO) PB5(SCK) AGND AREF AVCC FB6(XTAL1/TOSC1) FB7(XTAL2/TOSC2) GND VCC IC1A X1 1 1 23 24 2 22 6 6 11 12 73 3 3 4 4 4 5 5 7404N IC1B 7404N R2 220 GND GND R1 S1 IC4 OUT GND 7805 22 pF 22 pF C 4 C3 Q 1uF C2 4 3 2 1 IN 10uF C1 +12V 10K IC2 LE D1 1 22 21 20 9 10 8 7 8 9 25 26 27 28 13 14 15 16 17 18 19 Figura 5 Assista ao vídeo sobre arquitetura de microcontroladores: https://youtu.be/1sWl_nZWO7A Ex pl or 10 11 AVR CPU SRAMFlash EEPROM 8bit T/C 0 16bit T/C 1 A/D Conv. USART 0 PORT D (8) SPI TWI PORT B (8) PORT C (7) DA TA BU S AVCC AREF GND RESET XTAL [1.2] PD(0...7) PB(0..7) PC(0...6) ADC[6...7] GN D VC C 8bit T/C 2 AnalogComp. Internal Bandgap 6 2 debugWIRE PROGRAM LOGIC Power Supervision PQR / BQD & RESET Watchdog Timer Watchdog Oscillator Oscillator Circuits/ Clock Generation Figura 6 – Estrutura interna do ATmega 328 Unidade Lógica e Aritmética (ULA) Conectada diretamente aos registradores gerais, a Unidade Lógica e Aritmética (ULA) é responsável por executar operações entre os quais, ou entre um registra- dor e uma constante, de acordo com o comando decodificado da instrução corres- pondente, aplicado pela unidade central de controle. As operações podem ser executadas com um único operando e podem ser divi- didas em três categorias principais: aritmética, lógica e funções de bit. Após uma operação aritmética, o registrador de status é atualizado para exibir informações sobre o resultado da operação. 11 UNIDADE Arquitetura e Recursos Básicos do Microcontrolador Algumas implementações da arquitetura AVR também fornecem um hardware multiplicador para valores com sinal e fracionários. Os seguintes esquemas de trans- ferência interna à Unidade Central de Processamento (UCP) são suportados sob o ponto de vista da ULA: • Um operando de entrada de 8 bits e um resultado de saída de 8 bits; • Dois operandos de entrada de 8 bits e um resultado de saída de 8 bits; • Dois operandos deentrada de 8 bits e um resultado de saída de 16 bits; • Um operando de entrada de 16 bits e um resultado de saída de 16 bits. Registrador de Status O registrador armazena informações após a manipulação de dados e o resul- tado da instrução aritmética mais recentemente executada, que serão utilizadas para alterar o fluxo do programa através de operações condicionais. Ao ocorrer o desvio para uma rotina de interrupção, o registrador deve ser armazenado na pilha, via hardware. Ponteiro de Pilha Pilha é a parte do hardware usada para armazenar dados temporários. Assim como a memória cache dos processadores, a pilha guarda também as variáveis locais e endereços de retorno após interrupções e chamadas de sub-rotina. Pilha é implementada no hardware de maneira invertida, parte do endereço mais alto assume endereços menores a partir do momento em que a pilha aumenta. Para que se possa apontar para o endereço do último dado armazenado na pilha temos o ponteiro de pilha. Dessa forma, os primeiros dados a serem colocados serão os últimos a serem tirados, seguindo uma fila do tipo Lifo – Last Input, First Output – ou Filo – First Input, Last Output (LIMA; VILLAÇA, 2012). A pilha deve ser definida na Random Access Memory (RAM) pelo programa antes da ocorrência de qualquer sub-rotina ou interrupção. O valor do ponteiro de pilha inicial é igual ao último endereço da RAM e esse registrador é implementado como dois registros de 8 bits no espaço de entradas e saídas. A pilha é efetivamente alocada na memória RAM e, consequentemente, o tamanho da pilha é limitado ex- clusivamente pelo tamanho de memória RAM, além do quanto dessa será utilizado por outras finalidades. O contador de programa funciona também como um ponteiro, porém, indica para o processador qual é o endereço da próxima instrução a ser executada na memória do programa. É incrementado automaticamente à medida que as instruções são executadas, exceto quando ocorrem saltos, que têm os seus endereços indicados na própria instrução. Esses saltos, diretos ou por chamadas 12 13 de sub-rotina, determinam o fluxo do programa e podem desviá-lo para qualquer endereço válido. Pode também ser diretamente manipulado pelo programa usuário (LIMA; VILLAÇA, 2012). Unidade Central de Controle A unidade central de controle é considerada o núcleo do núcleo. Essa máquina de estados é responsável por controlar, de fato, todos os outros componentes, exe- cutando as operações descritas pelas instruções, depois de decodificadas. Opera a partir do princípio da máquina de Turing universal, realizando as ações de busca, decodificação e execução (LIMA; VILLAÇA, 2012). Barramentos O barramento de dados é de 8 bits, caracterizando o número de bits do micro- controlador. As instruções do ATmega328 são de 16 ou 32 bits – a maioria é de 16 bits. Assim, cada instrução consome dois ou quatro bytes na memória de pro- grama – um byte par e um ímpar. O acesso às posições de memória, dado pelo contador de programa – Program Counter (PC) –, é realizado de dois em dois bytes, começando sempre por uma posição par. Portanto, o barramento de endere- ços deve ser capaz de endereçar sempre posições pares da memória de programa. Assim, o bit menos significativo do barramento de endereços pode ser desprezado. Dessa forma, para a memória de 32 Kbytes – 25.210 = 215 bytes – do Atmega328 são necessários 14 bits de endereçamento – ou seja, 214 = 16.384 endereços (LIMA ; VILLAÇA, 2012). Memórias e Espaços O espaço de memória de programa é dividido em duas seções: a parte de Boot Program, ou programa de inicialização, e a parte de programa de aplicação, ou programa usuário. Ambas as seções possuem bit de travamento para proteções de escrita ou leitura e escrita. Durante interrupções e chamadas de sub-rotinas, o endereço de retorno do PC é armazenado na pilha. Assim como o ponteiro de pilha, todos os programas usu- ários devem inicializar o SP na rotina de reset, antes de sub-rotinas e interrupções ocorrerem, ou seja, a primeira ação a ser feita quando ligado. Os dados na Static Random-Access memory (SRAM) podem ser facilmente acessados através de cinco diferentes modos de endereçamento suportados pela arquitetura AVR. Os espaços de memória na arquitetura AVR são todos lineares e regulares. 13 UNIDADE Arquitetura e Recursos Básicos do Microcontrolador 32 registers 64 I/O registers 160 Ext I/O registers Internal SRAM (2048x8) 0x08FF Load/Store 0x0000 - 0x001F IN/OUT 0x0000 - 0x001F 0x0100 0x0060 - 0x00FF 0x0020 - 0x005F Figura 7 – Memória interna Tempo de Execução de Instruções O sinal de clock usado pelo núcleo AVR é gerado diretamente pela fonte de relógio selecionada para chip e nenhuma divisão de relógio é feita internamente. O paralelismo gerado pelo sistema de pipeline, no qual a busca e execução de ins- truções ocorrem simultaneamente é permitido pela arquitetura Harvard e provê o conceito de rápido acesso ao arquivo de registros. Tratamento do Reset e Interrupções O sistema AVR fornece várias fontes de interrupções diferentes. Assim como o vetor de reset, essas interrupções possuem vetores de programa individuais, que apontam, cada um, para a sua respectiva rotina no espaço de programa. Logo, as- sim que uma interrupção ocorrer, o programa saltará para o endereço indicado no vetor dessa interrupção, onde fica a devida rotina de tratamento, e retornará para aonde estava antes do desvio. Todas as interrupções são ativadas através de bits in- dividuais, nos devidos registradores, além do bit habilitador global de interrupções, visto no registrador de status. 14 15 Botão Reset atmega328 C2 22pF Cristal 16MHz RESET D0 (RX) D1 (TX) D2 D3 (PWM) D4 VCC GND XLAT1 XLAT2 D5 (PWM) D6 (PWM) D7 D8 A5 A4 A3 A2 A1 A0 GND AREF AVCC D13 D12 D11 (PWM) D10 (PWM) D9 (PWM) 11 1 1 1 1 2 2 2 2 2 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 C1 22pF 5V R1 10kΩ 5V Figu ra 8 – Esquema de reset do Arduino 15 UNIDADE Arquitetura e Recursos Básicos do Microcontrolador Material Complementar Indicações para saber mais sobre os assuntos abordados nesta Unidade: Livros Some assembly required: assembly language programming with the AVR microcontrollers MARGUSH, T. S. Some assembly required: assembly language programming with the AVR microcontrollers. New York: CRC, 2011. The avr microcontroller and embedded system: usingassembly and c MAZIDI, M. A.; NAIMI S.; NAIMI S. The avr microcontroller and embedded system: usingassembly and c. New Jersey: Prentice Hall, 2011. AVR e Arduino – técnicas de projeto LIMA, C. B. D.; VILLAÇA, M. V. M. AVR e Arduino – técnicas de projeto. Florianopolis, SC: [s.n.], 2012. Microcontroladores e microprocessadores PERIM, G. de C. F.; NASCIMENTO, J. N. R. do. Microcontroladores e micropro- cessadores. Londrina, PR: Editora e Distribuidora Educacional, 2017. Leitura 8-bit AVR Microcontrollers. ATmega328/P ATMEL AVR. 8-bit AVR Microcontrollers. ATmega328/P. Datasheet complete. 2016. https://bit.ly/37zdMRH 16 17 Referências LIMA, C. B. D.; VILLAÇA, M. V. M. AVR e Arduino – técnicas de projeto. Florianopolis, SC: [s.n.], 2012. SOUZA, D. J. Desbravando o PIC. 9. ed. São Paulo: Erica, 2005. ZANCO, W. S. Microcontroladores PIC 18 com linguagem C – uma abordagem prática e objetiva. São Paulo: Erica, 2010. ____________. Microcontroladores PIC – técnicas de software e hardware para projetos de circuitos eletrônicos. São Paulo: Erica, 2006. 17
Compartilhar