KIT DE DESENVOLVIMENTO PARA O ENSINO DE … eng tec/6.pdf · Motorola MC68 (BOLANAKIS et al.,...
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