17/02/2015

Programa de teste para a placa de desenvolvimento "PICop II"

Em linha com o tema do post anterior, hoje apresento um programa com finalidade semelhante para a placa PICop II. Essencialmente, este programa testa o funcionamento dos dois circuitos osciladores e a detecção da tensão de host (Vbus) no conector USB. Aparte algumas similaridades quanto ao funcionamento, o novo programa é bastante mais complexo do que o anterior, pois recorre a interrupções para que se possa verificar a acção simultânea das bases de tempo.

Carregado o programa, a PICop II gera dois sinais de onda quadrada: um com frequência de 10Hz no pino RC7 e outro com frequência de 4Hz no pino RC6. Como anteriormente, é possível confirmar a existência destes sinais utilizando LEDs. Se no entanto preferir utilizar um osciloscópio, deverá obter duas formas de onda equivalentes às da imagem seguinte (a captura foi feita em modo de disparo alternado para uma melhor leitura das frequências):

Formas de onda dos sinais presentes nos pinos RC7 (a vermelho) e RC6 (a amarelo).

É de salientar que, na realidade, os sinais em RC7 e RC6 não são síncronos, pois derivam de bases de tempo distintas. O sinal em RC7 deriva da base de tempo principal do micro-controlador, fornecida pelo cristal X1. Por seu turno, o sinal em RC6 é gerado pelas interrupções provenientes do Timer1 (um temporizador periférico, interno ao PIC18F4550), sendo a base de tempo deste último dada por X2. Contudo, é importante referir que ambos os sinais dependem sempre de X1 e do seu circuito oscilador, pois sem a base de tempo principal o micro-controlador simplesmente não irá correr o programa.

Surgindo a necessidade de despiste, ou apenas como teste adicional, é possível confirmar o funcionamento de X1 utilizando um osciloscópio. A fim de não interferir na oscilação do cristal, a medição da mesma deve ser feita aos terminais do condensador C4, sendo que a ponta de prova deve estar equipada com uma mola de contacto à massa. Deverá visualizar uma onda sinusoidal com uma frequência de 20MHz, de acordo com a seguinte imagem:

Forma de onda do sinal gerado por X1, medido aos terminais de C4.

O funcionamento do cristal X2 pode ser confirmado de modo semelhante. Para tal, deve fazer a medição aos terminais do condensador C6. Tratando-se de uma medição de um sinal de baixa frequência, a ponta de prova não precisa de mola de contacto à massa, podendo esta ser feita através do usual crocodilo. Deverá observar uma onda sinusoidal com frequência próxima de 32,768KHz, conforme é mostrado na imagem abaixo:

Forma de onda do sinal gerado por X2, medido aos terminais de C6.

Como no caso do programa anterior, a detecção de Vbus faz-se no momento em que a placa é ligada a um host. Dada tal condição, a tensão no pino RC7 apresenta-se constante e com valor positivo enquanto for detectado Vbus. Caso tenha um LED ligado ao pino anterior, verá que este agora permanece aceso em vez de piscar. Contudo, pode ser desejável desabilitar a detecção de Vbus, o que é especialmente útil quando a PICop II está a ser alimentada por USB (pino "Vdd" ligado ao pino "Vbus"). Sendo assim, basta ligar o pino RB7 à massa.

Mais uma vez, o programa está disponível em C e em hexadecimal. O código C deve ser compilado previamente com o compilador XC8 da Microchip. Por outro lado, o ficheiro hexadecimal pode ser carregado para o micro-controlador sem necessidade de compilar.

Links importantes:
Programa em C: http://app.box.com/s/usn3...y02g
Ficheiro hexadecimal: http://app.box.com/s/78vp...me1o