c51sbc

Prof. Geovany Araújo Borges, Dep. Enenharia Elétrica, Universidade de Brasília (UnB).

Atualizado em 13/02/2003.


1. Descrição

C51sbc é uma placa de desenvolvimento para o microcontrolador 80C52 (outros derivados da família 8051 também podem ser usados). Esse sistema pode ser conectado a um microcomputador IBM-PC através da porta serial RS-232, para transferência de programas usando um programa em C para DOS. Os programas são armazenados em uma memória RAM de 32 Kbytes, que opera tanto para o armazenamento de programas como de dados. O programa de controle da placa se encontra numa memória EPROM. A placa pode ser iniciada com o programa da EPROM, ou com o da RAM (carregado previamente). A seleção do modo de operação "Eprom" ou "Ram" é feita através de interruptores. Os modos são indicados por LEDs. Um barramento de expansão permite a conexão da C51sbc com outros circuitos, objetivando o desenvolvimento de projetos específicos.

2. Foto

 

3. Esquemático

O esquema da c51sbc é mostrada abaixo:

 

O mesmo esquema esta disponível em alta resolução nos formatos jpeg e s01 (esquemático Protel para DOS).

4. Modo de funcionamento

Essa placa de desenvolvimento dispõe de duas memórias: uma EPROM 27C512, na qual o programa de controle de placa é armazenado de forma permanente, e uma RAM 62256. Observa-se na decodificação da memória RAM que ambos os sinais /PSEN e /RD do microcontrolador são usados. Isso que significa que essa memória pode conter tanto um programa, como dados. De fato, a RAM é usada para armazenar os programas carregados na placa, bem como os dados usados por esse programa. Os outros componentes 74HCT86, 74HCT08 e 74HCT373 são usados na lógica de acesso das memórias, bem como para a demultiplexagem dos sinais de dados e de endereçamento (AD0-AD7). O valor do cristal Y1 de 11,0592 MHz foi escolhido de forma a permitir uma taxa de comunicação de 11520 BAUDs entre o microcontrolador e a estação base (um microcomputador IBM-PC).

Com o interruptor S3 na posição "Reset", pode-se ativar o sinal RESET do microcontrolador. Na posição oposta, indicada por "Run", o LED L3 indica que o microcontrolador está executando quer seja o programa da memória EPROM, que seja o da RAM. A seleção do programa em execução é feita pelo interruptor S2, e indicado pelos LEDs L1 e L2. Determina-se assim os modos "Eprom" e "Ram". Sempre que o usuário resolver mudar de modo, o interruptor S3 deve estar na posição "Reset".

A placa é alimentada por uma fonte contínua, entre 9 e 12 volts, via o conector CN1. O regulador de tensão deve ser dotado de um radiador de calor. Um conector de expansão (CN2) permite interligar o microcontrolador 80C52 a um circuito externo para assim acessar as diversas portas E/S do microcontrolador. A comunicação com a estação base se efetua via porta serial usando o padrão RS-232, cuja interface é implementada usando um MAX232 da Maxim. Um cabo serial não-invertido deve ser ligado entre o conector CN-1 e o conector da porta serial da estação base. Dependendo do tipo de conector da estação base (DB-9 ou DB-25), o cabo a ser construído deve realizar as seguintes conexões:

Conector CN-1
Conector DB-9 do PC
Conector DB-25 do PC
Descrição
Pino 2
Pino 2
Pino 3
RxD do PC
Pino 3
Pino 3
Pino 2
TxD do PC
Pino 5
Pino 5
Pino 7
0 volts

Embora não esteja ilustrado no esquema, é aconselhado ascrescentar um capacitor de 100 nF entre os pinos de alimentação de cada circuito integrado. Os componentes da família 74HCT podem ser perfeitamente substituídos por equivalentes da família 74HC. Se o usuário decidir usar um cristal de freqüência diferente, ele deve modificar o programa de controle da EPROM, pois esse foi concebido de forma a determinar os parâmetros da porta serial do microcontrolador de forma que a taxa de comunicação seja de 11520 BAUDs. Senão, a modificação pode ser feita no programa de transferência que fica no PC, de forma que o PC e a c51sbc possam se comunicar.

5. Programas

Os arquivos necessários para usar a plataforma c51sbc são os seguintes:

Arquivos
Descrição
c51sbc.cpp
Arquivo fonte do programa monitor da estação base.
c51sbc.exe
Arquivo binário do programa monitor, obtido pela compilação de c51sbc.cpp usando Turbo C++ para Dos.
c51sbc.c51
Arquivo fonte do programa de controle da placa c51sbc, escrito em linguagem C seguindo as normas do compilador da Keil.
c51sbc.bin
Arquivo binário do programa de controle no formato Intel, obtido pela compilação de c51sbc.c51 usando o compilador C da Keil. Esse programa deve ser diretamente gravado da EPROM.

O programa monitor da estação base está configurado para operar pela porta serial COM1. Para poder usar outra porta, deve-se selecionar a porta desejada no seguinte trecho do programa fonte:

// Defines para os registros da porta serial (configurado para COM1):
#define COM_BASE COM1_BASE
//#define COM_BASE COM2_BASE
//#define COM_BASE COM3_BASE
//#define COM_BASE COM4_BASE

Após essa modificação, o programa deve ser re-compilado. Você pode também carregar os executáveis do programa monitor devidamente compilados para as portas COM2, COM3 ou COM4.

Para usar a placa c51sbc, o usuário deve proceder da seguinte forma:

  1. Certifique-se que a placa esteja alimentada, e que o cabo serial esteja devidamente conectado. Coloque o arquivo c51sbc.exe em um diretório qualquer do disco rígido da estação base que esteja no PATH do sistema;
  2. Lance o programa c51sbc.exe. O programa espera que o microcontrolador seja inicializado (colocar S3 em "Reset", S2 para a posição "Eprom", e depois S3 em "Run"). Assim, placa deve estar no modo "Eprom". Pressione <ENTER> quando for o caso. Nesse momento, o programa monitor testa a comunicação com a placa de desenvolvimento. Se tudo estiver correto, uma linha de comando aparece. Senão, existe problema de comunicação, que pode ser de diversas origens (cabo serial muito longo, erro nas conexões, o interruptor S2 está na posição "Ram", o interruptor S3 está na posição "Reset", etc...);
  3. Supondo que a conexão entre a estação base e a c51sbc seja estabelecida, tecle HELP para ver os comandos disponíves.
  4. Sendo "arquivo.bin" o programa que o usuário deseja carregar na RAM da placa de desenvolvimento, ele deve usar o comando LOAD. Esse comando solicita o nome do arquivo, no caso "arquivo.bin", e o transfere para a RAM no endereço 0x8000 do microcontrolador, que é o endereço de mapeamento da RAM quando S2 esta na posição "Eprom". "arquivo.bin" deve ser compilado como se ele fosse ser gravado em uma EPROM mapeada no endereço 0x0000 do microcontrolador, com a devida inicialização do vetor de RESET;
  5. Sendo "arquivo.bin" carregado com sucesso, para executá-lo o usuário deve seguir os seguintes passos: colocar S3 na posição "Reset", mudar S2 para a posição "Ram", e colocar S3 na posição "Run".

Para reduzir o número de operações de carga do programa "arquivo.bin" na placa de desenvolvimento, o usuário pode também usar a linha de comando DOS. Para isso, basta digitar <c51sbc.exe arquivo.bin> que o programa monitor entra diretamente em um modo de transferência imediata do programa. Esse procedimento substitue os passos 2-4.

O comandos disponíveis no programa monitor são:

Comandos
Descrição
LOAD
Carregar um arquivo binário Intel na memória RAM da placa de desenvolvimento.
DUMP
Ler o conteúdo da memória RAM entre os endereços ENDEREÇO_INICIAL e ENDEREÇO_FINAL em hexadecimal.
FILL
Escrever um valor em hexadecimal na RAM entreos endereços ENDEREÇO_INICIAL e ENDEREÇO_FINAL.
DIR
Mostrar o conteúdo do diretório.
TEST
Testar a comunicação com a placa de desenvolvimento.
QUIT
Sair.

Os endereços ENDEREÇO_INICIAL e ENDEREÇO_FINAL usados pelos comandos DUMP e FILL são relativos à base da memória RAM. Ou seja, se ENDEREÇO_INICIAL = 0x0400 e ENDEREÇO_FINAL = 0x0408, a operação será realizada nesses endereços da RAM, que, como a placa está no modo "Eprom", correspondem a 0x8400 a 0x8408 no espaço de memória do microcontrolador. Dessa forma, o usuário pode acessar variáveis da memória RAM como se a placa estivesse no modo "Ram", entre 0x0400 e 0x0408.

Os programas seguintes podem ser usados para testar a placa de desenvolvimento c51sbc:

Arquivos
Descrição
pisca.bin
Arquivo binário no formato Intel de um programa que faz piscar um led conectado ao pino P1.0. O led deve ser acionado por um transistor (ver figura anaixo). O arquivo fonte é pisca.c51.
sons.bin
Arquivo binário no formato Intel de um programa que gera seqüências sonoras em um buzzer piezoelétrico conectado ao pino P1.0. No lugar do buzzer pode-se usar um alto-falante, desde que ele seja acionado pelo pino P1.0 através de um transistor (ver figura abaixo). O arquivo fonte é sons.c51.

As ilustrações abaixo mostram como fazer as conexões necessárias para cada um dos programas de teste:

(a) Esquema de teste com o programa pisca.bin

(b) Esquema de teste com o programa sons.bin