Conheça o Open Programmer — Programador Open Source USB para Microntroladores PIC PIC10-12-16-18-24, dsPIC30-33, EEPROMs tipo 24xxxx (I2C), 25xxx (SPI), 93xx6 (MicroWire), DS24xx (OneWire), 11xxx (UNIO), alguns micro ATMEL micros, comunica com dispositvos I₂C & SPI genéricos. Software para Linux e Windows, incluindo código-fonte do Software e firmware do gravador!
Dica do amigo Roger, deste Multi programador USB, compatível com microcontroladores e PIC e muitos outros dispositivos.
Sobre o Programador – Open Programmer
- Totalmente gratuito e de código aberto (incluindo o firmware)
- Programa PIC10-12-16-18-24, dsPIC30-33, EEPROMs tipo 24xxxx (I₂C), 25xxx (SPI), 93xx6 (MicroWire), DS24xx (OneWire), 11xxx (UNIO), alguns micro ATMEL micros, comunica com dispositvos I₂C & SPI genéricos.
- PPode funcionar como depurador ICD
- Interface USB 2.0 Full Speed, HID classe (mesmo como teclados, mouses, etc.)
- Auto-alimentado via USB
- Não precisa de drivers
- Construção baseada em componentes fáceis de encontrar no mercado.
- Hardware de alta velocidade e confiança (grava um 18F2550 em 15s, 8s no Linux)
- Não satura sua CPU e não trava quando executado junto com outros programas.
- Software de controle de código aberto para Linux e Windows
- Não é outro clone do PICkit
Nos últimos anos, as interfaces seriais e paralelas quase desapareceram, entusiastas de eletrônica ainda encontram dificuldade para programar seus microcontroladores; programadores dos tempos antigos não funcionam mais; soluções comuns incluem o uso de adaptadores USB para serial (que não aceitam acesso direto, mas apenas as chamadas de API lentos), ou chips de interface, como FTDIxxxx, que aparecem substancialmente como interfaces seriais e exigem drivers personalizados ou proprietários.
Então, porque não usar controladores PIC e sua interface USB nativa?
Após pesquisar um pouco eu não poderia encontrar um programador USB, que era em simultâneo, fonte funcional, livre e aberto, então eu decidi projetar um. Open source significa que todas as fontes e esquemas são dadas gratuitamente, com os direitos de modificar e liberá-los.
Interface gráfica do Open Programmer para Windows (v0.8.0)
OpenProg é um aplicativo C++ escrito com o Visual C + + 6 e MFC.
Usá-lo é simples: basta ligar o programador, inicie o aplicativo, selecione o dispositivo, carregar um arquivo hex e ler ou escrever; funciona com o XP, o bloatware V, 7.
Na guia “Dispositivo” é possível modificar algumas opções de programação, tais como identificação e gravação de calibração, uso de eeprom, etc.; apenas as configurações compatíveis com o dispositivo atual será usado.
O “I₂C/SPI” guia é útil para comunicar com dispositivos genéricos I₂C e SPI, em caso de I₂C é sempre necessário especificar o byte de controle (e endereço, se não for zero); pouco RW é feita automaticamente.
Não inclui um instalador já que não há nenhuma biblioteca e o executável é muito pequena.
Ele aceita arquivos hex8 e hex32, e também do binário no caso de memória serial.
Os idiomas suportados são atualmente Inglês e Italiano, para adicionar outros idiomas é necessário para gerar o arquivo languages.rc (do guia “Opções”) e para modificá-lo, o nome do idioma é antes de as strings respectivas entre colchetes [].
Utilizando o “Hardware Test” função e um voltímetro é possível verificar se o circuito está funcionando.
Em caso de problemas ou apenas por curiosidade, é possível salvar todos os dados trocados com o programador selecionar “salvar arquivo de log” da guia “Opções”.
GTK interface gráfica do Open Programmer para Windows e Linux (v0.8.0)
Finalmente, após anos de espera, uma interface gráfica para Linux! Ele é construído usando as bibliotecas GTK e parece mais ou menos como o outro.
A partir da versão 0.7.10 inclui um depurador ICD, trabalhando mais ou menos como pdb, além disso, ele suporta arquivos COFF.
Para usá-lo no Windows, é necessário instalar a GTK Runtime Environment.
Lista Dispositivos suportados pelo Open Programmer na versão atual
O programador foi testado com um pequeno número de dispositivos (os que o autor possuía e mais alguns testado por outros usuários) indicado em negrito, os outros dispositivos são suportados, mas não testado, no entanto, considerando que para cada família pelo menos um dispositivo foi verificado, todos deles deve funcionar sem problemas.
Por favor, deixe-me saber se você verificar a operação com os dispositivos testados.
Também contactar-me se você precisar de outros algoritmos ou entes do novo código por si mesmo.
Tome nota:
PICs da série LF são utilizados exatamente como os F;
Dispositivos Atmel AVR com sufixos vários são agrupados sempre que o algoritmo de programação é exatamente o mesmo, por exemplo. ATmega8 e ATmega8A;
Memórias EEPROM compreendem todas as versões com VDDmax = 5V, por exemplo. 242LC56, 24AA256, etc;
Memórias 93x usam 2 diferentes algoritmos, para a série 93S e para todos os outros, indicados por 93x (93xA tem 8bit).
Dispositivos suportados para leitura e escrita
10F200, 10F202, 10F204, 10F206, 10F220, 10F222,
12C508, 12C508A, 12F508, 12C509, 12C509A, 12F509, 12F510, 12F519, 12F609, 12F615, 12F617, 12F629, 12F635, 12F675, 12F683,
12F1501,12F1822, 12F1840,
16F505, 16F506, 16F526, 16F54, 16F610, 16F616, 16F627, 16F627A, 16F628, 16F628A, 16F630, 16F631, 16F636, 16F639, 16F648A, 16F676, 16F677, 16F684, 16F685, 16F687, 16F688, 16F689, 16F690, 16F707, 16F716, 16F72, 16F720, 16F721, 16F722, 16F722A, 16F723, 16F723A, 16F724, 16F726, 16F727, 16F73, 16F737, 16F74, 16F747, 16F76, 16F767, 16F77, 16F777, 16F785, 16F818, 16F819, 16F83, 16F83A, 16C83, 16C83A, 16F84, 16C84, 16F84A, 16C84A, 16F87, 16F870, 16F871, 16F872, 16F873, 16F873A, 16F874, 16F874A, 16F876, 16F876A, 16F877, 16F877A, 16F88, 16F882, 16F883, 16F884, 16F886, 16F887, 16F913, 16F914, 16F916, 16F917, 16F946,
16F1503, 16F1507, 16F1508, 16F1509, 16F1516, 16F1517, 16F1518, 16F1519, 16F1526, 16F1527, 16F1823, 16F1824, 16F1825, 16F1826, 16F1827, 16F1828, 16F1829, 16F1847, 16LF1902, 16LF1903, 16LF1904, 16LF1906, 16LF1907, 16F1933, 16F1934, 16F1936, 16F1937, 16F1938, 16F1939, 16F1946, 16F1947,
18F242, 18F248, 18F252, 18F258, 18F442, 18F448, 18F452, 18F458, 18F1220, 18F1230, 18F1320, 18F1330, 18F13K22, 18F13K50, 18F14K22, 18F14K50, 18F2220, 18F2221, 18F2320, 18F23K20, 18F23K22, 18F2321, 18F2331, 18F2410, 18F24J10, 18F24J11, 18F2420, 18F24K20, 18F24K22, 18F2423, 18F2431, 18F2439, 18F2450, 18F24J50, 18F2455, 18F2458, 18F2480, 18F2510, 18F25J10, 18F25J11, 18F2515, 18F2520, 18F25K20, 18F25K22, 18F2523, 18F2525, 18F2539, 18F2550, 18F25J50, 18F2553, 18F2580, 18F2585, 18F2610, 18F26J11, 18F26J13, 18F2620, 18F26K20, 18F26K22, 18F26J50, 18F26J53, 18F2680, 18F2682, 18F2685, 18F27J13, 18F27J53, 18F4220, 18F4221, 18F4320, 18F43K20, 18F43K22, 18F4321, 18F4331, 18F4410, 18F44J10, 18F44J11, 18F4420, 18F44K20, 18F44K22, 18F4423, 18F4431, 18F4439, 18F4450, 18F44J50, 18F4455, 18F4458, 18F4480, 18F4510, 18F45J10, 18F45J11, 18F4515, 18F4520, 18F45K20, 18F45K22, 18F4523, 18F4525, 18F4539, 18F4550, 18F45J50, 18F4553, 18F4580, 18F4585, 18F4610, 18F46J11, 18F46J13, 18F4620, 18F46K20, 18F46K22, 18F46J50, 18F46J53, 18F4680, 18F4682, 18F4685, 18F47J13, 18F47J53, 18F66J60, 18F66J65, 18F67J60, 18F8520, 18F8722, 18F86J60, 18F86J65, 18F87J60, 18F96J60, 18F96J65, 18F97J60,
24F04KA200, 24F04KA201, 24F08KA101, 24F08KA102, 24F16KA101, 24F16KA102, 24FJ16GA002, 24FJ16GA004, 24FJ32GA002, 24FJ32GA004, 24FJ48GA002, 24FJ48GA004, 24FJ64GA002, 24FJ64GA004, 24FJ64GA006, 24FJ64GA008, 24FJ64GA010, 24FJ96GA006, 24FJ96GA008, 24FJ96GA010, 24FJ128GA006, 24FJ128GA008, 24FJ128GA010, 24FJ32GA102, 24FJ32GA104, 24FJ32GB002, 24FJ32GB004, 24FJ64GA102, 24FJ64GA104, 24FJ64GB002, 24FJ64GB004, 24FJ64GB106, 24FJ64GB108, 24FJ64GB110, 24FJ128GA106, 24FJ128GB106, 24FJ128GA108, 24FJ128GB108, 24FJ128GA110, 24FJ128GB110, 24FJ192GA106, 24FJ192GB106, 24FJ192GA108, 24FJ192GB108, 24FJ192GA110, 24FJ192GB110, 24FJ256GA106, 24FJ256GB106, 24FJ256GA108, 24FJ256GB108, 24FJ256GA110, 24FJ256GB110, 24HJ12GP201, 24HJ12GP202, 24HJ16GP304, 24HJ32GP202, 24HJ32GP204, 24HJ32GP302, 24HJ32GP304, 24HJ64GP202, 24HJ64GP204, 24HJ64GP206, 24HJ64GP210, 24HJ64GP502, 24HJ64GP504, 24HJ64GP506, 24HJ64GP510, 24HJ128GP202, 24HJ128GP204, 24HJ128GP206, 24HJ128GP210, 24HJ128GP306, 24HJ128GP310, 24HJ128GP502, 24HJ128GP504, 24HJ128GP506, 24HJ128GP510, 24HJ256GP206, 24HJ256GP210, 24HJ256GP610,
30F1010, 30F2010, 30F2011, 30F2020, 30F2023, 30F2012, 30F3010, 30F3011, 30F3012, 30F3013, 30F3014, 30F4011, 30F4012, 30F4013, 30F5011, 30F5013, 30F5015, 30F5016, 30F6010, 30F6011, 30F6012, 30F6013, 30F6014, 30F6015,
33FJ06GS101, 33FJ06GS102, 33FJ06GS202, 33FJ12GP201, 33FJ12GP202, 33FJ12MC201, 33FJ12MC202, 33FJ16GP304, 33FJ16GS402, 33FJ16GS404, 33FJ16GS502, 33FJ16GS504, 33FJ16MC304, 33FJ32GP202, 33FJ32GP204, 33FJ32GP302, 33FJ32GP304, 33FJ32GS406, 33FJ32GS606, 33FJ32GS608, 33FJ32GS610, 33FJ32MC202, 33FJ32MC204, 33FJ32MC302, 33FJ32MC304, 33FJ64GP202, 33FJ64GP204, 33FJ64GP206, 33FJ64GP306, 33FJ64GP310, 33FJ64GP706, 33FJ64GP708, 33FJ64GP710, 33FJ64GP802, 33FJ64GP804, 33FJ64GS406, 33FJ64GS606, 33FJ64GS608, 33FJ64GS610, 33FJ64MC202, 33FJ64MC204, 33FJ64MC506, 33FJ64MC508, 33FJ64MC510, 33FJ64MC706, 33FJ64MC710, 33FJ64MC802, 33FJ64MC804, 33FJ128GP202, 33FJ128GP204, 33FJ128GP206, 33FJ128GP306, 33FJ128GP310, 33FJ128GP706, 33FJ128GP708, 33FJ128GP710, 33FJ128GP802, 33FJ128GP804, 33FJ128MC202, 33FJ128MC204, 33FJ128MC506, 33FJ128MC510, 33FJ128MC706, 33FJ128MC708, 33FJ128MC710, 33FJ128MC802, 33FJ128MC804, 33FJ256GP506, 33FJ256GP510, 33FJ256GP710, 33FJ256MC510, 33FJ256MC710,
2400, 2401, 2402, 2404, 2408, 2416, 2432, 2464, 24128, 24256, 24512, 241024, 241025,
25010, 25020, 25040, 25080, 25160, 25320, 25640, 25128, 25256, 25512, 251024, 251005, 252005, 254005, 258005, 251605, 25X10, 25X20, 25X40, 25X80,
93S46, 93×46, 93x46A, 93S56, 93×56, 93x56A, 93S66, 93×66, 93x66A, 93×76, 93x76A, 93×86, 93x86A,
AT90S1200, AT90S2313, AT90S8515, AT90S8535, ATmega48, ATmega8, ATmega88, ATmega8515, ATmega8535, ATmega16, ATmega164A, ATmega168, ATmega32, ATmega324A, ATmega328, ATmega64, ATmega644A, ATmega1284,
ATtiny12, ATtiny13, ATtiny24, ATtiny26, ATtiny261, ATtiny2313, ATtiny44, ATtiny48, ATtiny461, ATtiny4313, ATtiny84, ATtiny88, ATtiny861,
DS2430,DS2431,DS2433,DS28EC20,DS1820,
11010,11020,11040,11080,11160
Dispositivos suportados somente para leitura:
12C671, 12C672, 12CE673, 12CE674
Importante!
Não utilize dispositivos 3.3V sem as placas de expansão de 3,3 V, caso contrário, podem ocorrer danos permanentes, o software verifica que adaptadores estão presentes antes de começar a programar, mas, obviamente, você precisa selecionar o dispositivo adequado, os dispositivos de 3.3V são:
16F1xxx,18FxxJxx,18FxxKxx,24Fxxx,24Hxxx,33Fxxx.
Também não coloque nenhum 24F-33F no soquete 30F, que funciona em 5V.
O circuito (v1.7)
O projeto é baseado em 28 18F2550 DIP de 28 Pinos, mas apenas cerca de um terço da memória e 0% de eeprom foi usado, por isso caberá confortavelmente na pequena 2455.
O 2458 e 2553 tem um de ADC de 12 bits, portanto, apenas a recompilação é necessária.
Com algumas modificações o código foi adptado para o 2450. Já que este modelo não tem o módulo MSSP eu usei uma implementação de software de I2C e SPI, que também não tem o segundo canal de PWM, portanto, não pode gerar o clock para chips Atmel (para aqueles que são configurados com clock externo), neste caso RB3 pode ser usado para ligar um oscilador externo (o qual deve ser inserido numa placa de expansão modificado Atmel).
A utilização dos dispositivos correspondentes de 40 pinos 40 (4450, 4455, 4458, 4550, 4553) requer a modificação da PCB.
A fim de implementar um periférico USB com um micro PIC temos poucos componentes: o microcontrolador principal, um cristal de quartzo, alguns capacitores, e um conector USB tipo B, exatamente como está escrito nas notas de aplicação de Microchip.
Para conseguir programar dispositivos PIC precisamos duas linhas digitais Clock e Data, e duas tensões de alimentação, VCC e VPP, controladas através de três transistores; VPP vem a partir de um regulador de tensão de ativação formado por Q4, L1, D3.
Download dos arquivos do gravador Open Programmer
Esquemas e Placa de circuito impresso: complete archive.
Firmware: Projeto completo MPLAB ou firmware Compilado (.hex) ou uma versão para 18F2450 (com funcionalidade reduzida, veja o circuito).
OP (Linha de comando para Linux & Windows)
OpenProg (windows): somente executável; Código fonte (Visual Studio 6 workspace)
opgui (GTK GUI para Linux & Windows): Código fonte ou aplicação
OpenProg e Opgui user’s guide
Octave scripts
Para informações adicionais visite o site do desenvolvedor!
Ola Toni,
Preciso copiar e gravar em um DS28E15, com seu projeto é possível?
Olá Marcos
Não está na lista.
A empresa http://www.recoveryic.com.br, consegue fazer a engenharia reversa e extrair o arquivo. hex
Ola Toni, como faço para programar o chip Matrix spi programer com xflash para o Auto gg reconheça ele? Obrigado. Mario.
Olá Mario
Desculpe não entendi!
Ola Toni, desculpe-me por não explicar com mais detalhes, primeiramente, eu tenho uma imensa vontade de aprender logica, criar pequenos projetos de comando para circuitos analógicos, estes eu domino bem, desenvolvo e até comercializo, como por exemplo um que tem o nome criado por mim: SUPER 360ALL, é Leitor e gravador de dados na placa de xbox 360 todos s modelos, isso para desbloquear a proteção permitindo a reprodução de jogos gravados em mídias comuns (roxa). Essa minha ferramenta tem três chaves mecânica H H que fazem chaveamentos de um Leitor SD MMC genérico e um Leitor S.P.I JR PROGRAMMER, os dois encontrados já prontos, no mercado de peças, e adaptados por mim para o uso nos xbox 360, (detalhes no meu site: http://www.cursos-wr.com). Mas o que quero é, ir mais fundo, desenvolver projetos com software, aprender sobre: PICs, Vejo que no seu site tem um belo trabalho seu, rico em informações sobre circuitos logico e tudo grátis, mas eu gostaria de ter informações tipo: o que devo aprender primeiro para entrar na área e desenvolver pequenos projetos que por exemplo:substitua as partes mecânicas como as chaves seletoras da minha ferramenta etc. sei que existe chaves analógica de estado solido, preciso saber como usa-la para fazer chaveamento de sinais (dados) aprender sobre os diversos tipos de portas e qual usar para um determinado projeto. Acho que são muitas coisas mas queria começar com o básico da parte logica, ficarei grato se puder contar com a sua ajuda, me coloco a disposição para ajudar também no que eu puder. Obrigado. Mario. Lúcio.
Olá Mario
Verifiquei em seu site a ferramenta!
Se quer aprender sobre microcontroladores, sugiro que comece com eletrônica digital e lógica de programação. Não é nada difícil, só dedicar e alcançará seus objetivos!
Sobre trabalho com consoles, tem um amigo no Facebook que também está trabalhador nesta área, inclusive investindo em equipamentos para BGA!
Quem sabe não podem compartilhar informações!
Obrigado Toni, pela resposta, você pode me indicar um curso de eletrônica digital? encontro curso completo na net? Quanto a compartilhar sobre técnicas aplicadas em games com seu amigo do face, como eu disse estou a disposição para o que precisar. meu face é: [email protected] Mario Lúcio de Paula e page: WR Projetos. Obrigado. Mario.
toni boa noite eu estou buscando um projeto que me permita pegar chips de impressoras que já estejam usados e sem contagem de impressão e regravar seus dados e reutilizar os mesmos sempre que for recarregar os cartuchos da minha impressora scx 3200, D 104k sabe se tem um projeto que me permita fazer isso.
Olá Marcos
Tenho algo do tipo, vou postar!
Olá Toni!
Estou querendo montar um gravador de pic e gostaria de ter a sua opnião, se é este gravador ou o USBPICPROG que dá suporte em gravação a um maior número de PIC?
Vejo que este tem a placa principal e várias placas de expansão.
Não há nada que substitua a placa de expansão utilizando por exemplo o soquete zif 40 pinos?
O USBPICPROG usa na sua placa de expansão soquete zif 40 pinos?
Olá Nivaldo
Este grava PIC e outros o USBPICPROG somente PIC e memória 24xx. Pode criar um layout para utilizar soquete ZIF!
Você tem indicação de algum layout de soquete ZIF 40 pinos para este gravador?
Olá Nivaldo
Tem as opções de layout, só editar!
boa-tarde toni como diz Fritz e para quem e lego no assunto precisa de ajuda eu lir todos os comentarios creio que entendi quase tudo mais não entendi quais os dados que eu vou colocar dentro deste ci pic ex. eu como tecnico copio es dados de uma eprom para outra do tipo 24xx mais onde eu acho os dados para esse pic por favor vc ou alguns colega podem mim informa onde posso encontro ou quais os algarismo que devo colocar neste pic obrigado
Olá Senilson
Então temos um dilema neh, para ter o gravador temos de gravar o microcontrolador que irá funcionar o gravador…
Então o Firmware que precisamos está neste arquivo:
http://sourceforge.net/projects/openprogrammer/files/Firmware/OProg_v0.8.0.hex
O gravador pode montar um deste no link abaixo e gravar seu 18F2550:
Dá pra montar até na protoboard
Ou pode comprar o PIC no Mercado Livre de algum vendedor que possa gravar o Microcontrolador pra você!
BOM DIA A TODOS QUERO SABER DOS AMIGOS SE ESTE CI PIC 18F2550 JÁ VEM GRAVADO SE NÃO COMO FAÇO PARA GRAVA OBRIGADO AO TONI
Olá SENILSON, precisa gravar!
Campeao o meu gravei via porta paralela usando do esquema que o Toni postou no site funcionou perfeito, se ainda nao comprou procura no ML alguns vendedores costumam vender o Chip e tbm se oferecem a gravar, porem se voce que fazer do zero pode fazer o gravador inicial este com a imagem do site …
Olá, fiquei interessado em montar este gravador de PIC, gostaria de terinar o pouco que aprendi em programação, porem não tenho nenhum gravador e para gravar o firmeware hex no 18F2550 eu precisaria de um gravador prévio certo??? Caso sim, teria algum gracador mais rudimentar que poderia montar sem necessitar a gravação de um PIC?
Olá Fernando
Este daqui para porta paralela!
Boa noite toni, gostaria de saber se esse projeto precisa do uso de uma memória em serie com o pic, pois o PIC 18F2550 já tem EPROM interna e sobre os componentes das outras placas pois só tem os componentes do gravador.
Olá Joel
Aqui:
http://sourceforge.net/projects/openprogrammer/files/Schematics/schem_1.7.1.zip
Toni,
E os adaptadores para outras memorias quais sao os componentes necessarios, pois vejo que algumas placas tem reguladores e outras capacitores .!
Olá Enrique
Aqui tem todos os esquemas e das placas:
http://sourceforge.net/projects/openprogrammer/files/Schematics/schem_1.7.1.zip
Belo projeto amigo,gostaria de saber onde encontro esse programador para compra,pois nao tenho tempo e nem habilidade para montar um.
Olá Rogerio
Para gravar PICS, procure por PICkit 2 no MercadoLivre! Tem uns clones de boa qualidade e irá custar cerca de R$ 80,00!
oi da para grava bios de placa mae ?
Olá José
Somente estes itens da lista!
Prezado Toni,
Parabéns pelo site!
Pode parecer besteira, mas creio que minha dúvida é a mesma de muitos!
Ao fazer um Programador de Chips como este, como fazer para gravar o firmware nicial do chip responsável por todo o gravador? Neste caso, como gravar o firmware do circuito no PIC 18F2550?
Nota: tomando como base que eu não tenho qualquer gravador de PICs até o momento.
Desde já, agradeço!
Fritz
Olá Fritz
Obrigado pelo feedback!
Isso, sim é um dúvida de todos com certeza!
Nesse caso utilizamos um gravador para porta serial ou paralela, que pode ser montado até mesmo na protoboard e servirá para a função!
Veja este
Olá Toni,
Agradeço pela sua atenção. Gravando o primeiro chip para poder montar este Gravador de Código Aberto, poderei começar a colaborar com o site, enviando projetos.
Desejo-lhe muito sucesso!
Fritz
Olá Fritz
Conseguiu gravar?
Obrigado pelo feedback!
eu quero aprende a programa.
Olá Rafel
Tem bons material inclusive gratuitos para auxiliar no estudo!