MBHP - Plataforma Hardware
MIDIbox, Módulo
Gravador JDM
O gravador
JDM é uma solução
barata para gravar a memória
flash interna do PIC.
Ao lado dos planos originais
de Jens Dyekjær
Madsen, que estão
na figura abaixo, há
também muitos esquemas
modificando o original,
disponíveis na
Internet.

O MBHP
é uma versão
modificada do JDM, visto
acima, que tem o seguinte
esquema:

As modificações
feitas no esquema do MPHP,
que são R1 e a
alteração
da tensão de D5,
são modificações
adicionais, que são
necessárias para
que todos os PICs mais
novos que têm a
capacidade de programação
em tensões menores
(que não é
usado na realidade pelo
gravador JDM e tem que
ser incapacitado pelo
resistor de 10k de pulldown
no pino RB3) e um valor
ligeiramente aumentado
para o diodo zener para
reconhecer as especificações
de programação
dos PIC16F87x e PIC18F452
(Nota: se você não
encontrar um zener de
8,7V, use um de 8,2V,
que funcionará
na maioria dos casos).
O software
de gravação
IC-Prog feito por Bonny
Gijzen parece ser o mais
flexível, porque
não apóia
somente o JDM, mas também
muitos outros gravadores.
Pode ser encontrado aqui:
http://www.ic-prog.com.
Configure o IC-Prog como
descrito no arquivo de
ajuda e carregue o arquivo
.hex do MIDIbox. Este
arquivo inclui o depósito
de memória do firmware
e todas as especificações
necessárias:

Antes
de você começar
a programar o chip, por
favor confira o circuito
do seu gravador no menu
de Cheque de Hardware
(Hardware Check).
Importante:
não meça
as tensões com
um osciloscópio
ou instrumento semelhante
que são aterrados
como seu PC, porque isto
falsificará os
resultados da medição
(o JDM usa a conexão
de gnd para Vdd). Apenas
use um multímetro
digital. Siga estas instruções:
Vá
em Settings-> menu
Hardware, selecione o
"Programador JDM",
selecione a Porta (COM1,
COM2,...?), Selecione
a Interface I/O Direto
(bom para Windows 9x)
ou API (Windows ME/NT/2000/XP).
Comece com I/O Delay 0,
não inverta nenhum
sinal:
- Agora selecione o
dispositivo correto:
Settings->Device->Microchip
PIC->PIC18F452 (ou
PIC16F874 ou PIC16F877
para PIC16F MIDIboxes)
- Start Settings->Options,
entre no submenu "Programming"
- Habilite "Verfiy
after programming"
e "Verify during
programming". A
última opção
assegura que você
será notificado
imediatamente sobre
um erro de programação.
A primeira opção
é especialmente
requerida para derivados
de PIC16F87xA, já
que o IC-Prog não
verifica estes chips
durante a gravação.
Entre
no submenu "Misc",
e marque "Enable
Vcc control for JDM"
e selecione "Realtime"
em Process Priority

- Vá para Settings->Hardware
Check

- Prepare seu multímetro
para inspecionar as
tensões de seu
gravador.
- Nota: quando um sinal
for inválido,
a tensão cai
muito muito lentamente
a 0V, desde que os capacitores
não sejam descarregados
por uma carga. Assim,
não se preocupe
com os valores de sinais
inválidos, apenas
habilite os sinais.
- Nota 2: as tensões
mudarão para
os valores corretos
e especificados quando
um PIC está no
soquete. O propósito
do cheque de hardware
não é
ver as tensões
corretas, mas assegurar
que os sinais podem
ser controlados (chaveado
on/off) por seu PC.
Se você quer assegurar
que a tensão
não é
muito alta com a carga
para verificar se o
circuito está
montado corretamente,
temporariamente conecte
um resistor de 1k entre
Vss e o "pino sob
teste."
- Assegure-se de que
não há
nenhum PIC no soquete
de gravação.
- Clique em "Enable
Data Out": A caixa
Data In deveria ser
checada automaticamente
devido à realimentação
de hardware (Data Out->Data
In). Chaveie "Data
out" novamente.
Não se preocupe
se Data In comuta durante
os próximos testes,
este é o comportamento
normal.

- Clique em "Enable
MCLR", meça
a tensão entre
Vss (Pinos 12/31) e
MCLR (Pino 1): ca. 14
V
- Desabilite todos os
sinais
- Clique em "Enable
Vcc", meça
a tensão entre
Vss (Pinos 12/31) e
Vdd (Pinos 11/32): ca.
5 V
- Se este teste falhar,
assegure que a opção
"Vcc control for
JDM" esteja habilidata
no submenu de "Misc"
(Settings->Options)
- Desabilite todos os
sinais
- Clique em "Enable
clock", meça
a tensão entre
Vss (Pinos 12/31) e
RB6 (Pino 39): ca. 5
V + / - 1 V
- Desabilite todos os
sinais
- Clique em "Enable
Data Out", meça
as tensões entre
entre Vss (Pinos 12/31)
e RB7 (Pino 40): ca
5 V + / - 0.5 V
- Agora encaixe o PIC
no soquete de gravação
- Clique em Comand->Read
All

- Durante a Leitura:
Meça a tensão
entre Vss (Pinos 12/31)
e MCLR (Pino 1): ca.
13.7 V
Meça as tensões
entre Vss (Pinos 12/31)
e Vdd (Pinos 11/32):
ca. 5.1 V
Não faz sentido
nenhum medir as tensões
nos outros pinos, desde
que eles são
chaveados muito rapidamente.
Nota: o programador
de JDM não trabalhará,
se você provar
estes pinos com um osciloscópio
(problema de GND->Terra)
- Se você não
medir 13.7V entre Vss
e MCLR quando o PIC
está plugado
no soquete, você
deve incrementar/decrementar
a tensão com
o I/O Delay no menu
Hardware Settings. Delays
mais baixos aumentarão
a tensão, delays
maiores diminuirão
a tensão! Eu
notei, que não
podem ser alcançados
13.7V quando o JDM é
acessado pela API de
funções
do Windows
- Clique em File->Open
File e abra o arquivo
de firmware (arquivo
.hex) no IC-Prog
- Agora leva aproximadamente
3 minutos até
que o PIC seja programado.
Se a escrita não
funcionar, IC-Prog notificará
isto como "Verify
failed" quando
o "Verfiy after
programming" e
"Verify during
programing" for
selecionado em Settings->Options->Programming
submenu
Nota: Em alguns PCs
o procedimento de programação
somente ocorre, quando
o pino 5 (GND) do plugue
SubD está conectado
com o chassi de metal
(proteção
terra) do conector.
Estes são os passos
necessários para
estrear seu gravador MBHP.

Arquivos
do Projeto
Layout
(feito no Eagle)
-> mbhp_jdm_v2.brd
Portas
Disponíveis
Nome |
Nº
de Pinos |
Descrição |
J1 |
|
Este é
o plug de interface
com a porta com
de seu PC, que possui
um soquete Sub-d
de 9 polos. No MBHP
deve ser usado o
Sud-d de 9 polos
fêmea |
J2 |
|
Este é
a interface para
gravação
in-circuit |
Lista
de Componentes Utilizados
Descrição |
Qt. |
Resistor 10 kOhm
|
|
Resistor 1,5
kOhm |
|
Diodo 1N4148
|
4 |
Diodo Zener 8,7V,
ou, na falta Zener
de 8,2V |
|
Diodo Zener de
5,1V |
1 |
Capacitor eletrolítico
100uF 25V |
|
Capacitor eletrolítico
22uF 16V |
|
Transistor BC547B |
2 |
Soquete para
CI de 40 pinos |
1 |
Conector de 9
pinos serial, fêmea,
padrão rs-232 |
1 |
Cabo padrão
rs-232 |
1 |
Talvez
o item mais caro da lista
acima seja o cabo rs-232,
você pode ligar
o gravador direto na saída
serial do PC.
Guia
de Montagem e Teste
|
Comece soldando
as 2 pontes que evitam
que a PCI seja de
2 camadas. Você
pode usar pedaços
de terminais cortados
de capacitores e resistores. |
|
Solde os componentes
na PCI: soquete para
CI, Resistores, Capacitores,
Diodos, Transistores,
Conectores... |
 |
Esta figura demonstra
as 2 pontes adicionais
para o conector de
gravação
in-circuit, feita
com cabos isolados. |
 |
Conecte o gravador
a seu PC e meça
as tensões
como descrito acima. |
 |
Depois disso coloque
o PIC no soquete e
tente programa-lo. |
 |
Você também
pode gravar o PIC
com o adaptador de
gravação
in-circuit |
 |
Este é um
conector de PCI 1:1
2-fila, como é
conhecido no PC. |
Diagnosticando
Problemas
- Compare seu circuito
com o esquemático
e o layout de PCI várias
vezes - especialmente,
confira a polaridade
dos diodos, os capacitores,
os transistores. Assegure-se
que as soldas estejam
ok (nenhuma junção
frouxa)
- IC-Prog às
vezes "esquece"
de uma opção
sob algumas circunstâncias
desconhecidas (por exemplo
o I/O delay e o nº
da porta COM). Assim,
se o procedimento de
gravação
falhar, assegure-se
de que sua configuração
não foi mudada
- Tente valores diferentes
de retardos de I/O
- Use a função
verify do IC-Prog para
assegurar que o firmware
seja gravado corretamente
se seu PIC não
funcionar.
- Não grave um
firmware de PIC16F877
no PIC18F452 - o PIC18F
não é
compatível!
Todos os firmwares de
PIC16F (usados pelos
projetos antigos) são
publicados como arquivo
.hex, para o PIC18F
você apenas necessita
gravar o Bootloader,
o sistema operacional
e a aplicação
será gravado
via MIDI.
- Se a tensão
de MCLR não é
alta o bastante (este
problema foi observado
em laptops, e também
em PCs mais novos com
uma porta COM fraca),
você pode prover
esta tensão conforme
mostrado no esquema
abaixo. Use duas baterias
de 9V ou uma fonte de
alimentação
que forneça 15V
pelo menos. Um regulador
não é
requerido, os diodos
zener limitam a tensão.
Não esqueça
do resistor de 220 Ohm
- limita a corrente
e protege o circuito
do JDM.

- Plugue o PIC diretamente
no soquete do módulo
JDM quando você
gravá-lo pela
primeira vez, porque
um PIC apagado requer
um resistor de pull-down
no pino RB3 (PIC18F452:
no pino RB5!) que incapacita
o modo de gravação
de baixa tensão:

- WinPic800 é
um software de programação
alternativo - vale a
pena experimentar ele
se o IC-Prog falhar.
Também suporta
PICs mais novos como
o PIC18F4620.
Fontes
de Pesquisa
http://www.ucapps.de/mbhp_jdm_expired.html
http://www.jdm.homepage.dk/newpic.htm
Marcelo
Teixeira
Novembro/2006 |