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