Índice:

Noções básicas sobre ICSP para microcontroladores PIC: 4 etapas (com imagens)
Noções básicas sobre ICSP para microcontroladores PIC: 4 etapas (com imagens)

Vídeo: Noções básicas sobre ICSP para microcontroladores PIC: 4 etapas (com imagens)

Vídeo: Noções básicas sobre ICSP para microcontroladores PIC: 4 etapas (com imagens)
Vídeo: Conversando Sobre PIC e Eletrônica com Wagner Rambo da WR Kits 2024, Julho
Anonim
Noções básicas sobre ICSP para microcontroladores PIC
Noções básicas sobre ICSP para microcontroladores PIC

Programar microcontroladores não é difícil. Construir um programador é um ótimo primeiro projeto eletrônico. O objetivo deste manual é explicar o método simples de 'programação serial em circuito' usado com PICs Microchip.

Etapa 1: Por que ICSP?

Por que ICSP?
Por que ICSP?

Programar um grande chip DIP (através do orifício) é fácil. Coloque-o em um programador com soquete, queime e retorne ao circuito de aplicação. Teste e repita.

As coisas ficam mais difíceis com chips menores (montagem em superfície). Não há soquetes padrão para QFN, SSOP, QFP ou mesmo os grandes pacotes SOIC.300. Existem clipes realmente caros (US $ 100) que podem ser fixados e programados nesses chips. Um clipe diferente é necessário para cada tipo de chip e contagem de pinos que você usar. Existe uma alternativa. É denominado ICSP. ICSP significa 'programador serial em circuito (ing?)'. É uma forma de programar um PIC enquanto ele ainda está conectado ao circuito de aplicação. Isso mesmo, não há mais troca de chip. Por que ICSP? 1. Não há soquetes de programação para chips de pacotes pequenos. Os clipes são caros. 2. É uma dor de colocar e retirar os chips do programador durante o desenvolvimento. Impossível para peças de montagem em superfície.

Etapa 2: O que é ICSP?

O que é ICSP?
O que é ICSP?
O que é ICSP?
O que é ICSP?
O que é ICSP?
O que é ICSP?
O que é ICSP?
O que é ICSP?

São necessárias cinco conexões para programar um PIC enquanto estiver conectado a um circuito de aplicação. Eu adicionei um conector de 5 pinos às minhas placas de circuito para tornar essa conexão rápida e fácil. O básico da programação PIC. Cinco conexões são necessárias para programar um PIC. Alimentação, aterramento, tensão de programação, relógio e dados. + (Vdd) / - (Vss) Essas são as conexões de alimentação e aterramento (Vdd, Vss). Bastante padrão. Se você estiver usando um programador com níveis de tensão 'reais' (NÃO um JDM2!), Seu aplicativo pode ser executado com sua própria fonte de alimentação quando programado, eliminando essas conexões. Vpp Esta é a tensão de programação. Os PICs entram no modo de programação quando ~ 13 volts são colocados no pino MCLR / Vpp (geralmente pino 1 em PICs modernos, mais sobre isso abaixo). Clock / Data ou PGC / PGD O relógio e as linhas de dados são usados para escrever e ler o PIC firmware. Geralmente são os mesmos pinos que PORTB6 e PORTB7. Exercício: Identifique os pontos de conexão ICSP nos PICs nas imagens abaixo. Se o PIC servir, use-o. Recebo muitas perguntas sobre meu design JDM2 em instructables. A mais frequente é "Irá programar PIC X? '"' - aqui está como você pode saber: 1) Consulte a folha de dados. Encontre o 'Diagrama de Pinos' que se parece com a imagem abaixo.2) Identifique a localização dos pinos que devem ser conectados para a programação (Vpp, Vdd, Vss, Dados e Relógio).3) Observe a conexão do soquete no programador. Você pode combinar os pinos necessários com um soquete no programador?

Etapa 3: Como ICSP?

Como ICSP?
Como ICSP?
Como ICSP?
Como ICSP?
Como ICSP?
Como ICSP?
Como ICSP?
Como ICSP?

Dependendo do seu projeto, agora você pode fazer todas as conexões necessárias e programar o seu PIC. Existem alguns pontos que você deve conhecer. O design para ICSP é importante. Microchip fornece uma boa nota de aplicação em PDF sobre projetos para ICSP. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011744Aqui estão algumas dicas e exemplos de designs ICSP de meus instructables anteriores. Dica nº 1, Nível de ameaça: ImportanteNão conecte mais nada ao CLOCK e pinos de DADOS (geralmente RB6 e RB7, PGC e PGD). Só não faça isso. Existem situações em que engenheiros muito espertos conseguem se safar, mas não o fazem. Os componentes conectados aos pinos distorcerão os sinais de relógio e dados, resultando em uma programação imprevisível. Além disso, se você quiser usar um depurador serial no circuito, não pode. Apenas não faça isso. Dica # 2 Nível de ameaça: Explosivo Sempre use um diodo entre a tensão de programação e a tensão do sistema. Se estiver usando MCLR (master clear) em um PIC, você deve fornecer alguma tensão no pino MCLR por meio de um resistor de 10Kish. Este também é o pino ao qual você aplicará ~ 13 volts para entrar no modo de programação. Eu coloquei um diodo 1n4148 (equivalente) entre o resistor e o pino MCLR / Vpp (como mostrado no esquema e renderização abaixo). Isso mantém a tensão de programação no pino Vpp, evitando a destruição de outros componentes em sua placa. Dica # 3 Nível de ameaça: (re) cansaço A programação de baixa tensão está prendendo você, cara. Eu nunca tive sucesso com LVP. Eu nunca vi isso funcionar (consistentemente) com meus próprios olhos. Apenas morda a bala e gaste $ 2,50 para construir um programador JDM2.

Etapa 4: Programadores ICSP

Programadores ICSP
Programadores ICSP
Programadores ICSP
Programadores ICSP

ICSP não requer um protocolo de programação diferente. Um programador baseado em soquete já produz a sinalização necessária, mas a envia para o soquete em vez de por meio de fios. A maioria dos programadores de soquete pode ser usada como um ICSP amarrando os fios do soquete ao circuito de aplicação. Por exemplo, o programador JDM2 original (aqui: https://www.jdm.homepage.dk/newpic.htm) pode ser usado para faça a programação ICSP trazendo os 5 sinais necessários para um cabeçalho. Isso pode ser visto no programador aqui: https://www.belza.cz/digital/jdm.htm. Para manter as coisas acessíveis, refiz este design em Eagle Cad e anexei a este instrutível. Observe a orientação do transistor, uma das pegadas pode estar incorreta (fiz isso há mais de um ano, não me lembro mais). Da mesma forma, meu programador JDM2 atualizado (aqui: https://www.instructables.com/id/EN28KZDDYVEP286GRI/) pode ser usado para ICSP enfiando fios nos soquetes DIP e conectando-os ao PIC de destino. ***** JDM2s usam tensões estranhas … conecte-o ao circuito SEM alimentação externa (ou mesmo aterramento) conectado ao circuito de aplicação. Remova as conexões ICSP antes de aplicar energia. Deixar de fazer isso não é destrutivo, mas resultará em falha na programação ******* Outra opção é um programador ICD (semi-) adequado. O ICD permite que você controle a execução do firmware em seu PIC, definindo pontos de interrupção no código ou lendo os valores de memória e porta. Um ICD também pode animar a execução de código, alimentar o circuito de aplicação e programar o PIC. Ele faz tudo isso por meio da mesma conexão ICSP de 5 pinos que discutimos. Vários clones ICSP que você mesmo pode fazer podem ser vistos aqui: https://www.icd2clone.com/wiki/Main_Page. Eu construí o PiCS (rev B) há alguns meses e adorei.

Recomendado: