segunda-feira, junho 13, 2011

Projeto 'Epoch' - Parte2 - Hardware

Veremos neste post o hardware que utilizei para apresentar a contagem de segundos no display de pinball que apresentei na primeira parte.

A ideia básica foi usar um microcontrolador para acionar o display. Uma conexão RS232 com um micro é usada para programar o valor inicial e um relógio com bateria é usado para manter atualizada a data e hora quando o microcontrolador estiver desligado.

O Microcontrolador

O display utilizado requer um número considerável de conexões (11 no total). Uma possibilidade era usar um shift register externo (como fiz quando usei um display de quatro dígitos). Resolvi, entretanto, explorar um dos modelos de PIC com mais pinos.


O modelo que eu escolhi foi o PIC16F882-I/SP. É um modelo relativamente recente com algumas características interessantes para este projeto:
  • Encapsulamento PDIP com 28 pinos, dos quais até 24 podem ser usados como E/S digital
  • Clock interno de 8MHz, calibrado na fábrica
  • USART para comunicação serial
Embora não sejam usados neste projeto, este microcontrolador tem ainda conversor A/D de 10 bits e uma interface para SPI e I2C, além de timers, PWM e comparadores analógicos. Este modelo é modesto em termos de memória (2K palavras de programa, 128 bytes de Ram e 128 bytes de EEProm), porém existem modelos com a mesma pinagem e mais memória.

Tudo isto por um preço bem acessível: menos de R$8 na Farnell.

O datasheet está aqui.

O Relógio Não Volátil

Já brinquei anteriormente com alguns modelos de relógio não volátil. Para este projeto escolhi o DS1302. Além do tradicional relógio/calendário e Ram (no caso 31 bytes), este chip é capaz de fazer carga lenta (trickle-charge) da bateria de backup. Embora seja um pouco de exagero, resolvi usar uma bateria recarregável de NiCad de 3,6V 60mA/h, destas que se encontra em algumas placa mães de PC.


A conexão do DS1302 com o microntrolador é feita por 3 fios, usando um protocolo bastante simples.

O datasheet do DS1302 está aqui.

Interface RS-232

Para converter o nível dos sinais de Rx e Tx entre TTL e RS232 usei o tradicional MAX232, que já descrevi anteriormente.

Você pode baixar um datasheet do MAX232 aqui.

O Circuito

O circuito é bastante simples. Além dos três CIs (PIC, DS1302 e MAX232) temos o cristal e a bateria para o DS1302, um pullup para o sinal de reset do PIC e os capacitores para o MAX232. Os sinais para programação in-circuit do PIC vão para um conector, para permitir a carga do software sem precisar retirá-lo do circuito.


Montagem

Os primeiros testes foram feitos em uma breadboard. A montagem foi feita em uma placa de circuito impresso padrão, destas que possuem trilhas semelhantes às conexões da breadboard.


Uma vez que a comunicação seria é usada somente para a programação inicial de data e hora, optei por montar o MAX232 em uma placa separada (re-utilizável em outro projetos).


No próximo post vamos começar a ver o software do projeto.

Nenhum comentário: