quarta-feira, junho 23, 2010

Placa Protótipo PIC - Projeto

O projeto da minha placa protótipo é bastante trivial, baseando-se nos circuitos sugeridos nas documentações do PIC, do MAX232 (conversor TTL <-> RS232) e do gravador McFlash. Segue abaixo o circuito que eu montei (clique para ampliar):



Este circuito está longe de ser perfeito, mas plenamente satisfatório para uma primeira tentativa. Abaixo comentários sobre os principais módulos:

Microcontrolador PIC

Um cristal de 12MHz é utilizado para geração de clock no PIC. Isto consome dois pinos de E/S mas fornece um clock mais elevado que o clock interno (8Mhz).

O pino 4 (-MCLR/Vpp) tem dupla função. Na operação normal ele está ligado somente a 5V (através de um resistor) para fornecer o "reset ao ligar". Quando o gravador está conectado, ele coloca neste pino a tensão de programação (13V). O valor de 10K do resistor entre o pino e o 5V é o sugerido na documentação do gravador para proteger o resto do circuito da tensão de programação. Uma possibilidade, que eu não implementei, era ligar também a este pino um botão de contato momentâneo ligado a terra através de um resistor, para servir de botão de reset. Preferi usar a chave liga/desliga para ressetar o PIC.

Os pinos TX e RX são a saída e entrada da USART e são ligados ao MAX232. Preferi não disponibilizar estes pinos no conector de expansão.

Os pinos RA0/DATA e RA1/CLK podem ser usados para E/S na operação normal; são também usados para a programação do PIC. Durante a programação é aconselhado desligar os demais circuitos ligados a estes pinos.

O pino 11(RA2) acabou não sendo usado, devido a falta de espaço na minha montagem.

Os pinos restantes (RC0 a RC3) vão para o conector de expansão.

MAX232

Este circuito faz um pequeno milagre, convertendo de/para sinais TTL (0 a 5V) em sinais RS232 (-12 a +12V). Com auxílio dos vários capacitores de 1uF, ele gera tensões de (aproximadamente) +8 e -8V. Duas entradas TTL são transformadas em RS232 e duas entradas RS232 são transformadas em TTL. No meu caso usei somente uma entrada e uma saída. Por motivos que ficarão claros na próxima parte (montagem), o conector RS232 não é ligado diretamente ao circuito.

Obs.: algumas variantes do MAX232 permitem trabalhar com capacitores menores, de 0,1uF.

Alimentação

A possibilidade mais simples era usar uma fonte externa de 5V, como costumo fazer na breadboard. Entretanto, isto deixaria a placa presa a uma tomada e eu tive recentemente um "probleminha" usando fonte externa.

Uma segunda opção era usar três pilhas comuns para obter 4.5V, suficiente para a operação do circuito.

Acabei escolhendo uma terceira opção, um pouco mais compacta e que permite operar a 5V: usar uma bateria de 9V e um regulador. Esta opção tem a desvantagem de desperdiçar 4V (que acabarão sendo convertidos em calor). O regulador é o popular 7805, que requer apenas dois capacitores externos.

Uma falha no meu projeto (por falta de espaço na montagem) foi não ter colocado os 5V no conector de expansão. Fica para a próxima revisão.

No próximo post, considerações sobre a montagem.

2 comentários:

Anônimo disse...

Olá,

Gostei do esquema de montagem usando o MAX232, até montei na protoboard para testar, mas na hora da verificação ele da um erro de memoria, bom ja tem um tempo que estou "googlando" a procura desse gravador, o que eu uso é um com transistores mas se o programa for muito grande ele da um errinhos na execução depois de gravado, gostaria de saber se mesmo usando o max232 eu preciso setar a porta de gravação com 13V? E se o modelo hardware utilizado no ICprog será o JDM, ainda não o fiz com medo de danificar o pic, desde já,
Obrigado!
Raphael

Daniel Quadros disse...

A comunicação serial (onde está o MAX232) e a programação são duas coisas distintas. Os programadores que eu uso são o McFlash da Mosaico e o ICD2 da Microchip.