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

9

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

10

Este é a interface para gravação in-circuit

Lista de Componentes Utilizados

Descrição
Qt.

Resistor 10 kOhm

2

Resistor 1,5 kOhm

1

Diodo 1N4148

4

Diodo Zener 8,7V, ou, na falta Zener de 8,2V

1

Diodo Zener de 5,1V

1

Capacitor eletrolítico 100uF 25V

1

Capacitor eletrolítico 22uF 16V

1

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

 
 
 
 
Hosted by www.Geocities.ws

Counter 1