Baixar este arquivo PDF - Revista Ilha Digital
Transcrição
Baixar este arquivo PDF - Revista Ilha Digital
Revista Ilha Digital, ISSN 2177-2649, volume 1, páginas 93 – 99, 2009. Artigo disponibilizado on-line Revista Ilha Digital Endereço eletrônico: http://ilhadigital.florianopolis.ifsc.edu.br/ KIT DIDÁTICO PARA TRABALHO COM OS MICROCONTROLADORES AVR – KIT ATMEGA++ Charles Borges de Lima 1, Leandro Schwarz 2 Resumo: Os avanços tecnológicos demandam cada vez mais dispositivos eletrônicos. Assim, a cada dia são criados componentes mais versáteis e poderosos. Nesta categoria, os microcontroladores têm alcançado grande desenvolvimento. Sua facilidade de uso em ampla faixa de aplicações permite o projeto relativamente rápido e fácil de novos equipamentos. O estudo dos microcontroladores é um dos pilares da formação técnica na área de eletrônica digital. O uso de plataformas de desenvolvimento é crítico no ensino-aprendizado. Assim, foi desenvolvido um kit didático empregando o microcontrolador AVR ATmega32. O kit desenvolvido agrega os periféricos básicos necessários para o projeto com microcontroladores, tais como: teclado, displays e interface serial, dentre outros. Ele permite, portanto, a exploração de várias técnicas de hardware e software. Palavras-chave: Microcontroladores. Kit didático. AVR. ATmega. Abstract: The last technological advances demand more electronics. Thus, constantly are developed powerful and new devices. In this category, the microcontrollers have being growing exponentially. Their flexibility in a wide range of projects allows fast and easy design development. The microcontroller study in digital electronics is one of the main bases of technical formation. So, the development boards are very important to the teaching and learning processes. In this way, a didactic board was designed using the microcontroller AVR ATmega32. The didactic board has several basic peripherals used for microcontroller projects, such as keypad, displays and serial interface, among others. Therefore, it allows the exploration of many hardware and software techniques. Keywords: Microcontroller. Development board. AVR. ATmega. 1 2 1. Professor do DAELN do IF-SC <[email protected]>. Professor do DAELN do IF-SC, do Departamento de Design da UDESC e doutorando do CPGEI da UTFPR <[email protected]>. INTRODUÇÃO No estudo de microcontroladores é importante o uso de hardware para o teste dos programas desenvolvidos. Atualmente, muitos programas podem ser testados via software de simulação, empregando, por exemplo, o programa PROTEUS – ISIS (Labcenter Electronics 1 ). Todavia, o desenvolvimento prático é fundamental e não pode ser dispensado do processo de aprendizagem. Experimentos práticos trazem consigo realidades físicas não simuláveis e, portanto, permitem o desenvolvimento e depuração do programa para atuação no mundo real. 1 Além da compreensão da arquitetura do microcontrolador, a programação é outro ponto fundamental no trabalho com microcontroladores. Assim, o emprego de uma placa de circuito impresso contendo a maioria dos periféricos básicos necessários para o estudo e desenvolvimento de habilidades de projeto, torna-se importantíssimo para uma maior velocidade de aprendizado e diminuição do tempo de implementação de hardware. Com esse objetivo, foi desenvolvido um kit didático contendo a maioria dos circuitos básicos essenciais, comumente ensinados nas disciplinas de Microcontroladores, reunidos em uma única placa. O microcontrolador empregado foi um AVR Disponível em http://www.labcenter.co.uk/. AOC0008 93 Revista Ilha Digital, ISSN 2177-2649, volume 1, páginas 93 – 99, 2009. ATmega32 (Atmel Corporation 2 ); a escolha se deu devido a sua ampla aceitação no mercado e por possuir uma das mais modernas arquiteturas de 8 bits da atualidade. Outra importante característica dos AVRs é a grande similaridade entre os microcontroladores de uma mesma família e seu bom desempenho frente ao número de instruções executadas por ciclo de clock. 1.1. O Atmega32 O ATmega32 possui 32 KB de memória de programa, 2 KB de memória SRAM e 1 KB de memória EEPROM. Com uma arquitetura Harvard estendida disponibiliza mais de uma centena de instruções. Possui conversor A/D de 10 bits disponíveis em 8 canais multiplexados, comparador analógico, 2 temporizadores/contadores (T/Cs) de 8 bits e 1 de 16 bits, incluindo 4 canais PWM. Um de seus temporizadores de 8 bits pode ser empregado para a contagem precisa de tempo com o emprego de um cristal externo de 32.768 Hz, o chamado RTC (Real Time Counter) (ATMEL, 2009). Outra característica importante é a existência de um multiplicador por hardware, o que diminui o número de linhas de código de programas que exigem multiplicações (TOCCI; WIDMER; MOSS, 2008). O núcleo do ATmega executa a maioria das instruções em 1 ou 2 ciclos de clock, podendo chegar a 1 MIP (milhão de instruções por segundo) a 1 MHz. Possui 19 fontes de interrupção, incluindo duas externas. Suas interfaces seriais incluem SPI (Serial Peripheral Interface), USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter) e a TWI (Two-Wire serial Interface – I2C) (ATMEL, 2009). Também, possui oscilador interno, pull-ups configuráveis em todos os pinos, além de configurações especiais para o reset do microcontrolador, incluindo o watchdog timer, brown-out e power-on reset. Todas essas características permitem a redução do número de componentes externos necessários para o funcionamento do microcontrolador. Existem vários modos de operação que podem ser programados para a redução do consumo de energia, modos esses, fundamentais para a alimentação com baterias. A gravação in system (gravação com o chip no circuito de trabalho) emprega a SPI e é facilmente implementada (existem vários gravadores de fácil aquisição disponíveis no mercado). Outra funcionalidade do ATmega é a disponibilidade de uma área da memória de programa específica para a escrita de um programa para autoprogramação (boot loader), se desejado. 1.2. A programação O fabricante do AVR disponibiliza um programa gratuito para a programação dos microcontroladores, chamado AVR Studio, no qual os programas podem ser desenvolvidos em linguagem Assembly ou em linguagem C, empregando-se o WinAVR (compilador C gratuito). Para a gravação do componente, emprega-se um gravador comercial (por exemplo, o AVR Dragon, também da ATMEL). A gravação pode ser feita diretamente pelo AVR Studio com o hardware adequado de gravação conectado ao computador. 2. FUNCIONAMENTO DO KIT As principais funcionalidades do kit incluem: 8 LEDs de sinalização; 4 displays de 7 segmentos; 1 display de cristal líquido (LCD 16x2); 1 teclado matricial com 16 teclas; 1 sensor de temperatura; 1 saída para acionamento PWM; 1 pequeno sonofletor; 1 um relé para acionamento AC; 1 CI para contagem de tempo (RTC); 1 interface para comunicação RS-232. Todos os pinos do microcontrolador estão disponíveis para uso, e todas as funcionalidades podem ser desconectadas com o uso de jumpers (conectores). Da mesma forma, empregando fios é possível alterar todas as ligações entre os diferentes componentes do circuito. 2.1. Alimentação A alimentação da placa é realizada através de um conector do tipo Jack J4 2,5 mm (Metaltex 3 ) e uma fonte de alimentação com tensão de saída contínua de no mínimo 9 V e no máximo 15 V pode ser empregada. A Figura 1 apresenta o circuito de alimentação para o kit. Um diodo retificador de uso geral 1N4007 (Fairchild Semiconductor 4 ) protege contra possíveis inversões de polaridade da tensão na entrada de alimentação (BOYLESTAD; NASHELSKY, 2005). Um regulador de tensão A7805 (Texas Instruments 5 ) regula a tensão para alimentar os circuitos integrados (5 V). Emprega-se um LED vermelho 5 mm TLDR5400 (Vishay Intertechnology 6 ) para indicação visual do funcionamento da fonte. Os capacitores eletrolíticos de alumínio empregados são da série B41821 3 Disponível em http://www.metaltex.com.br/. Disponível em http://www.fairchildsemi.com/. 5 Disponível em http://www.ti.com/. 6 Disponível em http://www.vishay.com/. 4 2 Disponível em http://www.atmel.com/. AOC0008 94 Revista Ilha Digital, ISSN 2177-2649, volume 1, páginas 93 – 99, 2009. (Epcos AG 7 ). O resistor pertence à série RC0603, uma série de resistores de filme fino SMD em encapsulamento 0603 (Phycomp Philips – adquirida pela International Yageo Corporation 8 ). PORTA do microcontrolador. O acionamento é realizado utilizando lógica invertida, ou seja, o LED acende quando um nível lógico zero for colocado no pino do microcontrolador (drenagem de corrente). O bloco de LEDs foi desenvolvido de forma modular, possibilitando sua utilização em partes ou no todo. Os jumpers LD0 a LD7 conectam os LEDs a cada pino do PORTA no microcontrolador, enquanto que o jumper VCC LEDs faz a conexão da alimentação de todos os LEDs. Na Figura 3 é apresentado o diagrama esquemático dos 8 LEDs., pode-se perceber os jumpers de habilitação. FIGURA 1 – Diagrama esquemático da fonte de alimentação. 2.2. O microcontrolador Na Figura 2, são apresentadas as conexões básicas do ATmega32. Utilizou-se uma chave táctil (push-button) série A06 (Metaltex) com altura de atuador de 4,3 mm para o reset. Emprega-se um cristal externo de 8 MHz da série HC49SLF (Fox Electronics 9 ) e dois capacitores 04025A220JAT2A em encapsulamento SMD 0402 (AVX 10 Corporation ), e disponibiliza-se o emprego de um cristal de 32,768 kHz para a contagem de 1s com precisão. Um pequeno filtro passa-baixas, utilizando um indutor axial da série CEC (CEC Coils 11 ) e um capacitor 0402YD104KAT2A em encapsulamento SMD 0402 (AVX Corporation) é empregado na alimentação do circuito interno do conversor A/D. FIGURA 2 – Diagrama esquemático das ligações básicas do ATmega32. 2.3. LEDs de sinalização Para a sinalização, foram disponibilizados aos usuários 8 LEDs amarelos 3 mm TLHE4600 (Vishay Intertechnology), todos conectados ao 7 Disponível em http://www.epcos.com/. Disponível em http://www.yageo.com/. Disponível em http://www.foxonline.com/. 10 Disponível em http://www.avx.com/. 11 Disponível em http://www.ceccoils.com/. 8 9 AOC0008 FIGURA 3 – Diagrama esquemático dos 8 LEDs de sinalização. 2.4. Displays de sete segmentos Os displays de 7 segmentos são dispositivos sinalizadores muito empregados em conjunto com microcontroladores. Como os pinos do ATmega podem suprir ou drenar corrente suficiente para ligar LEDs, displays de sete segmentos podem ser ligados diretamente pelo microcontrolador, sem a necessidade de drivers de corrente. Foram empregados quatro displays de sete segmentos anodo comum vermelho LDS-A516RI (Lumex Inc. 12 ). O funcionamento se dará com o principio da persistência da visão. O programa deve ser responsável pela varredura dos displays, na qual um display é acionado por vez, em seqüência, com frequência mínima para aparecer constantemente ligado. Foram empregados quatro transistores PNP de uso geral BC559 (Fairchild Semiconductor) para o chaveamento individual dos displays, conforme indicado na Figura 4. O acionamento dos displays é feito através dos pinos PC2 até PC5; a habilitação destes pinos é feito pelos jumpers DY0 a DY3. Os dados do display estão conectados no PORTA; a habilitação dos segmentos do display é feita pelos jumpers A, B, C, D, E, F, G e P. A alimentação dos quatro displays pode ser cortada retirando o jumper VCC DISPLAY. O controle da luminosidade dos segmentos é feito através de resistores de 560 da série RC0603 (seção 2.1.) e o resistor de base dos 12 Disponível em http://www.lumex.com/. 95 Revista Ilha Digital, ISSN 2177-2649, volume 1, páginas 93 – 99, 2009. transistores é de 10 k, pertencente à série SMD RC0402 de mesmo fabricante. É importante salientar que os displays e o bloco de LEDs utilizam o mesmo PORTA do microcontrolador e, portanto, não podem ser utilizados ao mesmo tempo. acréscimo na complexidade do programa de controle. É empregado um potenciômetro para ajuste do contraste do LCD. O display também possui iluminação de fundo (backlight). Os pinos do barramento de dados do LCD são PA0 a PA3, habitáveis através dos jumpers D4 a D7. O pino de controle RS é acessado via pino PD3 do microcontrolador e habilitável pelo jumper RS; e o pino de controle E é acessado via pino PD2 do microcontrolador e habilitável pelo jumper E. 2.6. FIGURA 4 – Diagrama esquemático dos displays de sete segmentos. 2.5. Display de cristal líquido 16x2 Outro componente muito difundido em sistemas microcontrolados é o display de cristal líquido alfanumérico de 16 caracteres por duas linhas (LCD 16x2, controlador HD44780) modelo ITM1602B (Intech LCD Group 13 ). Por isso, o kit disponibiliza uma interface de dados de 4 bits (ver Figura 5). Teclado matricial 4x4 Frequentemente, utiliza-se como entrada de dados e interface com o usuário, um teclado de chaves tácteis. Visando a aplicações mais complexas que a simples leitura de um botão, foi construído um teclado com 16 teclas, no formato de matriz. Para isso, é necessário um programa que faça uma varredura, habilitando uma coluna por vez e testando se alguma tecla foi pressionada (linha) ou vice-versa. Na Figura 6 é apresentado o diagrama esquemático do teclado do kit. Como existem resistores de pull-up habilitáveis individualmente no microcontrolador, não existe a necessidade de esses resistores estarem externamente conectados ao teclado. O teclado encontra-se conectado através dos jumpers ao PORTB, sendo que as colunas estão conectadas aos pinos PB0 a PB3 e habilitáveis pelos jumpers COL1 a COL4, e as linhas estão conectadas aos pinos PB4 a PB7 e habilitáveis pelos jumpers LIN1 a LIN4. FIGURA 6 – Diagrama esquemático do teclado matricial. FIGURA 5 – Diagrama esquemático do LCD 16x2. A interface de 4 bits é priorizada frente à de 8 bits pela menor complexidade exigida nas ligações elétricas em detrimento de um pequeno 13 Disponível em http://www.intech-lcd.com/. AOC0008 2.7. Sensor de temperatura É utilizado como sensor de temperatura, o LM35 (National Semiconductor 14 ), um sensor analógico linear de precisão, que produz 10 mV/°C (0 V a 0 °C). O LM35 (encapsulamento TO-92) é ligado diretamente a uma das entradas do A/D do 14 Disponível em http://www.national.com/. 96 Revista Ilha Digital, ISSN 2177-2649, volume 1, páginas 93 – 99, 2009. ATMega32, o pino PA7 (existe um jumper de seleção). Na Figura 7, é possível ver o diagrama elétrico para o referido sensor. Não aparecendo no diagrama, existe um capacitor de 100 nF colocado fisicamente próximo à alimentação do sensor para a filtragem de possíveis ruídos de alta frequência. FIGURA 7 – Diagrama esquemático para o sensor de temperatura LM35. 2.8. Saída PWM Uma das saídas PWM do ATmega (16 bits – PD5) é ligada diretamente a uma chave transistorizada, incluindo um diodo 1N4148 (Fairchild Semiconductors) para o acionamento de cargas indutivas (diodo de roda livre). É disponibilizado um LED de alto brilho para fins de sinalização (ver Figura 8). O sistema é totalmente configurável através dos jumpers, permitindo que cargas externas possam ser conectadas ao transistor. O jumper PWM1 habilita o controle do PWM pelo pino PD5, enquanto que o jumper PWM2 desacopla o LED, permitindo que se conecte uma carga externa ao conector do PWM. alterar o pino do microcontrolador utilizado para o controle. Por padrão, foi disponibilizado o pino PD7 através do jumper SOM1 (saída de um T/C de 8 bits), enquanto que o jumper SOM2 desacopla o sonofletor, permitindo que se conecte uma carga externa ao conector. FIGURA 9 – Diagrama esquemático para o pequeno alto-falante. 2.10. Relé para acionamento de cargas externas O kit possui um relé AT1RC2 (Metaltex) para acionamento de cargas em tensões 220 V e corrente de até 10 A. O circuito possui um LED sinalizador e disponibiliza os contatos do relé através de um conector J21, como pode ser visto na Figura 10. Pode-se notar o diodo de proteção para o transistor. O acionamento do relé ocorre via jumper RELE, conectado ao pino PD6. FIGURA 10 – Diagrama esquemático para o relé. FIGURA 8 – Diagrama esquemático para um sinal PWM. 2.9. Sonofletor piezoelétrico O ATmega permite utilizar alguns de seus contadores/temporizadores para gerar sinais com frequência variável. Assim, foi colocado um pequeno sonofletor piezoelétrico. Na Figura 9, é apresentado o diagrama esquemático do sistema de acionamento do sonofletor. Da mesma forma que o sistema PWM, é possível, através dos jumpers, conectar uma carga externa ao transistor e mesmo AOC0008 2.11. Relógio de tempo real Para a contagem de tempo e o trabalho com o protocolo I2C foi empregado um circuito integrado dedicado para a contagem do tempo (Real Time Clock): o DS1307 (Maxim Integrated Products 15 ). Este CI conta com precisão a hora, o dia, o mês e o ano com o emprego de um cristal externo de 32,768 kHz. Possui uma entrada para a conexão de uma bateria externa tipo botão de 3 V (CR2032) para garantir o seu funcionamento na ausência de 15 Disponível em http://www.maxim-ic.com/. 97 Revista Ilha Digital, ISSN 2177-2649, volume 1, páginas 93 – 99, 2009. energia. Também disponibiliza uma saída em dreno aberto para a conexão de cargas ou resistores para a transmissão de sinais em frequência (32,768 kHz, 8,192 kHz, 4,096 kHz ou 1 Hz). Na Figura 11 é apresentado o diagrama esquemático empregado. Os pinos de controle são os pinos do módulo TWI do ATmega. A comunicação I2C com o dispositivo é realizada via pinos PC0 e PC1 do microcontrolador, conectados aos jumpers I2C (SCL e SDA). FIGURA 12 – Diagrama da interface serial RS232. 2.13. Conector para gravação Para a gravação ISP (In System Programming) é utilizado o padrão de pinos recomendado pela Atmel, como apresentado na Figura 13, a qual mostra uma barra dupla de pinos, com os pinos necessários à gravação. FIGURA 11 – Diagrama esquemático para o RTC – DS1307. 2.12. Interface serial Para a comunicação entre o ATmega e o mundo externo, foi disponibilizado uma interface IEC RS-232 que trabalha com o módulo USART do microcontrolador. Um conector DB9 fêmea (Metaltex) é utilizado e qualquer cabo serial universal pode ser empregado. Para a comunicação com um computador moderno, por exemplo, é só fazer uso de algum cabo adaptador serial/USB dos vários disponíveis no mercado. A comunicação é feita pelos pinos PD0 e PD1, conectados aos jumpers TX e RX, respectivamente (Figura 12). FIGURA 13 – Diagrama para a gravação ISP. 2.14. Circuito completo do kit ATmega++ O kit montado está ilustrado na Figura 14, e o diagrama esquemático, na Figura 15. Foi empregada uma placa dupla face, com componentes SMD (Surface Mount Devices) e PTH (Plated ThroughHole). FIGURA 14 – Fotografia do kit ATmega++ montado. AOC0008 98 Revista Ilha Digital, ISSN 2177-2649, volume 1, páginas 93 – 99, 2009. FIGURA 15 – Diagrama esquemático completo do kit ATmega++. 3. EXEMPLO DE APLICAÇÃO Para exemplificar o uso do kit ATmega++, na Figura 16 é apresentada a hora, dia, mês e ano (proveniente do DS1307) no LCD 16x2. A temperatura resulta da conversão do A/D do ATmega para o sinal do LM35. 8 bits. Tal kit foi desenvolvido essencialmente para o trabalho das técnicas básicas empregadas no projeto de sistemas microcontrolados. O trabalho com o kit ATMEGA++ permite o domínio das técnicas de leitura de botões, trabalho com displays, acionamento de cargas e interfaces seriais, entre outras. O kit permite a conexão de qualquer de suas funcionalidades ao meio externo, para conexão com outros sistemas. Da mesma, forma, é possível alterar os pinos de controle do microcontrolador e empregar o kit para o desenvolvimento de aplicações dedicadas, o que o torna bastante flexível no seu uso. REFERÊNCIAS FIGURA 16 – Temperatura e horário. Para o funcionamento correto, o programa exigiu o uso da interface TWI (protocolo I2C) do ATmega e do seu conversor Analógico/Digital com o uso da tensão interna de referência de 2,56 V. 4. CONSIDERAÇÕES FINAIS O objetivo do kit ATMEGA++ é obter um maior número de funcionalidades por unidade de área da placa de circuito impresso, assim, permitindo, com o uso de uma única placa, trabalhar conceitos e programas fundamentais para o estudo de microcontroladores, em especial os AVRs de AOC0008 ATMEL ATmega32A 8-bit Microcontroller with 32KB In-System Programmable Flash. Disponível em: <http://www.atmel.com/dyn/resources/prod_docum ents/doc8155.pdf>. Acesso em: 23 set. 2009. BOYLESTAD, R. L.; NASHELSKY, L. Dispositivos eletrônicos e teoria dos circuitos. Prentice Hall do Brasil, 8º ed, 2005. TOCCI, R. J.; WIDMER, N. S.; MOSS, G. L. Sistemas digitais – princípios e aplicações. Prentice Hall do Brasil, 10a ed., 2008. 99