KIT DE DESENVOLVIMENTO PARA O ENSINO DE … eng tec/6.pdf · Motorola MC68 (BOLANAKIS et al.,...

12
KIT DE DESENVOLVIMENTO PARA O ENSINO DE MICROCONTROLADORES MCS51 COM COMUNICAÇÃO USB Gustavo Benvenutti Borba [email protected] Miguel Antonio Sovierzoski [email protected] Mikhail Anatholy Koslowski [email protected] Universidade Tecnológica Federal do Paraná Campus Curitiba UTFPR Departamento Acadêmico de Eletrônica DAELN Av. Sete de Setembro 3165, 80230-901 Curitiba Paraná Leandro Schwarz [email protected] Instituto Federal de Santa Catarina Campus Florianópolis IFSC Av. Mauro Ramos 950, 88020-300 Florianópolis Santa Catarina Resumo: Este trabalho apresenta um kit de desenvolvimento de baixo custo para o ensino de microcontroladores. O kit utiliza um microcontrolador de 8 bits da família MCS51, modelo AT89C5131A-M, que apresenta como principal destaque em relação aos outros modelos disponíveis um controlador USB embutido, além de controladores SPI, I2C e PWM. Não são necessários recursos adicionais para a programação da memória de programa flash do microcontrolador do kit, já que o AT89C5131A-M possui um bootloader para esta função. Pode-se também realizar a depuração passo a passo do programa utilizando-se um programa monitor disponível gratuitamente, pela porta serial ou pela USB, neste último caso com um cabo conversor USB/serial. Como o kit inclui também conversores A/D e D/A, RTC, teclado matricial, módulo de display LCD, displays de 7 segmentos e um oscilador astável, uma grande variedade de experimentos de laboratório pode ser realizada. A placa de circuito impresso possui dimensões de 111x113 mm e são utilizados exclusivamente componentes para a técnica de montagem through-hole, o que significa que o kit pode ser adquirido e montado pelo próprio aluno. O kit pode ser utilizado na disciplina de microcontroladores ou equivalente, dos cursos de Graduação em Engenharia Elétrica e de Computação, e também em cursos relacionados de Graduação em Tecnologia e de nível Técnico. Palavras-chave: Kit de desenvolvimento para estudantes, microcontrolador, MCS51, AT89C5131A-M

Transcript of KIT DE DESENVOLVIMENTO PARA O ENSINO DE … eng tec/6.pdf · Motorola MC68 (BOLANAKIS et al.,...

KIT DE DESENVOLVIMENTO PARA O ENSINO DE

MICROCONTROLADORES MCS51 COM COMUNICAÇÃO USB

Gustavo Benvenutti Borba – [email protected]

Miguel Antonio Sovierzoski – [email protected]

Mikhail Anatholy Koslowski – [email protected]

Universidade Tecnológica Federal do Paraná – Campus Curitiba – UTFPR

Departamento Acadêmico de Eletrônica – DAELN

Av. Sete de Setembro 3165, 80230-901

Curitiba – Paraná

Leandro Schwarz – [email protected]

Instituto Federal de Santa Catarina – Campus Florianópolis – IFSC

Av. Mauro Ramos 950, 88020-300

Florianópolis – Santa Catarina

Resumo: Este trabalho apresenta um kit de desenvolvimento de baixo custo para o

ensino de microcontroladores. O kit utiliza um microcontrolador de 8 bits da família

MCS51, modelo AT89C5131A-M, que apresenta como principal destaque em relação

aos outros modelos disponíveis um controlador USB embutido, além de controladores

SPI, I2C e PWM. Não são necessários recursos adicionais para a programação da

memória de programa flash do microcontrolador do kit, já que o AT89C5131A-M

possui um bootloader para esta função. Pode-se também realizar a depuração passo a

passo do programa utilizando-se um programa monitor disponível gratuitamente, pela

porta serial ou pela USB, neste último caso com um cabo conversor USB/serial. Como

o kit inclui também conversores A/D e D/A, RTC, teclado matricial, módulo de display

LCD, displays de 7 segmentos e um oscilador astável, uma grande variedade de

experimentos de laboratório pode ser realizada. A placa de circuito impresso possui

dimensões de 111x113 mm e são utilizados exclusivamente componentes para a técnica

de montagem through-hole, o que significa que o kit pode ser adquirido e montado pelo

próprio aluno. O kit pode ser utilizado na disciplina de microcontroladores ou

equivalente, dos cursos de Graduação em Engenharia Elétrica e de Computação, e

também em cursos relacionados de Graduação em Tecnologia e de nível Técnico.

Palavras-chave: Kit de desenvolvimento para estudantes, microcontrolador, MCS51,

AT89C5131A-M

1 INTRODUÇÃO

Os microcontroladores são utilizados em inúmeros equipamentos para praticamente

todos os tipos de aplicações como, por exemplo, em automação e controle,

telecomunicações, entretenimento, medicina e transportes. É importante que os

graduandos em Engenharia Eletrônica e de Computação possuam conhecimentos

sólidos nos tópicos fundamentais para projetos com microcontroladores, já que

proporcionam também a preparação para a análise e síntese de sistemas embarcados

mais sofisticados, envolvendo programação estruturada com linguagens de alto nível,

sistemas operacionais de tempo real e microcontroladores cada vez mais complexos.

Os cursos de Engenharia Eletrônica e de Computação comumente apresentam os

microcontroladores em um disciplina específica ou integrados à disciplina de arquitetura

e organização de computadores (REESE & JONES 2010; BOLANAKIS et al., 2009).

Em geral, a disciplina desenvolve-se a partir de um modelo de microcontrolador

específico pertencente a uma das famílias mais comuns disponíveis no mercado, como a

Intel MSC51 (HSU & CHAO, 2009; ZHANG, 2009; SELVAKUMAR et al., 2011),

Motorola MC68 (BOLANAKIS et al., 2009), Atmel AVR (HOVEMEYER & LINK,

2011; MA et al., 2010; ARDUINO, 2012), Microchip PIC (REESE & JONES 2010;

KEANE & VENHOVENS, 2012), Texas MSP430 (TEXAS INSTRUMENTS, 2012;

REESE & JONES 2010) ou ARM (STMICROELECTRONICS, 2012). Existem, ainda,

propostas de arquiteturas dedicadas ao uso didático (GAL et al., 2011; TRONCOSO et

al, 2006). Os tópicos considerados fundamentais em um curso convencional de

microcontroladores são a arquitetura do modelo de microcontrolador adotado, a

programação em linguagem assembly e a comunicação com dispositivos de entrada e

saída (I/O).

Para o ensino da arquitetura, são abordados os apectos gerais do microcontrolador,

como barramentos internos, mapas de memória e arquitetura do conjunto de instruções,

além da visão geral dos periféricos embutidos, como oscilador, timer, ports de I/O para

uso geral e módulos para comunicação serial. Para a programação em linguagem

assembly, é necessário abordar cada instrução do conjunto, geralmente agrupando-as em

subconjuntos de transferência de dados, comparação, salto, matemáticas e lógicas. Para

a comunicação com os dispositivos de I/O, tópico também chamado de interfaceamento,

são abordadas as especificações elétricas dos ports, os protocolos de comunicação

correspondentes aos controladores disponíves e a operação dos demais periféricos

embutidos.

A metodologia mais comum é a que emprega aulas teóricas e práticas, durante as

quais utilizam-se como principais ferramentas um programa do tipo Ambiente de

Desenvolvimento Integrado (IDE) e um hardware com o microcontrolador adotado,

denominado kit de desenvolvimento ou kit didático. O IDE pode ser obtido

gratuitamente em versões de avaliação sem restrição de tempo de uso, com limite para a

geração de programas de 4 kbytes (KEIL, 2012; RAISONANCE, 2012; IAR

SYSTEMS, 2012), o que é suficiente para o contexto de uma disciplina. Já o kit

didático precisa ser adquirido de terceiros ou desenvolvido pela instituição de ensino.

Ainda, os kits podem ser disponibilizados pela instituição para o aluno apenas para uso

durante as aulas ou adquirido pelo próprio aluno.

O cenário mais adequado é aquele no qual o aluno é o proprietário do kit, podendo

assim desenvolver as atividades também em casa, sem estar restrito aos horários da aula

e aos recursos disponíveis na instituição de ensino. Para isso, é importante que, além de

atender aos requisitos pedagógicos, o kit apresente um custo acessível. Neste trabalho, é

apresentado um kit de desenvolvimento baseado no microcontrolador de 8 bits

AT89C5131A-M (ATMEL, 2012a), da família MCS51. Dentre as principais

características do kit estão o custo acessível, facilidade de uso, presença de diferentes

tipos de dispositivos de entrada e saída com diferentes tipos de comunicação e uma

porta universal serial bus (USB) implementada a partir do controlador USB embutido, o

que diferencia ainda mais este kit dos similares. Além do projeto e das especificações

detalhadas do kit, são sugeridos também experimentos para a sua utilização em aulas

práticas. É importante destacar que o kit não está limitado ao uso na disciplina, pois

pode ser uma plataforma de desenvolvimento de trabalhos e outras disciplinas.

2 TÓPICOS FUNDAMENTAIS EM MICROCONTROLADORES

Neste trabalho, considera-se que a arquitetura do microcontrolador, programação

em linguagem assembly e interfaceamento são tópicos indispensáveis em um curso de

microcontroladores. Nas seções a seguir, descrevem-se os principais detalhes destes três

tópicos, considerando o microcontrolador AT89C5131A-M.

2.1 Arquitetura

A utilização de uma disciplina exclusiva para a abordagem da organização e

arquitetura de computadores ainda é uma prática amplamente utilizada nos currículos de

Engenharia Eletrônica e de Computação. Assim, na disciplina de microcontroladores o

objetivo é conhecer os aspectos gerais da arquitetura do modelo de microcontrolador

adotado. Em geral, inicia-se pela apresentação do diagrama em blocos do

microcontrolador, conforme ilustrado na Figura 1. A partir do diagrama em blocos,

desenvolve-se então a visão geral do microcontrolador, o que envolve a descrição dos

barramentos internos, mapas de memória, arquitetura do conjunto de instruções e cada

um dos periféricos embutidos.

Figura 1 – Diagrama em blocos do microcontrolador AT89C5131A-M. Fonte:

(ATMEL, 2012a, p. 3).

Observa-se, na Figura 1, que o AT89C5131A-M integra módulos não disponíveis

nos modelos tradicionais da família MCS51, especialmente se comparado ao popular

modelo AT89S51 (ATMEL, 2012b). Do lado esquerdo do diagrama da Figura 1

observa-se o núcleo (core) de um MCS51 tradicional e os módulos comuns a todos os

modelos da família. Os outros módulos agregam funcionalidades importantes ao

AT89C5131A-M, até mesmo atípicas para um microcontrolador da família MSC51,

como:

- 1 kbyte de memória RAM para dados;

- 32 kbytes de memória flash para programa;

- 4 kbytes de memória EEPROM;

- Programmable counter array (PCA) para pulse width modulation (PWM);

- Interface para teclado matricial;

- Quatro pinos para o acionamento direto de LEDs;

-.Controlador Serial Peripheral Interface (SPI);

- Controlador Two Wire Interface (TWI), equivalente ao I2C;

- Controlador USB 2.0 full speed.

2.2 Linguagem assembly

A necessidade do ensino aprofundado de programação em linguagem assembly vem

tornando-se um tema de discussão entre educadores da área. Margush (2006), por

exemplo, relaciona alguns dos motivos pelos quais certos departamentos acadêmicos

têm optado por minimizar a importância da programação em linguagem assembly: para

fornecer espaço para o ensino de tecnologias emergentes ou às vezes “mais

interessantes”; porque o kit de desenvolvimento que vinha sendo utilizado foi

discontinuado; porque muitos estudantes percebem a linguagem assembly como uma

ferramenta antiquada e, finalmente, porque aprender a escrever em linguagem assembly

aquilo que pode ser escrito mais facilmente com uma linguagem de alto nível, é

encarado pelos alunos como um “exercício puramente acadêmico”.

No entanto, o domínio da programação em linguagem assembly mostra-se

importantíssimo para os graduandos em Engenharia Elétrica e de Computação, já que

auxilia na compreensão mais adequada da arquitetura do conjunto de instruções, que é a

interface entre o hardware e o software, e permite a realização de tarefas que linguagens

de alto nível não são capazes (IMAMURA, 2004). Além disso, a programação em

linguagem assembly é importante para a compreensão dos detalhes da arquitetura do

microcontrolador, o que é importante para que o mesmo não seja sempre tratado como

uma “caixa preta” (PENG, 2009).

O AT89C5131A-M possui arquitetura CISC e um conjunto de mais de 100

instruções, o que facilita a elaboração de programas complexos em linguagem assembly.

Assim como no ensino de outras arquiteturas, as instruções são agrupadas em

subconjuntos e então abordadas individualmente. Geralmente, os subconjuntos

compreendem a transferência de dados, comparação, salto, matemáticas e lógicas. A

Figura 2 apresenta um diagrama utilizando o método do teste de mesa para a exposição

das instruções assembly para manipulação da pilha de memória. Após a análise de cada

instrução, são desenvolvidos programas simples em assembly e gradativamente

inserem-se recursos como a utilização da pilha, chamada e retorno de subrotinas, rotinas

de serviço de interrupção e operação dos periféricos embutidos.

PUSH direct ;armazena na pilha

Incrementa SP e copia o conteúdo de direct no endereço de memória apontado por SP Exemplo:

06h

07h

08h

09h

0Ah

X X

X X

X X

X X

X X

0 7

SP

RAM

interna

DPH

DPL

F F

3 A

Supor: Após:

06h

07h

08h

09h

0Ah

X X

X X

X X

0 9

SP

RAM

interna

DPH

DPL

F F

3 A

Resulta:

PUSH DPL

PUSH DPH

F F

3 A

POP direct ;recupera da pilha

Copia o conteúdo do endereço de memória apontado por SP em direct e decrementa SP Exemplo:

06h

07h

08h

09h

0Ah

X X

X X

X X

0 9

SP

RAM

interna

DPH

DPL

Supor: Após:

06h

07h

08h

09h

0Ah

X X

X X

X X

0 7

SP

RAM

interna

DPH

DPL

Resulta:

POP DPH

POP DPL

F F

3 A

F F

3 A

X X

X X F F

3 A

Figura 2 – Teste de mesa para a exposição das instruções assembly push e pop para

manipulação da pilha de memória. Os efeitos das instruções podem ser claramente

observados pois são mostradas as condições antes (supor) e depois (resulta) da

execução.

2.3 Interfaceamento

A inclusão do tópico interfaceamento nas disciplinas de microcontroladores é

bastante aceita, já que se tratam de assuntos naturalmente interligados (ALDHAHER,

2001; REESE & JONES 2010). Neste tópico, são abordadas técnicas de acionamento e

comunicação com dispositivos de I/O. Dentre os dispositivos exclusivamente de saída,

destacam-se os LEDs, módulo de display LCD com controlador integrado, display de

sete segmentos e, eventualmente, motor de passo e servo-motor. Os dispositivos de

entrada tradicionais são as chaves, teclado matricial e sensores discretos.

Uma vez que os microcontroladores disponibilizam canais de comunicação serial

para a comunicação com circuitos integrados e com o computador, as camadas lógica

(protocolo) e física (níveis de tensão e temporização de sinais) destes canais são

abordadas, assim como os detalhes para a configuração e operação dos controladores

destes canais, embutidos no microcontrolador.

Conforme mencionado anteriormente, o AT89C5131A-M possui controladores

USART, SPI, I2C e USB. Também há 4 drivers de LEDs e facilidades para a

implementação de um teclado matricial.

3 KIT DE DESENVOLVIMENTO

A Figura 3 apresenta o diagrama em blocos do kit de desenvolvimento denominado

kit 8051 USB. O microcontrolador utilizado é o AT89C5131A-M. As seções a seguir

apresentam as especificações do kit, utilizando como referência o diagrama em blocos

da Figura 3, e também detalhes a respeito da sua operação.

Microcontrolador

RTC

ConectorRS-232

A/D D/A

Teclado4x3

Astável

LCD2x16

ConectorUSB

LED

+5V

Bateria

7-seg1

7-seg2

Jumpers econectores

USART

PWM

USBSPI

INT

Timer

SEL

SEL SEL

I C2

P0P2.1

P2.2 P2.3

P3.6

SEL RS

P3.7P2.0P2 Keyb

Conversorde nível

Figura 3 – Diagrama em blocos do kit 8051 USB.

3.1 Especificações

A alimentação de +5 V pode ser fornecida pelo barramento USB ou por uma fonte

externa. No kit há uma fonte com o regulado série LM7805. Para a interface de entrada

com o usuário há um teclado 4x3 – 4 linhas nos pinos P1.0 a P1.2 e três colunas nos

pinos P2.5 a P2.7 que são as entradas da interrupção de teclado – e também duas

chaves, com uma delas conectada à uma interrupção externa. Para a interface de saída

com o usuário estão disponíveis: dois displays de sete segmentos com drivers de

corrente ULN2803A, acionados em paralelo pelo port P0, podendo ser selecionados

individualmente por drivers de corrente por transistores PNP conectados aos pinos P2.0

e P2.1; módulo de display de cristal líquido (LCD) de 2 linhas de 16 caracteres cada,

com o barramento de dados conectado ao port P0 e os sinais de controle aos pinos P3.6

e P3.7; um LED com driver de corrente por transistor PNP, acionado pelo pino P1.4,

que pode fornecer sinal PWM.

No barramento SPI estão conectados um conversor analógico/digital (A/D)

MCP3202 de taxa de aquisição de 100 ksps e um conversor digital/analógico (D/A)

MCP4822 de tempo de conversão de 4,5 µs, ambos de 12 bits de resolução e dois

canais. A seleção de cada um dos conversores é feita pelos pinos P2.2 e P2.3. Os canais

do D/A estão disponíveis em conectores e também podem ser aplicados ao A/D por

jumpers. Os canais do A/D estão dispiníveis em conectores ou podem receber por

jumpers os seguintes sinais analógicos disponíveis no próprio kit: tensão da bateria,

sinal analógico do oscilador astável ou saídas do D/A. No barramento I2C está

conectado um real time clock (RTC) PCF8563, que também pode gerar uma

interrupção externa para o microcontrolador. A bateria de 3 V, modelo CR2032,

mantém o RTC funcionando quando a alimentação externa é retirada. O oscilador

astável é baseado no LM555 e sua saída digital está conectada a uma entrada de timer

do microcontrolador. O sinal analógico referente à carga e descarga do capacitor do

astável é enviada ao D/A.

Para a comunicação com o computador, estão disponíveis: um canal RS-232,

implementado pela USART do microcontrolador, um conversor de nível TTL/RS-232

modelo MAX232 e um conector para a RS-232, o DB-9; uma canal USB 2.0 full

speed implementado pelo controlador USB do microcontrolador e um conector USB

tipo B. Há ainda jumpers e outros conectores, como barras de pinos para o acesso a

todos os pinos do microcontrolador.

O kit foi construído em uma placa de circuito impresso de 111x131 mm, mostrada

na Figura 4, já com os componentes montados. Para facilitar a montagem do kit pelos

próprios alunos, optou-se por componentes que utilizam a técnica de montagem throug-

hole. Isto inclui o microcontrolador, já que o modelo adotado possui encapsulamento

PLCC de 52 pinos, podendo portanto ser montado na placa por meio de um soquete

throug-hole. O diagrama esquemático completo e a lista de componentes do kit estão

disponíveis em (BORBA et al., 2012).

Figura 4 – Kit 8051 USB finalizado. As dimensões da placa de circuito impresso são

111x113 mm.

3.2 Operação

O AT89S5131A-M possui um firmware bootloader (pré-gravado de fábrica), em

uma área de memória flash fisicamente independente. Este recurso permite que os

programas do usuário, no formato Intel hexa, sejam gravados na memória de programa

flash do microcontrolador com muita facilidade. Para isso, conecta-se o kit ao

computador através de um cabo USB do mesmo modelo utilizado em impressoras,

seleciona-se o modo in-system programming (ISP) conforme ilustrado na Figura 5(a) e

transfere-se o arquivo Intel hexa para o microcontrolador através do programa FLIP,

oferecido gratuitamente pela Atmel (ATMEL, 2012c). Para executar o programa do

usuário transferido para o kit, realiza-se o reset de hardware convencional do

microcontrolador, através de uma chave no kit.

Outro recurso importante do kit é a possibilidade da execução passo a passo dos

programas do usuário diretamente do microcontrolador. Este recurso é comumente

chamado de emulação e costuma ser o método preferido entre os desenvolvedores para

a depuração de programas em sistemas embarcados. No kit, este recurso é

implementado através do IDE Keil e de uma versão adaptada (BORBA et al., 2012) do

programa monitor FlashMON (KEIL, 2012), que deve ser gravado no microcontrolador.

Com o FlashMON gravado no microcontrolador, o programa do usuário deve ser

alocado em uma região da memória de programa que não sobrescreva o FlashMON. O

FlashMON é alocado nos endereços baixos de memória de programa, a partir do

endereço zero. A depuração é então realizada através do canal serial R2-232. Pode-se

também realizar a depuração através do canal USB do computador, utilizando-se um

cabo conversor serial/USB.

Quando o FlashMON e o programa do usuário estão gravados no microcontrolador,

o usuário tem a opção de executar um destes dois programas a partir do reset, conforme

ilustra a Figura 5(b).

Reset no modo In-system programming(executa o bootloader)

SW1_DBG RST ISP

Chaves no kit 8051 USB

Início

Início

Reset no modo Debugging(executa o FlashMON)

SW1_DBG

0000h

RST ISP

Chaves no kit 8051 USB

1. Manter pressionadaSW1_DBG

FlashMON

Reset no modo Programa do usuário(executa o programa do usuárioalocado após o FlashMON)

SW1_DBG RST ISP

Chaves no kit 8051 USB

2000h

7FFFh

Programa dousuário

2. Pressionar e soltar RST

F400h

FFFFh

Bootloader

Pressionar e soltar RST1. Manter pressionadaISP

2. Pressionar e soltar RST

0000h

FlashMON

2000h

7FFFh

Programa dousuário

Início

Salto

(a) (b)

Figura 5 – Em 5(a) o microcontrolador executa o bootloader, para a gravação do

programa do usuário na flash. Este modo é denominado in-system programming. Em

5(b), considera-se que o FlashMON e o programa do usuário estão gravados no

microcontrolador. Então, pode-se executar qualquer um dos dois. O modo no qual se

executa o FlashMON é denominado debugging.

4 EXPERIMENTOS DE LABORATÓRIO

Uma vez que o kit 8051 USB integra vários tipos de interface e comunicação serial

com diferentes dispositivos na própria placa, há a possibilidade da realização de muitos

experimentos de laboratório, sem a necessidade de hardware adicional ou de

equipamentos emuladores. A seguir, são sugeridos alguns experimentos que exploram

os recursos do kit individualmente e oferecem suporte para o ensino dos tópicos

fundamentais em microcontroladores. É importante que todos os experimentos sejam

realizados na forma de programas em linguagem assembly.

Hello word: Ler a chave em P2.4 a e copiar o seu estado no LED em P1.4.

Interrupção externa: Toggle do LED em P1.4 a cada interrupção externa gerada

pela chave em P3.2.

Displays de 7 segmentos: 1) Contagem em hexadecimal em um único display,

utilizando atraso por software. 2) Contagem em hexadecimal nos dois displays,

utilizando atraso por software. 3) Contagem em hexadecimal nos dois displays,

incrementada pela chave em P1.4, com tratamento do “repique” da chave (debouncing).

Módulo LCD: 1) Um conjunto de subrotinas para configurar o LCD na

inicialização, escrever comandos de configuração, escrever caracteres ASCII, escrever

uma string. 2) Contagem em decimal no LCD, incrementada pela chave em P1.4.

Timer: 1) Contagem em hexadecimal nos dois displays, utilizando o timer para

implementar o atraso. 2) Medir a largura dos pulsos altos do astável e mostrar o valor

em µs no LCD. 3) Medir a frequência da saída do astável e mostrar no LCD.

PCA: 1) Controle da luminosidade do LED em P1.4 por PWM em 4 passos,

selecionados incrementalmente pela chave em P2.4. 2) LED simulando a indicação do

estado de standby, como nos notebooks.

Teclado matricial: 1) Varredura do teclado e decodificação das teclas sem utilizar

a interrupção de teclado interna. 2) Varredura do teclado e decodificação das teclas

utilizando a interrupção de teclado interna. 3) Escrever a tecla pressionada em um

display de 7 segmentos. 4) Escrever a tecla pressionada em um display de 7 segmentos

e no LCD.

Serial: Trocar mensagens com outro kit utilizando o canal serial RS-232.

I2C: 1) Programar horas, minutos e segundos no RTC com valores hard-coded e

mostrar a contagem interna do RTC no LCD. 2) Programar horas, minutos e segundos

no RTC a partir do teclado matricial e mostrar a contagem interna do RTC no LCD. 3)

Programar todos os recursos do RTC através do teclado matricial.

SPI: 1) Amostrar a tensão da bateria pelo A/D e mostar o valor em hexadecimal no

LCD. 2) Amostar a saída analógica do astável pelo A/D e mostrar os valores em

hexadecimal no LCD. 3) Tensão da bateria em volts no LCD. 4) Gerar uma onda

triangular pelo D/A e visualizar no osciloscópio.

Outros recursos do microcontrolador: 1) Usar a RAM estendida de 1 kbyte como

buffer para os valores adquiridos do A/D. 2) Escrever valores das teclas pressionadas na

EEPROM. 3) Implementar e testar o watchdog: mostrar uma contagem e entrar em um

loop infinito ao apertar uma tecla para simular um bug. O watchdog deve devolver o

sistema ao seu estado inicial.

USB: 1) Enviar caracteres ASCII pela USB para o PC utilizando a classe CDC. 2)

Enviar as amostras de tensão do A/D para o PC utilizando a classe HID.

5 CONSIDERAÇÕES FINAIS

A disponibilidade de uma plataforma de ensino atualizada, de baixo custo, que

possa ser utilizada pelos alunos fora do laboratório, é um fator central em uma

disciplina de microcontroladores. É na disciplina de microcontroladores que os alunos

costumam ser apresentados à oportunidade de desenvolver projetos para a solução de

problemas totalmente conectados ao mundo real, utilizando ferramentas similares às

utilizadas no mercado de trabalho. Assim, um kit de desenvolvimento que permita a

implementação prática de todos os conteúdos abordados na disciplina e de outros

projetos de interesse do aluno mostra-se uma ferramenta de grande valor para estudantes

e educadores. Pode-se dizer que um kit de desenvolvimento adequado pode também

atuar como um fator de motivação para o aprendizado dos estudantes.

O kit de desenvolvimento apresentado neste trabalho utiliza o microcontrolador

AT89C5131A-M da família MSC51, que dispõe de um amplo suporte em termos de

material didático e usuários. Os recursos integrados ao kit permitem que o aluno tenha

contato com todos os tópicos desenvolvidos na teoria, inclusive ao controlador USB,

que costuma ser implementado como uma “caixa preta” em outras arquiteturas,

utilizando-se conversores serial/USB como os fornecidos pela FTDI (FTDI, 2012).

Além disso, os programas podem ser depurados passo a passo no próprio target sem a

utilização de equipamentos de alto custo. Não menos importante, é o fato do kit 8051

USB poder ser adquirido e montado pelo próprio aluno.

Para trabalhos futuros, planeja-se a elaboração de uma documentação completa para

o kit, contendo programas exemplo para todos os seus blocos funcionais. Pode-se

também investigar a possibilidade de utilizar o programa monitor FlashMON como base

para a implementação da depuração passo a passo pela USB, sem a utilização do cabo

conversor serial/USB. Para a aplicação dos experimentos de laboratório, pode-se

realizar um estudo piloto para a aplicação da metodologia de atividades em grupo

sugerida por Djukic (2011).

REFERÊNCIAS BIBLIOGRÁFICAS

ALDHAHER, A. H. G. Integrating hardware and software for the development of

microcontroller-based systems. Microprocessors and Microsystems. v. 25, n. 7, p.

317-328, 2001.

ARDUINO. Arduino home page. Disponível em: <http://www.arduino.cc/> Acesso

em: 01 jul. 2012.

ATMEL. Datasheet: 8-bit flash microcontroller with full speed USB device

AT89C5131A-M. Disponível em: <http://www.atmel.com/devices/at89c5131a-

m.aspx?tab=documents> Acesso em: 01 jul. 2012a.

ATMEL. Datasheet: 8-bit microcontroller with 4K bytes in-system programmable

flash. Disponível em: <http://www.atmel.com/devices/at89s51.aspx?tab=documents>

Acesso em: 01 jul. 2012b.

ATMEL. FLIP. Disponível em: <http://www.atmel.com/tools/FLIP.aspx> Acesso em:

01 jul. 2012c.

BOLANAKIS, D. E.; EVANGELAKIS, G. A.; GLAVAS, E.; KOTSIS, K. T. A

teaching approach for bridging the gap between low-level and high-level programming

using assembly language learning for small microcontrollers. Computer Applications

in Engineering Education, v. 19, n. 3, p. 525-537, 2011.

BORBA, G. B.; SOVIERZOSKI. M. A.; KOSLOWSKI, M. A.; SCHWARZ, L.

Documentação Técnica: Kit 8051 USB v0.1. Disponível em:

<http://paginapessoal.utfpr.edu.br/gustavobborba/files/kit_8051_USB_v01.zip> Acesso

em: 01 jul. 2012.

DJUKIC, D. Group projects in teaching microcontrollers. International Journal of

Electrical Engineering Education, v. 48, n. 4, p. 359-371, 2011.

FTDI. FT-X Series Full Speed USB Devices. Disponível em:

<http://www.ftdichip.com/FT-X.htm> Acesso em: 01 jul. 2012.

GAL, R.; GOLDA, A.; FRANKIEWICZ, M.; KOS, A. FPGA implementation of 8-bit

RISC microcontroller for embedded systems. In: Proceedings of the 18th

International Conference Mixed Design of Integrated Circuits and Systems

(MIXDES). Gliwice: 2011. p. 323-328.

HOVEMEYER, D.; LINK, G. Teaching embedded systems using AVR

microcontrollers: tutorial presentation. Journal of Computing Sciences in Colleges, v.

26, n. 3, p. 104-105, 2011.

HSU, C-M.; CHAO, H-M. Constructing u-controller teaching tool with the integration

of hardware and software technology. In: International Conference on New Trends in

Information and Service Science (NISS '09). Beijing: 2009. p. 269-276.

IAR SYSTEMS. IAR Embedded Workbench for 8051. Disponível em:

<http://supp.iar.com/Download/SW/?item=EW8051-EVAL> Acesso em: 01 jul. 2012.

IMAMURA, K. Assembly language is more than a teaching tool. Journal of

Computing Sciences in Colleges, v. 20, n. 2, p. 49-54, 2004.

KEANE, B. P.; VENHOVENS, P. J. Developing a 32-bit microcontroller board for

embedded applications. In: Proceedings of IEEE Southeastcon. Orlando: 2012. p. 1-4.

TRONCOSO R. J. R.; MORENO, A. O.; FRIAS, J. A. V.; PEREZ, G. A. 8-bit CISC

microprocessor core for teaching applications in the digital systems laboratory. In:

IEEE International Conference on Reconfigurable Computing and FPGA's

(ReConFig). San Luis Potosi: 2006. p. 1-5.

KEIL. Keil Tools By ARM: C51 Software - Development tools for Classic and

Extended 8051 Microcontrollers. Disponível em:

<https://www.keil.com/c51/demo/eval/c51.htm> Acesso em: 01 jul. 2012.

MA, C.; LI, Q.; LIU, Z.; JIN, Y. Low cost AVR microcontroller development kit for

undergraduate laboratory and take-home pedagogies. In: 2nd International

Conference on Education Technology and Computer (ICETC). Sanghai: 2010. p.

V1-35-V1-38.

MARGUSH, T. Using an 8-bit RISC microcontroller in an assembly language

programming course. Journal of Computing Sciences in Colleges, v. 22, n. 1, p. 15-

22, 2006.

PENG, J. Revision of a microcontroller course for a mixed student body. In:

Proceedings of the 39th IEEE international conference on Frontiers in education

conference (FIE'09). San Antonio: 2009. p. 1495-1500.

RAISONANCE. RKit-51. Disponível em: <http://support-

raisonance.com/extranet/tools/index.php?param=tool__id__6> Acesso em: 01 jul. 2012.

REESE, R. B.; JONES, A. B. Improving the effectiveness of microcontroller education.

In: Proceedings of the IEEE SoutheastCon 2010 (SoutheastCon). Concord: 2010. p.

172-175.

SELVAKUMAR, R. S. K.; GHAZALI, K. H.; YUSOFF, N. M. K. M., AZIZ, H. A.

Learning embedded systems with multi-microcontroller evaluation tool. In:

International Conference on Electrical, Control and Computer Engineering

(INECCE). Pahang: 2011. p. 288-292.

STMICROELECTRONICS. Press release: STMicroelectronics’ STM32 Discovery

Kit Establishes New Industry Standard for Low-Cost Tools for 32-bit

Microcontrollers. Disponível em:

<http://www.st.com/internet/com/press_release/p3065.jsp> Acesso em: 01 jul. 2012.

TEXAS INSTRUMENTS. MSP430 LaunchPad Value Line Development kit.

Disponível em: < http://www.ti.com/tool/msp-exp430g2> Acesso em: 01 jul. 2012.

ZHANG, X. Enhancing teaching of computer organization through concrete examples

and laboratory experiences. In: 4th International Conference on Computer Science

& Education (ICCSE '09). Nanning: 2009. p. 1357-1362.

DEVELOPMENT KIT FOR MCS51 MICROCONTROLLERS

TEACHING WITH EMBEDDED USB PORT

Abstract: This work presents a development kit to teach microcontrollers, based on a

microcontroller from the well-known MCS51 family, model AT89C5131A-M. This

model differs from the equivalent MCS51 devices especially due to the embedded USB

controller, as well as SPI, I2C and PWM controllers. No additional resources are

necessary to program the microcontrollers’ flash, since it presents bootloader

functionality for this purpose. The kit also allows the target debugging using a free

available monitor program, by means of the serial or USB port (a serial/USB cable is

necessary to debug via the USB). Other resources are available in the kit: A/D and D/A

converters, RTC, matrix keypad, LCD module and seven-segment displays, making the

kit a useful tool for a large variety of laboratory experiments. The board dimensions are

111x113 mm and all the components are through-hole, in order to facilitate the

soldering of the components by the students.

Key-words: Student microcontroller kit, MCS51, AT89C5131A-M