Site de automóveis - Ao volante

Site de automóveis - Ao volante

» Programador de controlador de pico faça você mesmo. O programador JDM mais simples para PIC em componentes passivos

Programador de controlador de pico faça você mesmo. O programador JDM mais simples para PIC em componentes passivos

Responder

Lorem Ipsum é simplesmente um texto fictício da indústria de impressão e composição tipográfica. Lorem Ipsum tem sido o texto fictício padrão da indústria desde 1500, quando um impressor desconhecido pegou uma galera de tipos e a misturou para fazer um livro de espécimes de tipos. Ele sobreviveu não apenas cinco http://jquery2dotnet.com/ séculos , mas também o salto para a composição tipográfica eletrônica, permanecendo essencialmente inalterado. Foi popularizado na década de 1960 com o lançamento de folhas Letraset contendo passagens de Lorem Ipsum e, mais recentemente, com software de editoração eletrônica como Aldus PageMaker, incluindo versões de Lorem Ipsum.

Programador de controlador DIY PIC

Este dispositivo, o chamado programador JDM, é o projeto mais simples para atualizar controladores da família PIC. As vantagens inegáveis ​​​​- simplicidade, compacidade, alimentação sem fonte externa deste clássico circuito programador - tornaram-no muito popular entre os rádios amadores, principalmente porque o circuito já tem 5 anos, e durante esse tempo se consolidou como um simples e ferramenta confiável para trabalhar com microcontroladores.

Diagrama esquemático do programador para controladores pic:

Nenhuma energia é necessária para o circuito em si, pois isso é feito pela porta COM do computador, através da qual o firmware do microcontrolador é controlado. Para o modo de programação de baixa tensão, 5 V é suficiente, mas todas as opções de troca (fusíveis) podem não estar disponíveis. O conector de conexão da porta COM-9 foi montado diretamente na placa de circuito do programador PIC - ficou muito conveniente.

Você pode conectar a placa diretamente na porta sem cabos extras. O programador foi testado em diversos computadores e ao programar MKs das séries 12F, 16F e 18F apresentou firmware de alta qualidade. O circuito proposto permite programar microcontroladores PIC12F509, PIC16F84A, PIC16F628.

Para programação, é usado WinPic800 - um dos melhores programas para programação de controladores PIC. O programa permite realizar operações para microcontroladores da família PIC: ler, escrever, apagar, verificar memória FLASH e EEPROM e definir bits de configuração.

Vários tipos de microcontroladores PIC12C508, PIC12C509, PIC16C84 e chips de memória com interface I2C são programados inserindo-os no conector conforme mostrado na figura acima.

Quando comecei a trabalhar com controladores PIC, naturalmente, a primeira coisa que surgiu foi a questão de escolher um programador. Como os programadores de marca não são baratos e, em geral, parecia antidesportivo comprar um programador, decidi montá-lo sozinho. Depois de navegar na Internet, baixei o diagrama do circuito e montei um programador JDM. Funcionou muito mal: ou carregou alguma porcaria, depois não carregou os primeiros bytes ou não carregou nada.

Uma desvantagem significativa do programador JDM é que ele não pode controlar a linha Vdd e, como resultado, não pode implementar o algoritmo correto de alimentação de tensão (primeiro Vpp, depois Vdd) durante a programação. Se o controlador estiver configurado desta forma: “Oscilador Interno”, “MCLR Off”, então se a sequência de alimentação de tensão estiver incorreta, ele primeiro inicializa e começa a executar o programa previamente programado nele, e depois entra em modo de programação (em neste caso, o ponteiro pode apontar para qualquer lugar, e não para o início da memória do programa). A este respeito: onde o seu programa será carregado e se ele será carregado é uma grande questão!

Tendo sofrido com o programador JDM, em um dos sites burgueses encontrei um diagrama de um programador no qual essas deficiências foram corrigidas. Eu ainda uso este programador até hoje e ofereço seu diagrama de circuito à sua atenção:

Um simples conversor de nível RS232->TTL é feito usando diodos D1...D4 e diodo zener D6. Quando a tensão nas linhas DATA e CLOCK for inferior a 0V, elas são puxadas para o terra através dos diodos D1, D2, e quando a tensão nestas linhas for superior a 5V, elas são puxadas através dos diodos D3, D4 para +5V. alimentação, que é definida pelo diodo zener D6.

Este dispositivo é alimentado diretamente pela porta COM. Os diodos e diodos zener neste circuito podem ser facilmente substituídos por outros domésticos: D814D, KS147A, etc.

Como é implementado o algoritmo correto de alimentação de tensão e de onde vem a tensão de programação de 13 Volts? Tudo é como sempre muito simples.

Quando a porta é inicializada, “-10V” trava na saída TxD. Neste caso, o capacitor C1 é carregado através do diodo zener D7 (que neste caso é ligado no sentido direto e funciona como um diodo). Aqueles. a tensão na perna positiva C1 em relação ao GND é zero, mas em relação a TxD = +10V (ou qualquer que seja a tensão na saída da porta COM).

Agora vamos imaginar o que acontece quando a tensão na saída TxD muda de -10V para +10V. Simultaneamente com o aumento da tensão no pino TxD, a tensão na perna positiva do capacitor C1 começará a aumentar. A carga não pode fluir para a terra através de D7, porque Agora o D7 está ligado novamente, a única forma é o vazamento pelo PIC, mas a corrente ali é insignificante. Assim, a tensão na perna positiva de C1 (e, conseqüentemente, no pino MCLR) começa a aumentar. No momento em que TxD é zero em relação ao terra, o capacitor C1 (em sua perna positiva e, portanto, MCLR) é +10V em relação ao terra. Quando TxD é +3V, C1 já é 3+10=13V. Só isso, a tensão Vpp já está aplicada, mas ainda resta apenas +3V na linha VDD.

Com um novo aumento na tensão em TxD, a tensão em C1 não aumenta, pois o diodo zener D7 começa a funcionar. Quando a tensão no TxD aumenta acima de +5V, o diodo zener D6 começa a funcionar.

Para limitar a corrente de descarga do capacitor C1 através do diodo zener D7, um resistor R6 é incluído no circuito, respectivamente, a tensão em C1 não é exatamente igual à tensão de estabilização, mas um pouco maior: UC1 = Ust + IRESR * R6; Para ajustar a tensão de programação, é utilizado o resistor R3. Você pode definir a variável para 10KOhm ou selecionar uma constante, para que a tensão de programação seja de aproximadamente 13 V (no dispositivo mostrado na figura abaixo R3 = 1,2 kOhm).

Programei controladores com sucesso e com este programador, porém, o autor afirmou que com este programador (na versão que apresentei) é possível programar , e . Além destes, no site do autor feng3.cool.ne.jp existem modificações de programador para outros controladores PIC.

Dispositivos prontos:


Opção de programador do Mixer:

O programa IC-prog 1.05D para controladores flash pode ser baixado na seção " ". Ao atualizar o firmware, selecione o tipo de programador JDM. Habilite o controle Vcc para JDM. Quando usado em conjunto com sistemas operacionais Windows 2000/NT/XP, selecione a interface API do Windows e ative a caixa de seleção "Ativar driver NT/2000/XP"; em outros casos, use a interface Direct I/O;


Outro. Senhores, por favor salvem os bits de calibração ao atualizar o firmware, ou então não reclamem que o gerador interno está instável/não funciona!!!

Você pode baixar a placa de circuito impresso (AutoCAD2000i) no link. PCB do Mixer (DipTrace 2.0) está disponível aqui

Programador de controlador USB PIC - 3,8 de 5 com base em 11 votos

Fotos do programador fornecidas por Ansagan Khasenov

Este artigo aborda os aspectos práticos da montagem de um programador USB simples para microcontroladores PIC, que possui o nome original GTP-USB (Grabador TodoPic-USB). Existe um modelo mais antigo deste programador GTP-USB plus que também suporta microcontroladores AVR, mas é oferecido por dinheiro. Não foram encontradas informações inequívocas sobre os circuitos e firmware do GTP-USB plus. Se você tiver informações sobre o GTP-USB plus, entre em contato comigo.

Então, GTP-USB. Este programador é montado em um microcontrolador PIC18F2550. GTP-USB não pode ser recomendado para iniciantes, porque... a montagem requer o flash do PIC18F2550 e requer um programador para isso. Um círculo vicioso, mas não tão vicioso que se torne um obstáculo à reunião.

Os elementos de indicação foram excluídos do circuito GTP-USB original para simplificar o design da placa de circuito impresso. O principal indicador é o monitor do seu computador, no qual você pode monitorar o processo de programação do programa WinPic800 versão 3.55G ou 3.55B.

Circuito GTP-USB leve.

As linhas de sinal Vpp1 e Vpp2 são definidas para microcontroladores em pacotes com diferentes números de pinos. A linha Vpp/ICSP é definida para programação em circuito. O resto das linhas são padrão.

O programador é montado em uma placa de circuito impresso unilateral.

O adaptador pode ser conectado sem problemas a qualquer outro programador de microcontrolador PIC, o que certamente é conveniente.

Após a montagem, ligamos pela primeira vez. Quando o GTP-USB é conectado ao PC pela primeira vez, aparece uma mensagem

Isso é seguido pelo prompt tradicional de instalação do driver. O driver está localizado no programa de controle do WinPic800 no caminho aproximado \WinPic800 3.55G\GTP-USB\Driver GTP-USB\.


Concordamos com os avisos e continuamos a instalação.

Prestando atenção. Este circuito programador e seu firmware foram testados na prática e funcionam com o programa de controle WinPic800 versões 3.55G e 3.55B. Versões mais antigas, por exemplo 3.63C, não funcionam com este programador. Configuramos o programa de controle: no menu Configurações - Hardware, selecione GTP-USB-#0 ou GTP-USB-#F1 e clique em Aplicar.

Clique no botão no painel e testar o equipamento. Como resultado do teste bem-sucedido, aparece uma mensagem (veja abaixo), que nos deixa felizes.

Este programador funcionou perfeitamente com os seguintes controladores (do que estava disponível): PIC12F675, PIC16F84A, PIC16F628A, PIC16F874A, PIC16F876A, PIC18F252. Teste de controladores, gravação e leitura de dados - concluído com sucesso. A velocidade do trabalho é impressionante. Leitura 1-2 seg. Gravação 3-5 seg. Nenhuma falha foi notada. Alguns dos MKs conectados foram testados em hardware - eles funcionam.


Então, nos decidimos e decidimos montar nosso primeiro produto caseiro em um microcontrolador, só falta entender como programá-lo. Portanto, precisaremos de um programador PIC, e você mesmo poderá montar seu circuito. Vejamos alguns projetos simples como exemplo;

O circuito permite programar microcontroladores e memória EEPROM I2C.

Lista de microcontroladores suportados, sujeitos a uso conjunto com o utilitário IC-PROG v1.05D:

Microcontroladores da Microchip: PIC12C508, PIC12C508A, PIC12C509, PIC12C509A, PIC12CE518, PIC12CE519, PIC12C671, PIC12C672, PIC12CE673, PIC12CE674, PIC12F629, PIC12F675, PIC16C433, PIC16C62A, PIC16C62B, PIC16C63, PIC16C63A, PIC16C64A, PIC16C65A, PIC16C65B, PIC16C66, PIC16C67, PIC16C71, PIC16C72, PIC16C72A, PIC16C73A, PIC16C73B, PIC16C74A, PIC16C74B, PIC16C76, PIC16C77, PIC16F72, PIC16F73, PIC16F74, PIC16F76, PIC16F77, PIC16C84, PIC16F83, 4, 6F84A, PIC16F88, PIC16C505*, PIC16C620, PIC16C620A, PIC16C621, PIC16C621A, PIC16C622, PIC16C622A, PIC16CE623 , PIC16CE624, PIC16CE625, PIC16F627, PIC16F628, PIC16F628A, PIC16F630*, PIC16F648A, PIC16F676*, PIC16C710, PIC16C711, PIC16C712, PIC16C715, PIC16C745, PIC16C765, PIC16C770*, PIC16C771*, PIC16C773, PIC16C774, PIC16C781*, PIC16C782*, PIC16F818 , PIC16F819, PIC16F870, PIC16F871, PIC16F872, PIC16F873, PIC16F873A, PIC16F874, PIC16F874A, PIC16F876, PIC16F876A, PIC16F877, PIC16C923*, , PIC18F242, PIC18F248, PIC18F252, PIC18F258, PIC18F442, PIC18F448, PIC18F452, PIC18F458, PIC18F1220, PIC18F1320, PIC18F2320 , PIC18F4320, PIC18F4539, PIC18F6620*, PIC18F6720*, PIC18F8620*, PIC18F8720*

Observação: os microcontroladores marcados com um asterisco (*) devem ser conectados ao programador através de um conector ICSP.

Memória serial EEPROM I2C(IIC): X24C01, 24C01A, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64, AT24C128, M24C128, AT24C256, M24C256, AT24C512.


Instale o microcircuito no soquete, observando rigorosamente a posição da chave. Conecte o cabo e ligue a energia. Inicie o programa IC-PROG. Selecione seu microcontrolador PIC na lista suspensa.

Se você não possui o firmware, faça-o: para isso, abra o programa padrão Bloco de Notas ou qualquer outro editor; insira o texto do firmware no documento; salve com qualquer nome com extensão *.txt ou *.hex.

Em seguida, no utilitário em Arquivo IC-PROG >> Abrir arquivo >> encontre nosso arquivo com o firmware. A janela “Código do Programa” deve ser preenchida com códigos diferentes.

Na janela do IC-PROG, clique em “Programar o chip” e o LED vermelho no diagrama do dispositivo acenderá. A programação leva aproximadamente 30 segundos. Para verificar, selecione - Comparar chip com buffer.

Você pode abrir uma versão alternativa do circuito programador EXTRA-PIC com uma placa de circuito impresso acabada no Sprint Layout usando o link verde acima.

O programador proposto é baseado em uma publicação da revista “Radio” nº 2, 2004, “Programming modern PIC16, PIC12 on PonyProg”. Este é o meu primeiro programador que usei para fazer flash de chips PIC em casa. O programador é uma versão simplificada do programador JDM, o circuito original possui um conversor RS-232 para TTL em forma de microcircuito MAX232, é mais universal, mas não dá para montá-lo “de joelhos”. Este circuito não possui nenhum componente ativo, não contém peças escassas e é muito simples, pode ser montado sem a utilização de placa de circuito impresso.

Arroz. 1: Diagrama esquemático do programador.

Descrição da operação do circuito
O circuito programador é mostrado na Fig. 1. Os resistores nos circuitos CLK (clocking), DATA (informação), Upp (tensão de programação) servem para limitar o fluxo de corrente. Os controladores PIC são protegidos contra quebra por diodos zener integrados, portanto, há alguma compatibilidade entre a lógica TTL e RS-232. O circuito apresentado contém diodos VD1, VD2, que “pegam” a tensão positiva da porta COM relativa ao pino 5 e a transferem para alimentar o controlador, graças ao qual em alguns casos é possível se livrar de uma fonte de alimentação adicional.

Configurando
Na prática nem sempre acontece que este programador funcione sem ajustes, na primeira tentativa, porque... A operação deste circuito é altamente dependente dos parâmetros da porta COM. Porém, para mim, em duas placas-mãe Gigabyte 8IPE1000 e WinFast no XP, tudo funcionou na hora. Se você tem preguiça de lidar com um circuito de programador mais complexo e quebrado, tente montar este. Aqui estão algumas coisas que podem afetar:

Quanto mais novo for o tapete. placa, os desenvolvedores prestam menos atenção a essas portas, porque elas se tornaram obsoletas há muito tempo. Você pode se livrar disso comprando um adaptador USB-COM, embora novamente o dispositivo adquirido possa não ser adequado. Os parâmetros necessários são os seguintes: a tensão variável deve variar pelo menos -10V a +10V (log. 0 e 1) em relação ao 5º pino do conector. A corrente fornecida deve ser pelo menos tal que quando um resistor de 2,7 kOhm for conectado entre o 5º contato e o contato em teste, a tensão não caia abaixo de 10V (eu mesmo não vi essas placas). Além disso, a porta deve determinar corretamente as tensões provenientes do controlador; em um nível de tensão próximo a 0V, mas não superior a 2V, zero é determinado e, consequentemente, em um nível de tensão acima de 2V, um é determinado.

Problemas também podem surgir devido ao software.
Isto é especialmente verdadeiro para o sistema operacional LINUX, porque... Devido à presença de emuladores como wine, VirtualBox, as portas podem não funcionar corretamente e muitos recursos são exigidos deles. Abordarei esses problemas com mais detalhes em outro artigo.

Conhecendo esses recursos, vamos começar a configurá-lo.
Para isso é muito desejável contar com o programa ICProg 1.05D.
No menu do programa, você deve primeiro selecionar a configuração apropriada nas configurações. porta (COM1. COM2), selecione programador JDM. Em seguida, abra a janela “Verificação de Hardware”, no menu “Configurações”. Neste menu, você precisa marcar as caixas uma por uma e usar um voltímetro para medir a tensão nos contatos do conector conectado. Se os parâmetros de tensão não corresponderem à norma, então, infelizmente, isso pode ser a causa da inoperabilidade, então será necessário montar um circuito com conversor RS-232 TTL. Depois de marcar todas as caixas, você precisa ter certeza de que uma tensão de alimentação de cerca de 5V é gerada no diodo zener. Se as tensões estiverem normais e não houver erros de instalação, tudo deverá funcionar. Colocamos o controlador no soquete, abrimos o firmware, programamos. Não há necessidade de ativar caixas de seleção como “Inverter saída de dados” (todas estão desmarcadas). Além disso, não se esqueça que alguns lotes de controladores podem ter parâmetros fora do padrão, e não é possível atualizá-los nesses casos, com este programador você só pode tentar reduzir a tensão de alimentação de 5V para 3-4V; conectando adequadamente. diodo zener, observe o controlador para ativação errônea do modo LVP (programação de baixa tensão), como evitá-lo, você pode ler na Internet para um tipo específico de controlador. Provavelmente é possível aumentar a tensão de programação do controlador problemático apenas complicando o circuito introduzindo um estágio de amplificação com um emissor comum, alimentado por uma fonte de energia adicional.

Agora vamos falar mais sobre o problema com a fonte de alimentação do aparelho. O programador foi testado com programas ICProg e console picprog no Linux, deve funcionar com qualquer um que suporte JDM se você conectar uma fonte de alimentação adicional (ela é conectada através de um resistor de 1 kOhm ao diodo zener, diodos com resistores neste caso podem ser completamente excluído). O fato é que os algoritmos de controle do programador para software individual são diferentes, o programa ICProg é o mais despretensioso. Percebeu-se que no sistema operacional Windows este programa elevou a tensão de alimentação necessária no pino 2 não utilizado, o mesmo programa do emulador no Linux para outro tapete. A placa não era mais capaz de fazer isso, mas foi encontrada uma saída retirando energia da tensão de programação. Em geral, acho que você pode usar este programador com ICProg sem energia adicional. Com outros softwares isso dificilmente pode ser garantido, por exemplo, o picprog “nativo” dos repositórios Ubuntu sem alimentação simplesmente não detecta o programador, exibindo a mensagem “Hardware JDM não encontrado”. Provavelmente ele recebe alguns dados sem aplicar a tensão de programação ou o faz muito rapidamente, de modo que o capacitor do filtro ainda não tem tempo de carregar.