domingo, 6 de fevereiro de 2011

Gravação do PIC


O PROCESSO DE GRAVAÇÃO DE UM PIC
Para podermos escrever (gravar) em um microcontrolador nós vamos precisar de uma gravadora, um software gravador, um compilador e um programa.
· O programa pode ser escrito em assembler. Nele ira conter as informações de configuração do nosso microcontrolador e a lógica do nosso dispositivo. Normalmente usa-se o bloco de notas ou o MPLAB IDE (editor e simulador) para escrever estes programas.
· O compilador vai transformar as informações geradas pelo programa (*.asm) em opcode – códigos operacionais (hexadecimais de 14 bits) e transformar em hexadecimal (*.hex).
· O Software Gravador, vai transmitir as informações hexadecimais geradas pelo compilador de forma correta para o gravador.
· O Gravador converte e organiza os sinais gerados pelo computador, para que eles sejam armazenados no microcontrolador.
Fig. 1.5: PIC Diagrama de Programação

Também podemos simular nossos projetos através do software MPLAB IDE, onde podemos monitorar todos os endereços de memória e possibilita o acompanhamento de todo o sistema, para identificar e solucionar problemas.

Fig. 1.6: MPLAB IDE Print Screen

ESCREVENDO UM PROGRAMA

Fazem parte de um programa para nosso microcontrolador: o tipo do processador (ex. p16f84a), arquivo contendo o set de instruções – comandos (ex. P16f84. inc), o tipo de oscilador e recursos de gravação, as portas que serão de entrada/saída, as variáveis do sistema, os endereços de memória que cada parte do programa vai utilizar, e o mais importante: A lógica de programação.
Segue abaixo um exemplo comentado de programa:


Fig. 1.7:PIC16F84A de acordo com a programação da Fig1.8.


Fig. 1.8: Exemplo de programa PIC.

O COMPILADOR – MPASMWIN
O compilador vai transformar o código fonte do programa em novas instruções sequenciais para o microcontrolador. O mpasmwin encontra-se em versões para windowsn (mpasmwin) e para ms-dos (mpasmdos).
Cada uma das instruções identificara precisamente a função basica que o PIC ira executar. Onde a instrução é representada por um código operativo (do inglês operation code ou abreviadamente opcode) podemos memorizar 14 bits em cada locação da memória EEPROM. Esta memória no PIC16C84 dispõe de 1024 locações e cada uma devera conter uma só instrução. Um exemplo de opcode em notação binaria esta escrito a seguir: 00 0001 0000 0000B.
É mais provavel que um opcode venha representado na notação hexadecimal, ou seja: 0100H.
Este código, completamente sem sentido para nós humanos, é o que o PIC esta preparada para entender. Para facilitar a compreensão ao programador, se recorre a um instrumento e convenção para tornar a instrução mais compreensível.
A primeira convenção é a que associa o opcode (um total de 35 para o PIC16C84) a uma sigla mnemônica, ou seja uma inicial que seja facil de recordar o significado da instrução.
Voltando ao nosso exemplo o opcode 0100H corresponde a instrução mnemônica CLRW que é a forma abreviada da instrução CLEAR WREGISTER, ou seja, zere o registro W. Estes códigos podem ser encontrados dentro do arquivo de biblioteca do compilador, que é invocado pelo programa. No caso este arquivo é o P16C84 (pela linha include “P16C84.INC).




Fig. 1.9: MPASM.

O SOFTWARE GRAVADOR - ICPROG
Através do ic-prog vamos transferir o arquivo gerado pelo compilador (que agora é hexadecimal - *.hex) para a nossa gravadora. Existem varios tipos de gravadoras compatíveis com o icprog. No nosso caso vamos utilizar o tipo JDM. Para isso vá ao menu configurações e na opção Hardware (ou pressione F3) e configure o programa como a figura abaixo:
Fig. 2.0: IC-Prog.
O GRAVADOR DE PIC´S
O gravador é o hardware, que vai converter os impulsos eletrônicos ativados pelo software gravador (ic-prog) na porta seriais/paralela para os pinos do nosso microcontrolador. Esta gravação é feita de forma serial, ou seja, após codificar os comandos em números hexadecimais, agora transcodificamo-os em impulsos elétricos seriais para a gravadora, que vai atingir os níveis de tensões necessários para possibilitar a transferência dos códigos para dentro da memória de dados do PIC.
O princípio de gravação é o mesmo para todas as gravadoras, o que muda é o hardware que o desenvolvedor vai utilizar para garantir segurança para seu computador, seu microcontrolador e sua gravadora.
 Em algumas gravadoras temos a fonte na própria placa e em outras utilizaremos a tensão existente na porta de comunicação do micro (em geral, uns 15mA). Normalmente em uma fonte para a gravadora temos a ponte retificadora, um capacitor de 1000uF-eletrolítico, um de 100nF-eletrolítico, em seguida um LM7805 (TO-220) e um capacitor de 100uF-eletrolítico. Portanto, durante o processo de gravação o pic deve ser alimentado com +5Vcc e ter o GND conectado.
Em determinado momento da gravação precisaremos de um pulso entre 13Vcc e 15Vcc no pino 5 - MCLR (Memory Clear), portanto também teremos uma outra fonte para gerar esta tensão.
 O pino SDA (RB7) transmite e recebe dados. É por este pino que os dados a serem gravados são inseridos ou lidos, conforme o comando selecionado.
O pino SCL (RB6) é o clock de sincronismo das informações.
O grande segredo é saber onde enviar estes pulsos (veja a tabela 3, abaixo):
Tabela 3 : Pulsos de cada pino.
Atenção, apesar dos PIC´s serem praticamente imunes a energia estática e muito resistentes para qualquer ambiente, nunca devemos inserir ou retirar o microcontrolador com a gravadora ligada ou conectada. Para preservação da porta de comunicação com o PC, não devemos remover o cabo durante o processo de gravação ou com o ic-prog aberto. É recomendável que você mantenha sempre o microcontrolador em uma porta soquete (mesa para CI) com furos torneados, aumentando assim a vida útil do microcontrolador.





Nenhum comentário:

Postar um comentário