Os microcontroladores PICs podem ser programados diretamente no circuito de aplicação final usando duas linhas para clock e dados, além de linhas para alimentação, terra e tensão de programação. Isto é chamado de ICSP e permite atualizar o firmware sem remover o chip do circuito.
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
2 gravação
1. Gravação de Microcontroladores PIC
O que é ICSP?
Significa "In Circuit Serial Programming", ou seja, programação
serial no circuito [de aplicação]. Nos gravadores comerciais e em
muitos feitos em casa [demo], é comum se encontrar um conector
com cinco ou seis pinos, com os sinais necessários para haver a
gravação dos PICs [Vss, Vdd, Vpp, PGD, PGC, que ligamos aos
pinos adequados do PIC]. Podemos inclusive projetar no circuito
aplicação um conector que dê acesso a esses pinos do PIC para uma
atualização ou mesmo a primeira gravação, sem que precisemos
retirar o chip do soquete e gravarmos na placa do gravador. Note
que precisa haver um certo isolamento desses sinais do restante do
circuito de aplicação [resistores, jumpers, etc], ou seja, é necessário
planejar a aplicação para se usar desta funcionalidade [travar os
sinais para que não interfiram com o restante da eletrônica da
aplicação].
Esse modo serial de programação [de escrever para a memória de
programa FLASH] é o padrão dos PICs e quase todos funcionam
assim [exceto alguns modelos antigos como o 16C54, cuja gravação é
de modo paralelo
paralelo].
Pinos ICSPDAT ou PGD ou DT ou Data [Serial
Programming Data I/O] e ICSPCLK ou PGC ou CK ou
Clock [Serial Programming Clock]
O MCU PIC não tem quaisquer pinos especiais para escrever para
a memória de programa [para “programação”]. Dois Pinos,
normalmente usados como entrada de sinal analógico ou entrada e
saída de sinal digital de uma mesma Porta, servem a este fim [no
PIC 16F676*, por exemplo, pino 12 para clock e 13 para dados – ver
figuras abaixo].
2. *Encapsulamento 14-pin PDIP, SOIC, TSSOP.
Na gravação ICSP [programação serial no circuito de aplicação]
quanto aos pinos PGC [clock - sinal de sincronismo para coordenar a
ação de gravação] e PGD [data - dados], deve-se observar o sentido
de corrente em relação ao circuito já presente na placa de aplicação.
O ideal é isolar o circuito da placa do circuito de gravação através de
dois resistores de pelo menos 1kΩ [“projetados” no circuito
aplicação]. A localização dos pinos correspondente ao clock, data e
MCLR depende do MCU utilizado. Verifique esta informação na
datasheet [Especificação fornecida pelo fabricante] do componente
MCU que você pretende ter no circuito aplicação.
Todas as datasheets de todos os MCU PIC, bem como todos os
manuais dos programas e os programas de desenvolvimento da
Microchip [por exemplo: MPLAB IDE], podem ser baixados do
próprio site da Microchip [www.microchip.com]. Também existem
dezenas de Application Notes sobre os PICs, bem como de outros
componentes.
3. Pino Vpp
O sinal ligado ao pino MCLR [Reset – Master Clear] do
microcontrolador atingirá uma tensão de 13V aproximadamente
durante a gravação [12-14V], por este motivo, o PIC a ser gravado
in-circuit não pode estar com o MCLR ligado diretamente ao +5V.
Recomenda-se o uso de um resistor de 10KΩ ligando o MCLR ao
+5V, de forma que esta tensão possa ser aplicada ao pino MCLR
sem problemas. Esta é a Tensão de Programação [Vpp –
Programming Voltage], aplicada durante a programação [no PIC
16F676*, por exemplo, aplicada no pino 4 – ver figuras abaixo].
*Encapsulamento 14-pin PDIP, SOIC, TSSOP.
Porém, existe um recurso chamado de Low-Voltage ICSP
Programming [programação LVP] para se gravar alguns modelos de
PICs [consultar datasheet] com baixa tensão [5V e não 13V] o que
simplifica a gravação e o gravador [Nem todos os sistemas que
fazem gravação no próprio circuito podem suportar a recepção de
uma Vpp de 13V]. Para isso, usamos um pino chamado de PGM, que
deve ser levado a nível lógico 1 para o PIC entrar em modo de
programação. Note que como o PGM é compartilhado com uma
porta, está fica inutilizada se a LVP estiver habilitada [pelo fusível
de configuração].
configuração
Exemplos de modelos que possuem esse recurso: 16F627[A],
16F628[A], 16F87X[A] e 18FXXXX. Quando não formos usar o modo
4. LVP nestas MCU, devemos aterrar o pino PGM no momento da
gravação.
gravação
O que é a palavra ou fusíveis de configuração [Bits de
configuração]
configuração]?
uração]
No momento da gravação de um programa em um PIC
podemos fazer a escolha de alguns recursos de que o PIC
dispõe, setando ou zerando os bits de um determinado
endereço da memória. Esses recursos se referem a: tipo de
usado, programa,
oscilador usado proteção de leitura do programa ativação do
WDT, proteção de leitura da EEPROM ativação do Brownout,
EEPROM,
ativação do Master Clear, ativação do Power up timer, seleção
do Bandgap, habilitação de gravação por baixa tensão entre
tensão,
outros. Essa configuração de fusíveis pode ser inserida
também no programa fonte e vai aparecer automaticamente
no software de gravação Este assunto será detalhado em
gravação.
Programando.
Pinos Vdd e Vss
+5V em Vdd [Positive Supply – Vcc] e 0V em Vss [Ground
Reference – GND] para se poder gravar [no PIC 16F676*, por
exemplo, pino 1 para Vdd e 14 para Vss – ver figuras abaixo].
*Encapsulamento 14-pin PDIP, SOIC, TSSOP.
Deve-se tomar cuidado com os níveis de tensão envolvidos na
gravação. O PIC a ser gravado deve estar previamente energizado
5. antes de iniciar a gravação, ou seja, a própria placa onde o PIC que
será gravado se encontra deverá estar energizada. Normalmente a
gravadora não tem capacidade de corrente suficiente para alimentar
o PIC que está sendo gravado e o resto do circuito que se encontra
na placa aplicação, por este motivo, a própria placa aplicação deve
prover alimentação ao PIC a ser gravado.
A figura abaixo ilustra a forma de conectar a gravadora ao PIC
para gravação in-circuit.
Nos microcontroladores PIC18 série J, dsPIC33F, PIC24F e
PIC24H a tensão máxima de alimentação é de 3,3V e por este
6. motivo modelos DIP destes componentes devem ser gravados
apenas in-circuit [fonte de alimentação externa a placa de
gravação], como mostra a figura abaixo:
Como gravar o PIC?
De posse de um arquivo .hex que contenha os códigos
hexadecimais das instruções do programa [Opcode – Código
Operacional], você precisa de um software de controle no PC e
um hardware de gravação de PICs. Existem diversos
programas e circuitos de gravação disponíveis na Internet
[muitos gratuitos]. Também é possível comprar um gravador
pronto.
Revisão
Os microcontroladores PICs conseguem ser programados de forma
serial no circuito de aplicação final. Isto é conseguido com duas
linhas simples para clock e data, e três outras linhas para:
• Power
• Ground
• Programming voltage