Last Update Pic Ingles

  • Upload
    carlos

  • View
    328

  • Download
    1

Embed Size (px)

DESCRIPTION

ingles

Citation preview

ltima atualizao: 30 de novembro de 2014Verso italianaAbrir o programador v0.9.xUm USB da fonte aberta ao programador ser mcrons do PIC, mcrons de ATMEL, I2C-SPI-MicroWire-OneWire-UNIO EEPROMs, dispositivos genricos de I2C/SPI e (logo) a outros dispositivos

Fatos rpidosOutros ao programador?USB & firmware ESCONDIDOSProgramas de verificaoRelao grfica de GTKRelao grfica do MFCComando-linha relaoComo vocDispositivos suportadosProtocolo de comunicaoO circuitoTenso do reguladorComo voc contribuiTransfernciaHistriaLigaesContatosFatos rpidos1. Livrar completamente e Open Source (firmware including)1. Os programas PIC10-12-16-18-24, dsPIC30-33, ATMEL AVR (srie de srie e alta tenso que programam), tipo de srie 24xxxx de EEPROMs (I2C), 25xxx (SPI), 93xx6 (MicroWire), DS24xx (OneWire), 11xxx (o UNIO), comunicam-se com os dispositivos genricos de I2C & de SPI (ver dispositivos suportados)1. Pode trabalhar o ICD ao depurador de programas1. Relao da velocidade cheia do USB 2.0, classe ESCONDIDA (os mesmos teclados, ratos, etc.)1. Auto - psto1. No precisa excitadores1. Construdo de fcil voc encontra componentes (custo estimado ~10)1. Os sincronismos gerados ferragem sero velocidade mxima e confiabilidade (escreve 18F2550 em 15s)1. No satura seu processador central e no sofre quando ao outro funcionamento dos arados dos programas1. Os programas de verificao da fonte aberta sero linux e Windows1. No um outro clone de PicKit

Retrato do prottipo:

Outros ao programador?Nos ltimos anos, as relaes de srie e paralelas desapareceram quase, entusiastas da eletrnica encontram mesmo vidas difceis voc microcontroladores do programa; os programadores velhos das equipes no trabalham nenhuma vidas; as solues comuns incluem-no using o USB os adaptadores de srie (que no podem aceitar o acesso direto mas somente chamadas lentas do API), ou as microplaquetas do servio adicional conetam, como FTDIxxxx, que para parecer substancialmente de srie as relaes e para exigir excitadores feitos sob encomenda ou proprietrios. Por que usa no somente controladores do PIC e a sua relao nativa do USB?Aps a pesquisa quando eu no poderia encontrar um USB ao programador que estava nas mesmas equipes funcionais, livres, e na fonte aberta, simplesmente eu o decidi o projeto um.A fonte aberta significa que todas as fontes e diagramas esquemticos aram dado free of charge com as direitas que voc as modifica e libera. USB & firmware ESCONDIDOS (v0.9.0)Em requisit-lo usa a relao do USB includa dentro adiciona dispositivos que do PIC ns precisamos o firmware que executa uma das salas de aula definidas pelo consrcio ou pelo novo do USB; Eu opted serei a classe ESCONDIDA, que suportada nativa por todos os sistemas de explorao e no precisa alguns somente ao excitador. A velocidade reservada mximo 64KB/s, embora com minha aplicao eu mea algo nos creaks 20-40 KB/s, certamente bastante voc dispositivos de programa com memria de 100KB no mximo.Como todo o USB este os dispositivos um tm demasiado o vid e o pid; estes arados obtiveram geralmente ao pagamento inferior, mas desde que eu no tenho nenhum dinheiro que voc desperdiar e eu no estou vendendo o produto comercial eu usei o vid do microchip do defeito e o pid da escolha: 0x4D8&0x100; em todo o caso possvel voc configura ambos, mim deixa-o escolha somente ao usurio.Ao programador parece voc o sistema um dispositivo ESCONDIDO que troque 64 pacotes dos bytes cada 1 Senhora.Os firmware que do USB voc come quase do projeto da fonte aberta do desconhecido, escrito por Alexander Enzmann, que eu o modifiquei e adaptei o MCC18 ao compilador.Eu escrevi o breve guia em como voc o usa; voc meu conhecimento isto a nica licena dos firmware da fonte aberta com sustentao e GPL ESCONDIDOS.Meu ao cdigo do programador adiciona simplesmente o comando ao intrprete que conduz as sadas do microcontrolador que concordam o um jogo das instrues.As esperas principais do ciclo de controle sero pacote do USB, a seguir executam comandos em ordem ao controlar a tarefa de comunicao; nas mesmas equipes a funo de controle chamada peridicamente perto interrupo de temporizador e mantem o regulador a constante da tenso da sada de DCDC.Construir o projeto exige somente programas livres: Verso do estudante MPLAB e MCC18, que os arados infelizmente somente disponveis sero o sistema de explorao das janelas (dentro). certamente possvel voc compila com SDCC, mas adiciona os arados das mudanas necessrios voc o cdigo fonte.Tudo dado sob a licena GPL2. aqui termina o projeto de MPLAB, aqui a lima hex somente.Aqui a verso (0.8.0) ser 18F2450 (com funcionalidade reduzida, ver o circuito).

Programas de verificaoEu inicialmente pensei de modificar um software existente, serei exemplo winpic ou picprog, mas eu encontrei que seria demasiado difcil porque os usos de I packetized comunicaes em vez da srie; somente eu tive-o a escrita uma (two) do risco.Infelizmente, ou felizmente, desde que eu no sou o profissional ao programador eu mantive caratersticas no mnimo; o resultado ara muito pequeno mas os programas rpidos que no fazem usos seu processador central no sero nada.A vontade seja a maioria de cdigo de dispositivos verific ao programar; outro ser imediatamente depois a fase da escrita.Idealmente voc deve ter a mesma verso a numerar ser software e os firmware, exceto sero o ltimo a numerar que indica mudanas menores e reparos de erro; entretanto ao tentei-euo sustento o mesmo protocolo com cada liberao, isso aparte das caratersticas novas frequentemente possvel voc usa somente o software novo com a voltas mais velhas dos firmware e do vcio.No casa-o para querer saber, a razo pela qual no possvel que voc o programa diretamente tcnico de MPLAB no est: Microchip voc doa no especificaes da liberao de como voc a relao com seu programa; se voc os quer voc manda-o ser o anncio publicitrio ao fabricante e assinar no o acordo da divulgao, que claramente impossvel ser o projeto da fonte GPL2 aberta.No contrrio, a integrao com Piklab possvel e eu espero serei feito logo; agora o costume ao programador que a relao falta adiciona parmetros essenciais, mas a quem quer que tem a habilidade e as equipes podem repar-la sero certas.Um linux de Windows e o do ser de de GTK do grfica do relao (v0.9.1)Voc EUA de OPGUI como bibliotecas de GTK um ambiente Tempo de execuo de GTK do instala o do voc do necessrio do do que de Windows do soluo do somente.Screenshot de Opgui:

Um guia rpido: as teclas a ler, escrever, carregar e exceptolimas esto na barra de ferramentas.A aba dos dados mostra o que o programador est fazendo.Na aba do dispositivo possvel escolher o dispositivo e modificar algumas opes de programao, tais como palavras da identificao da escrita e da calibrao, using o eeprom etc.; somente os ajustes compatveis com o dispositivo atual so considerados.Sob opes esto os vrios ajustes gerais: Conexo do USB, erros, lima de registro, placas de expanso; using da a funo do testeferragem e um voltmetro possvel para certific do circuito esteja funcionando.A aba de I2C/SPI til para comunicar-se com os dispositivos genricos de I2C e de SPI; em caso de I2C sempre necessrio especific o byte de controle (e endereo, se no zero); O bocado do RW segurado automaticamente.Por exemplo, para escrever manualmente 3 bytes em um 24xx16 no endereo 64 escrever: A0 40 1 2 3Da verso 0.7.10 includo um depurador de programas de ICD, trabalhando mais ou menos como o pdb; alm suporta limas do coff.A aba do I/O reserva controlar linhas individuais do I/O e as fontes de alimentao.Sob a utilidade h umas funes para converter uma nica linha hex aos dados e reciprocamente.No h nenhum instalador desde que no h nenhuma bibliotecas e o executvel muito pequeno.O programa aceita as limas hex8 e hex32, e igualmente limas binrias em caso das memrias de srie.As lnguas suportadas so atualmente ingleses e italiano; para adicionar outras lnguas necessrio gerar a lima de languages.rc (- opo langfile) e modific-la; a identificao de lngua antes das cordas respetivas, incluidas nos suportes quadrados [].A lngua escolhida na partida combinando a lngua de sistema (pode igualmente ser forada com - lang).Para permitir o acesso ao programador sob o linux ver a linha relao do comando do captulo.Voc pode encontrar mais informao guia de usurio de OpenProg e de OpguiPara compilar o programa da fonte voc (opcional) que precisa de instalar as bibliotecas de GTK, do GCC e dos maketools (MinGW/MSYS em Windows); escrever ento:> fazerPara instal-lo sob o linux (se voc desejo):> fazer para instalarTransferir o programa compilado ou as fontes.Relao grfica para Windows (v0.9.1)OpenProg aplicao da A.A. ++ escrita com Visual C++ 6 e MFC.Um screenshot de OpenProg:

Somente as funes de programao bsicas so executadas; era o GUI do punho do projeto, mas atualmente o desenvolvimento continua em OPGUI, assim que pode ser demitido no futuro.Tem a vantagem do trabalho sem nenhuma biblioteca adicional.O uso o mesmo que OPGUI; trabalhos com XP, VISTA, 7, 8.a Comando-linha opes :- o de d, seleciona um alvo- r < nome de arquivo >, l o alvo e escreve-o lima- w < nome de arquivo >, escreve uma lima ao alvo- o GUI, no retira aps a escrita ou a leitura (somente se - w ou - r so especific)Voc pode encontrar mais informao guia de usurio de OpenProg e de OpguiPode ser do interesse o fato de que o DDK (jogo do desenvolvimento do excitador) no est exigido para a compilao; Eu lig explicitamente biblioteca de sistema hid.dll e carrego manualmente as funes necessrios.Aplicao de transferncia ou fontes (espao de trabalho visual do estdio 6)Comando-linha utilidade (linux e Windows, v0.9.1)OP uma comando-linha executvel; a verso de Windows no precisa a instalao;a verso do linux procurara o programador entre os dispositivos /dev/usb/hiddevX (ou esse especific como o parmetro) e as necessidades que l direitas para ela.por exemplo chmod a+r /dev/usb/hiddev0 do >sudoPara permitir permanentemente um usurio fazer o seguinte (em Ubuntu e outras distribuies baseadas Debian, verificao para outro):como a raiz cria uma lima /etc/udev/rules.d/10-openprogrammer.rulesse voc quer permitir um grupo de usurio escrever: KERNEL== " hiddev [0-9] , == " 0100 de ATTRS {idProduct}, == " 04d8 de ATTRS {idVendor}, GROUP= " , SYMLINK+= " openprogrammeronde o um dos grupos de usurio (para come um tipo grupos da lista); selecionar um grupo apropriado e se seu desn't do usurio lhe pertence executar do o do addgroupou, se voc quer permitir todos os usurios, para mudar permisses da leitura: KERNEL== " hiddev [0-9] , == " 0100 de ATTRS {idProduct}, == " 04d8 de ATTRS {idVendor}, MODE= " 0664, SYMLINK+= " openprogrammerudev do reincio para aplicar mudanas:> controle do udevadm --recarregar-rguas> disparador do udevadmAgora, cada vez que o sistema deteta o programador, /dev/usb/hiddevX correspondente tem as permisses corretas e a ligao /dev/openprogrammer criada igualmente.

Se aps ter obstrudo o dispositivo /dev/usb/hiddevX inexistent (e LED2 no pisca em 1 hertz), ele suficiente para executar o lsusb de algumas vezes para forar a enumerao, ou desconectar e replug o cabo.

Se no OP de outra maneira especific procura um dispositivo do USB com vid&pid=0x4d8: 0x100.Suporta as limas hex8 e hex32, e igualmente limas binrias em caso das memrias de srie.Using --A opo de HWtest e um voltmetro so possveis para certific do circuito esteja funcionando. possvel comunicar-se com os dispositivos genricos de I2C/SPI; em caso de SPI sempre necessrio especific o byte e o endereo (ou os endereos) de controle; o bocado do RW segurado automaticamente.Em caso dos problemas ou apenas para a curiosidade possvel conservartodos os dados trocados com o programador com opo - l; seu parmetro opcional deve ser especific com - l= (quem sabe por que? Pode ser um erro do getopt).As lnguas suportadas so atualmente ingleses e italiano; mais lnguas podem ser adicionadas gerando e modificando a lima languages.rc.

Opes:- Carga BKosccal de BKosccal da lima- calibrao da carga do calib da lima- o do comando emite o ao programador e sada- os config da fora do do cwX exprimem X- d, dispositivo do dispositivo - a EE usa o eeprom- erram os erros mximos do durante a escrita- o do fusvel escreve a fusvel o baixo byte (Atmel somente)- o do fuseh escreve a fusvel o byte elevado (Atmel somente)- o do fusex escreve byte prolongado do fusvel (Atmel somente)- h, ajuda da ajuda- Teste da ferragem de HWtest- i, informaes da informao sobre o programador- o CTR Addr> do do CTR do op - #help de h > - d 18F2550 - EE op - os #reads de s read.hex codificam e EEPROM e conservam para arquivar > - d 16F628 - EE op - #writes de w write.hex > op - #reads A0 0 de i2c_r 8 8 bytes da barra-nibus de I2C, byte de controle A0, endereo 0

Um erro freqente escrever o nome de dispositivo com letras lowercase em vez do uppercase:escrever 16F628, no 16f628

Um makefile includo, assim que para construir a aplicao que voc precisa GCC e os maketools (MinGW/MSYS em Windows); escrever:> fazerPara instal-lo ento (se voc desejo):> fazer para instalar

Igualmente includo Hid_test, uma utilidade para emitir e receber um nico pacote de 64 bocados; pode ser til para experimentar com a ferragem; na teoria se podia mesmo escrever um certificado de programao completo using ele.

TransfernciaComo aApagar um dispositivo: cada dispositivo apagado antes de ser programada; entretanto se voc ainda precisa do apagar suficiente escrever uma lima hex com dados vlidos (isto 4 a uma velocidade de x SPI.H muitas configuraes possveis da velocidade do processador central, assim que o algoritmo (novo) varia a velocidade de SPI automaticamente a fim entrar na modalidade de programa.Obviamente mais baixa a velocidade mais por muito tempo toma ao read/write o dispositivo; a fim acelerar operaes que voc poderia escrever uma lima vazia com uma configurao rpida do processador central, a seguir escreve a lima e a configurao finais na alta velocidade.Alguns dispositivos incluem extremamente - um baixo ajuste da velocidade (16 quilohertz), que esteja demasiado baixo mesmo para o algoritmo adaptvel; neste caso o uso escreve a ponto baixo do fusvel @ 3 quilohertz ao fusvel da mudana baixo a um ajuste mais elevado da velocidade, a seguir escreve-os da maneira habitual.Uma outra causa poderia ser que a programao de srie deficiente: isto pode ser feito somente using um programador paralelo, e o mesmo necessrio para permiti-lo outra vez.A terceira possibilidade que o dispositivo est configurado para o ressonador externo mas X2 no pode se mover; caso que voc usa a placa de expanso do AVR certificar-se que X2 no est amarrado terra.

Certific de um dispositivo esteja em branco: l-lo e olhar dados indicados; somente as linhas com dados vlidos so indicadas, assim que se no h nenhuns o dispositivo em branco.

Verific que uma escrita era bem sucedida: todos escrevem algoritmos que o instrumento escreve a verificao, durante escrever ou imediatamente depois de; se os relatrios de programa 0 erros ele significam que o cdigo estve verific com sucesso.Se voc quer verific outra vez voc pode ler o dispositivo e compar-lo com os dados originais; manter na mente que no todos os bocados esto executados freqentemente; por exemplo em PIC16 uma palavra de dados 14 bocados por muito tempo, assim que mesmo se os dados de fonte so 0xFFFF escrever-se- como 0x3FFF; igualmente as palavras dos Config tm geralmente alguns bocados reparados em 0, que no so verific.

Ler a rea de memria reservado: a maioria de dispositivos do PIC tm uma rea reservado acima das palavras dos Config que seja usada para finalidades do teste ou da calibrao; para v-la usar a opo relativa antes do lido; em PIC24-30-33 a memria executiva lida tambm.

Usar corretamente OscCal e outras palavras da calibrao: alguns dispositivos (por exemplo 12F5xx) armazenam o valor interno da calibrao do oscilador no ltimo endereo da memria do programa e em uma posio alternativa aps as palavras da identificao; aps ter apagado toda a memria os programas de verificao restauram o valor da calibrao que toma a da posio alternativa, a menos que especific de outra maneira; outras opes so: usar o valor velho (que deve ser o mesmo que o apoio, se nenhum estve mudado antes), se usar o que est especific na lima de .hex.Similarmente possvel overwrite o valor alternativo com o ndice da lima de .hex, using a opo escrever a identificao e o BKosccal; as posies da identificao sero escritas neste caso tambm, se especific na lima de .hex.Para overwrite a outra opo do uso dos valores da calibrao escrever Calib1 e 2.Dispositivos suportadosEu tentei este programador com um pequeno nmero de dispositivos (aqueles I possuem mais algum testado por outros usurios) indicados em bold(realce); os outros dispositivos so suportados mas no testados; entretanto, considerando que para cada dispositivo a famlia uma estve verific pelo menos, todo devem trabalhar sem problemas.Deixar-me por favor saber se voc verific a operao com os dispositivos no experimentados.Igualmente contatar-me se voc precisa outros algoritmos ou novos do cdigo por o senhor mesmo.Observao da tomada:O PICs da srie do LF usado exatamente como o F uns; Os dispositivos de Atmel AVR com sufixos do varius so sempre que o algoritmo de programao so exatamente o mesmo, por exemplo ATmega8 junto agrupados e ATmega8A;As memrias de EEPROM compreendem todas as verses com VDDmax=5V, por exemplo 242LC56, 24AA256, etc.;as memrias 93x usam 2 algoritmos diferentes, para a srie 93S e para todos os outro, indicado com o 93x (93xA tm uma organizao de 8 bocados).

os dispositivos suportados para lido e escrevem:10F200, 10F202, 10F204, 10F206, 10F220, 10F222, 10F320, 10F322, 12C508, 12C508A,12C509, 12C509A, 12F508, 12F509, 12F510, 12F519,12F609, 12F615, 12F617, 12F629, 12F635, 12F675, 12F683, 12F752, 12F529T39, 12F529T48, 12F1501, 12F1571, 12F1572, 12F1612, 12F1822, 12F1840, 16F505, 16F506, 16F526, 16F527, 16F54, 16F57, 16F570, 16F59, 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, 16F753, 16F76, 16F767, 16F77, 16F777, 16F785, 16F818, 16F819, 16C83, 16F83, 16F83A, 16C84, 16F84, 16F84A, 16F87, 16F870, 16F871, 16F872, 16F873, 16F873A, 16F874, 16F874A, 16F876, 16F876A, 16F877, 16F877A, 16F88, 16F882, 16F883, 16F884, 16F886, 16F887,16F913, 16F914, 16F916, 16F917, 16F946,16F1454, 16F1455, 16F1459, 16F1503, 16F1507, 16F1508, 16F1509, 16F1512, 16F1513, 16F1516, 16F1517, 16F1518, 16F1519, 16F1526, 16F1527, 16LF1554, 16LF1559, 16F1574, 16F1575, 16F1578, 16F1579, 16F1613, 16F1614, 16F1615, 16F1618, 16F1619, 16F1703, 16F1704, 16F1705, 16F1707, 16F1708, 16F1709, 16F1713, 16F1716, 16F1717, 16F1718, 16F1719, 16F1782, 16F1783, 16F1784, 16F1786, 16F1787, 16F1788, 16F1789, 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, 18F24K50, 18F2455, 18F2458, 18F2480, 18F2510, 18F25J10, 18F25J11, 18F2515, 18F2520, 18F25K20, 18F25K22, 18F2523, 18F2525, 18F2539, 18F2550, 18F25J50, 18F25K50, 18F2553, 18F2580, 18F25K80, 18F2585, 18F2610, 18F26J11, 18F26J13, 18F2620, 18F26K20, 18F26K22, 18F26J50, 18F26K50, 18F26J53, 18F2680, 18F26K80, 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, 18F45K50, 18F4553, 18F4580, 18F45K80, 18F4585, 18F4610, 18F46J11, 18F46J13, 18F4620, 18F46K20, 18F46K22, 18F46J50, 18F46K50, 18F46J53, 18F4680, 18F46K80, 18F4682, 18F4685, 18F47J13, 18F47J53, 18F63J11, 18F63J90, 18F64J11, 18F64J90, 18F65J10, 18F65J11, 18F65J15, 18F65J50, 18F65J90, 18F65K80, 18F66J10, 18F66J11, 18F66J15, 18F66J16, 18F66J50, 18F66J55, 18F66J60, 18F66J65, 18F66J90, 18F66J93, 18F67J10, 18F67J11, 18F67J50, 18F67J60, 18F66K80, 18F67J90, 18F67J93, 18F83J11, 18F83J90, 18F84J11, 18F84J90, 18F85J10, 18F85J11, 18F85J15, 18F85J50, 18F85J90, 18F8520, 18F86J10, 18F86J11, 18F86J15, 18F86J16, 18F86J50, 18F86J55, 18F86J60, 18F86J65, 18F86J72, 18F86J90, 18F86J93, 18F8722, 18F87J10, 18F87J11, 18F87J50, 18F87J60, 18F87J72, 18F87J90, 18F87J93, 18F96J60, 18F96J65, 18F97J60,24F04KA200, 24F04KA201, 24F08KA101, 24F08KA102, 24F16KA101, 24F16KA102, 24FJ16GA002, 24FJ16GA004, 24FJ32GA002, 24FJ32GA004, 24FJ32GA102, 24FJ32GA104, 24FJ32GB002, 24FJ32GB004, 24FJ48GA002, 24FJ48GA004, 24FJ64GA002, 24FJ64GA004, 24FJ64GA006, 24FJ64GA008, 24FJ64GA010, 24FJ64GA102, 24FJ64GA104, 24FJ64GA306, 24FJ64GA308, 24FJ64GA310, 24FJ64GB002, 24FJ64GB004, 24FJ64GB106, 24FJ64GB108, 24FJ64GB110, 24FJ64GC006, 24FJ64GC008, 24FJ64GC010, 24FJ96GA006, 24FJ96GA008, 24FJ96GA010, 24FJ128GA006, 24FJ128GA008, 24FJ128GA010, 24FJ128GA106, 24FJ128GA108, 24FJ128GA110, 24FJ128GA306, 24FJ128GA308, 24FJ128GA310, 24FJ128GB106, 24FJ128GB108, 24FJ128GB110, 24FJ128GB206, 24FJ128GB210, 24FJ128GC006, 24FJ128GC008, 24FJ128GC010, 24FJ128DA106, 24FJ128DA110, 24FJ128DA206, 24FJ128DA210, 24FJ192GA106, 24FJ192GA108, 24FJ192GA110, 24FJ192GB106, 24FJ192GB108, 24FJ192GB110, 24FJ256GA106, 24FJ256GA108, 24FJ256GA110, 24FJ256GB106, 24FJ256GB108, 24FJ256GB110, 24FJ256GB206, 24FJ256GB210, 24FJ256DA106, 24FJ256DA110, 24FJ256DA206, 24FJ256DA210,24EP32GP202, 24EP32GP203, 24EP32GP204, 24EP32MC202, 24EP32MC203, 24EP32MC204, 24EP64GP202, 24EP64GP203, 24EP64GP204, 24EP64GP206, 24EP64MC202, 24EP64MC203, 24EP64MC204, 24EP64MC206, 24EP128GP202, 24EP128GP204, 24EP128GP206, 24EP128MC202, 24EP128MC204, 24EP128MC206, 24EP256GP202, 24EP256GP204, 24EP256GP206, 24EP256MC202, 24EP256MC204, 24EP256MC206, 24EP512GP202, 24EP512GP204, 24EP512GP206, 24EP512MC202, 24EP512MC204, 24EP512MC206,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, 30F2012, 30F2020, 30F2023, 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,33EP32GP502, 33EP32GP503, 33EP32GP504, 33EP32MC202, 33EP32MC203, 33EP32MC204, 33EP32MC502, 33EP32MC503, 33EP32MC504, 33EP64GP502, 33EP64GP503, 33EP64GP504, 33EP64GP506, 33EP64MC202, 33EP64MC203, 33EP64MC204, 33EP64MC206, 33EP64MC502, 33EP64MC503, 33EP64MC504, 33EP64MC506, 33EP128GP502, 33EP128GP504, 33EP128GP506, 33EP128MC202, 33EP128MC204, 33EP128MC206, 33EP128MC502, 33EP128MC504, 33EP128MC506, 33EP256GP502, 33EP256GP504, 33EP256GP506, 33EP256MC202, 33EP256MC204, 33EP256MC206, 33EP256MC502, 33EP256MC504, 33EP256MC506, 33EP512GP502, 33EP512GP504, 33EP512GP506, 33EP512MC202, 33EP512MC204, 33EP512MC206, 33EP512MC502, 33EP512MC504, 33EP512MC506,AT90S1200, AT90S2313, AT90S8515, AT90S8535, ATmega48, ATmega8, ATmega88, ATmega8515, ATmega8535, ATmega16, ATmega164, ATmega168, ATmega32, ATmega324, ATmega328, ATmega64, ATmega644, ATmega1284,ATtiny11, ATtiny12, ATtiny13, ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny261, ATtiny4313, ATtiny44, ATtiny45, ATtiny461, ATtiny48, ATtiny84, ATtiny85, ATtiny88, ATtiny861,2400, 2401, 2402, 2404, 2408, 2416, 2432, 2464, 24128, 24256, 24512, 241024, 241025, 25010, 25020, 25040, 25080, 25160, 25320, 25640, 25128, 25256, 25512, 251024,95010, 95020, 95040, 95080, 95160, 95320, 95640, 95128, 95256, 95512, 95M01, 95M02,251005, 252005, 254005, 258005, 251605, 25X05, 25X10, 25X20, 25X40, 25X80, 25X16, 25X32, 25X64, 25X128, 25Q40,93S46, 93x46, 93x46A, 93S56, 93x56, 93x56A, 93S66, 93x66, 93x66A, 93x76, 93x76A, 93x86, 93x86A,DS2430, DS2431, DS2433, DS28EC20, DS1820, 11010, 11020, 11040, 11080, 11160

dispositivos suportados para lido somente:12C671, 12C672, 12CE673, 12CE674

Importante!! No usar os dispositivos 3.3V sem as placas de expanso 3.3V, se no dano permanente pode ocorrer; o software verific que tais adaptadores esto atuais antes de comear programar, mas obviamente voc precisa de selecionar o dispositivo apropriado; os dispositivos 3.3V so:12F1xxx, 16F1xxx, 18FxxJxx, 18FxxKxx, 24Fxxx, 24Hxxx, 33Fxxx.Alguns deles tm as variaes 5V; se voc precisa de programar em 5V voc pode selecionar a opo no exige placas do LV. Igualmente no pr nenhum 24F-33F sobre o soquete 30F, que funciona em 5V.Protocolo de comunicaoPara projetar um protocolo de comunicao ns devemos tomar em considerao algumas exigncias frequentemente contrasting:transferir a velocidade e a eficincia, o tamanho de cdigo, a adaptao e a expansibilidade.Diferentemente das ligaes de srie, o USB pacote baseado; um pacote recebido completamente, mas os dispositivos ESCONDIDOS podem somente troc-los cada Senhora, assim que fora da pergunta para controlar diretamente sincronismos como com portos de srie. necessrio introduzir os comandos sintticos que o microcontrolador pode usar para recrear as formas de onda apropriadas.Alm disso, um objetivo de um programador de confiana ser independente da velocidade do anfitrio e da ocupao do processador central, assim que a tarefa de gerar formas de onda seria dada de qualquer maneira ao microcontrolador.Geralmente ns podemos encontrar dois tipos de programadores: os programadores de srie simples tomam somente comandos mudar nveis de tenso; o software do anfitrio controla ambos os algoritmos dos sincronismos e da programao mas precisa todo o processador central - cronometrar e afetado dramtica por outros processos que funcionam no sistema.No outro extremo esto os programadores espertos, que controlam autnoma sincronismos e algoritmos, mas devem ser atualizados suportar dispositivos novos e tender a exigir muita memria armazenar o cdigo.Eu escolhi uma combinao de ambos: Os comandos de ICSP (na programao de srie do circuito) so executados nos firmware, mas o software do anfitrio controla os algoritmos.A fim aumentar a velocidadee a eficincia algumas instrues correspondem s seqncias de comandos freqentemente repetidos, tais como seqencial lem.A vantagem desta aproximao que os sincronismos so muito precisos, quando a variedade extrema de algoritmos no aumentar o tamanho de cdigo dos firmware.Uma outra vantagem que uma vez que os comandos bsicos so verific o desenvolvimento dos algoritmos est no PC, sem a necessidade para atualizaes freqentes dos firmware.Por exemplo, esta sido a seqncia usada para entrar na modalidade de programa para 16F628 e para ler DevID:

SET_PARAMETER //set atrasa para ser usado por outras instrues SET_T1T2 //T1 & T2 1 //T1 =1us 100 //T2 =100us EN_VPP_VCC //Vpp & Vcc = 0 0x0 SET_CK_D //Clock e dados como a sada e o 0 0x0 EN_VPP_VCC //Vpp permitiu 0x4 Atraso de NOP //small EN_VPP_VCC //Vdd +Vpp permitiu 0x5 Atraso de NOP //small LOAD_CONF //program ao contrrio de 0x2000 config de 0xFF //fake config de 0xFF //fake Endereo de INC_ADDR_N //increment por 6 0x06 READ_DATA_PROG //read DevID ...

Alm do que comandos que de ICSP outras instrues controlam o programador, controlam tenses de programao, executam atrasos precisos, comunicam-se atravs da barra-nibus de I2C ou de SPI.Cada instruo executada pelo menos em 40 ns, devido ao tempo de execuo do lao do intrprete.Os comandos de ICSP usam o T1 ou o T2 como valores para atrasos; todas as instrues retornam um eco, excecpo do RESPLENDOR, que emite imediatamente o amortecedor de sada e para a execuo do pacote atual.Caso que uma instruo no tem bastante parmetros retorna um erro (0xFE) e a execuo do pacote atual parada.O estado de conexo do USB sinalizado por LED2: pisca em 4 hertz durante a enumerao, em 1 hertz na operao normal.LED1 mostra quando h umas instrues que esto sendo executadas.Seguir a lista de todas as instrues:InstruoValorParmetrosRespostaNotas

NOP0x00nenhunseconenhuma operao

PROG_RST0x01nenhunseco + 10Brestaurao do programador; emite a verso do fw (3B), identificao (3B), corda de RST

PROG_ID0x02nenhunsecho+ 6Bemite a verso do fw (3B), identificao (3B)

CHECK_INS0x031Beco + 1Bse a instruo especific existe retornos seu cdigo, se no retorna o erro (0xFE)

RESPLENDOR0x04nenhunsnenhunso amortecedor de sada dos resplendores (emite 64B) e para o intrprete de comando para o pacote atual.

VREG_EN0x05nenhunsecogira sobre o regulador de tenso

VREG_DIS0x06nenhunsecodesliga o regulador de tenso

SET_PARAMETER0x071Becoajusta parmetros internos; byte1: parmetro a mudar, valor do byte 2-3:SET_T1T2 (=0): T1 & T2SET_T3 (=1): T3 (H, L)SET_timeout (=2): intervalo de parada (H, L)SET_MN (=3): M, N

WAIT_T10x08nenhunsecoT1 das esperas ns (defeito 1us)

WAIT_T20x09nenhunsecoT2 das esperas ns (defeito 100us)

WAIT_T30x0AnenhunsecoT3 das esperas ns (defeito 2ms)

WAIT_US0x0B1Becoesperas N ns

READ_ADC0x0Cnenhunseco +2Bl a tenso do regulador (10bits, MSB-LSB eficazes); considerando o divisor da entrada, a tenso em V /1024*5*34/12

SET_VPP0x0D1B eco +1Bajusta a tenso do regulador a /10;se o erro < 200 milivolt dentro de 15ms retornam o , se no o erro (0xFE)

EN_VPP_VCC0x0E1Becocontroles Vpp e Vcc no dispositivo programado; 1 bocado para o nvel (0-1), 1bit para a impedncia (sustento em 0);0-1 mordido: Vcc, bocado 2-3: Vpp

SET_CK_D0x0F1Becocontroles CK, D, PGM no dispositivo programado; 1 bocado para o nvel (0-1), 1bit para a impedncia (baixo-elevada);0-1 mordido: D, bocado 2-3: CK, bocado 4-5: PGM

READ_PINS0x10nenhunseco +1Bl o estado de linhas de controle, 1 bocado em nvel (0-1), impedncia 1bit (baixo-elevada);0-1 mordido: D, bocado 2-3: CK, bocado 4-5: PGM

LOAD_CONF0x112BecoComando de ICSP: Configurao da carga (000000), T1 ns entre o comando e dados; 14 dados de bocado (alinhado direito, MSB-LSB)

LOAD_DATA_PROG0x122BecoComando de ICSP: Dados da carga na memria do programa (000010), no T1 ns entre o comando e nos dados; 14 dados de bocado (alinhado direito, MSB-LSB)

LOAD_DATA_DATA0x131BecoComando de ICSP: Dados da carga na memria dos dados (000011), no T1 ns entre o comando e nos dados; 8 dados de bocado

READ_DATA_PROG0x14nenhunseco +2BComando de ICSP: Ler dados da memria do programa (000100), do T1 ns entre o comando e dos dados; 14 dados de bocado (alinhado direito, MSB-LSB)

READ_DATA_DATA0x15nenhunseco +1BComando de ICSP: Ler dados da memria dos dados (000101), do T1 ns entre o comando e dos dados; 8 dados de bocado

INC_ADDR0x16nenhunsecoComando de ICSP: Incrementar o endereo (000110), T1 ns atraso na extremidade

INC_ADDR_N0x171BecoComando de ICSP: Incrementar o endereo (000110), T1 ns atraso na extremidade; tempos repetidos de N

BEGIN_PROG0x18nenhunsecoComando de ICSP: Comear a programar (001000)

BULK_ERASE_PROG0x19nenhunsecoComando de ICSP: Memria maioria do programa do Erase (001001)

END_PROG0x1AnenhunsecoComando de ICSP: Programao do fim (001010)

BULK_ERASE_DATA0x1BnenhunsecoComando de ICSP: Memria maioria dos dados do Erase (001011)

END_PROG20x1CnenhunsecoComando de ICSP: Programao do fim (001110)

ROW_ERASE_PROG0x1DnenhunsecoComando de ICSP: Memria do programa do Erase da fileira (010001)

BEGIN_PROG20x1EnenhunsecoComando de ICSP: Comear a programar (0011000)

CUST_CMD0x1F1BecoComando de ICSP especific no parmetro

PROG_C0x202Beco +1BPrograma uma palavra depois do algoritmo 12Cxxx: 000010, 001000, 001110, pulsos de M & overpulses de N

CORE_INS0x212BecoComando de PIC18 ICSP: Instruo do ncleo (0000); 16 dados de bocado (MSB-LSB)

SHIFT_TABLAT0x22nenhunseco +1BComando de PIC18 ICSP: Desloc TABLAT (0010); 8 dados de bocado

TABLE_READ0x23nenhunseco +1BComando de PIC18 ICSP: A tabela leu (1000); 8 dados de bocado

TBLR_INC_N0x241Becho+N+NBComando de PIC18 ICSP: A tabela leu borne-inc (1001); 8 dados de bocado; tempos das repeties N; retornos N e dados do N.B.

TABLE_WRITE0x252BecoComando de PIC18 ICSP: A tabela escreve (1100); 16 dados de bocado (MSB-LSB)

TBLW_INC_N0x26(2N+1) BecoComando de PIC18 ICSP: A tabela escreve borne-inc (1101); 16 dados de bocado (MSB-LSB); tempos das repeties N (N o primeiro parmetro)

TBLW_PROG0x274BecoComando de PIC18 ICSP:A tabela escreve e programa (1111); 16 dados de bocado (MSB-LSB); igualmente executa um NOP com um atraso especific nos parmetros 3-4 (em ns)

TBLW_PROG_INC0x284BecoComando de PIC18 ICSP:A tabela escreve e programa borne-inc (1110); 16 dados de bocado (MSB-LSB); igualmente executa um NOP com um atraso especific nos parmetros 3-4 (em ns)

SEND_DATA0x293BecoComando de PIC18 ICSP especific no byte 1; emite 16 dados de bocado (MSB-LSB)

READ_DATA0x2A1Becho+1BComando de PIC18 ICSP especific no byte 1; l 8 dados de bocado

I2C_INIT0x2B1BecoInicializa uma comunicao de I2C:0xFF incapacita I2C; 6 mordidos: controle de taxa de pntano para a velocidade > o 100kbps;velocidade do 5:3 do bocado: 0=100k, 1=200k, 2=400k, 3=800k, 4=1M; ateno: usar os resistores pull-up de acordo com a velocidade selecionada;2:0 do bocado: nvel da lgica de A2-A1-A0 (no dispositivo)

I2C_READ0x2C3Becho+1+NBL bytes do da barra-nibus de I2C using o como o byte de controle e o como o endereo; foras automaticamente o bocado do RW no byte de controle. Respondem com + os dados ou com ACK_ERR (0xFD) em caso de reconhecer o erro (por exemplo se no h nenhum dispositivo na barra-nibus)

I2C_WRITE0x2D3B+NBecoEscreve bytes do barra-nibus de I2C using o como o byte de controle e o como o endereo; foras automaticamente o bocado do RW no byte de controle. Responde com ACK_ERR (0xFD) em caso de reconhecem o erro (por exemplo se no h nenhum dispositivo na barra-nibus).Para 2 endereos de byte apenas usar o byte do endereo como o primeiro byte dos dados.

I2C_READ20x2E4Becho+1+NBL da barra-nibus de I2C; idntico a I2C_READ, mas usa 2 bytes endereando

SPI_INIT0x2F1BecoInicializa uma comunicao de SPI:0xFF incapacita SPIvelocidade do 1:0 do bocado: 0=100kbps, 1=200kbps, 2=300kbps, 3=500kbpsmodalidade do 2:3 SPI do bocado

SPI_READ0x301Becho+1+NBL bytes do da barra-nibus de SPI. Retorna o + dados;Se o =0 retorna o byte que estve recebido por ltimo (durante ou lido ou escrever)

SPI_WRITE0x311B+NBecho+1BEscrevem bytes do barra-nibus de SPI.

EXT_PORT0x322BecoNveis de foras de portos de comunicao: = = No muda o sentido do sinal.

AT_READ_DATA0x333Becho+1+2NBComando de ATMEL: ler a memria do programa (0010H000); l palavras do no do endereo: atravs de SPI. Retorna o + dados

AT_LOAD_DATA0x343B+2Necho+1BComando de ATMEL: pgina da memria do programa de carga (0100H000); carrega palavras do no do endereo: atravs de SPI. Retorna o

CLOCK_GEN0x351BecoGera um sinal de pulso de disparo em RB3 (using CCP1-2 e TIMER1)freqncia do 2:0 do bocado: 0=100kHz, 1=200kHz, 2=500kHz, 3=1MHz, 4=2MHz, 5=3MHz, 6=6MHz;As inutilizaes PWM1 output (o regulador de DCDC)

SEIS0x363BecoComando de PIC24 ICSP: Instruo do ncleo (0000); 24 dados de bocado (MSB primeiramente)

SIX_LONG0x3E3BecoComando de PIC24 ICSP: Instruo do ncleo (0000); 24 dados de bocado (MSB primeiramente); adiciona 2 ICSP_NOP na extremidade

SIX_LONG50x493BecoComando de PIC24 ICSP: Instruo do ncleo (0000); 24 dados de bocado (MSB primeiramente); adiciona 5 ICSP_NOP na extremidade

SIX_N0x3F1+3NBecoComando de PIC24 ICSP: Instruo do ncleo (0000); N * 24 dados de bocado (MSB primeiramente); emite instrues de N e adiciona M ICSP_NOP aps cada um; N=&0x3F, M= >>6

REGOUT0x37nenhunseco +2BComando de PIC24 ICSP: Do deslocamento registo para fora VISI (0001); 16 dados de bocado

ICSP_NOP0x38nenhunsecoComando de PIC24 ICSP: Executar NOP (0000)

TX160x391+2NBecho+1BTransmitem 16 palavras do bocado sobre ICSP (MSB primeiramente); perodo de pulso de disparo: 2* (T1-1) +1 ns

RX160x3A1Becho+1+2NBRecebe 16 palavras do bocado sobre ICSP (MSB primeiramente); perodo de pulso de disparo: 2* (T1-1) +1 ns

uW_INIT0x3BnenhunsecoInicializa uma comunicao de MicroWire

uW_TX0x3C1B+NBecho+1BEscreve bocados do barra-nibus de MicroWire.Os dados so MSB especific primeiramente

uW_RX0x3D1Becho+1+NBL bocados do da barra-nibus de MicroWire. Retorna o + dados, MSB primeiramente

OW_RESET0x40noecho+1BPulso de restaurao de OneWire; deteta o pulso slave da presena: 1=present 0=absent

OW_WRITE0x411B+NBecoEscreve bytes do na barra-nibus de OneWire

OW_READ0x421Becho+1+NBL bytes do da barra-nibus de OneWire

UNIO_STBY0x43noecoPulso da espera do UNIO

UNIO_COM0x441B+1B+NBecho+1+NBExecuta um ciclo de uma comunicao do UNIO: escreve bytes do e l bytes do ; gera um byte da sincronizao se h uns bytes a escrever

SET_PORT_DIR0x452BecoAjusta o sentido nos portos do IO (0=out, 1=in): = =

READ_B0x46noecho+1BL IO B porturio

READ_AC0x47noecho+1BL os portos A e C do IO:

AT_HV_RTX0x481B+2NBecho+1BEmite os bocados 2N*8 em RB0/RC7 (PB1/PB0), com o CLK em RC6 (PB3)byte N=PB1, byte N+1=PB0Recebe 8 bocados de RB1 (PB2) (somente o ltimo byte)

READ_RAM0xF02Becho+3BLem da memria do anfitrio; 16 endereos de bocado, 8 dados de bocado; endereo dos ecos

WRITE_RAM0xF13Becho+3BEscreve memria do anfitrio; 16 endereos de bocado, 8 dados de bocado; os ecos endeream e dados

LAO0xF2nenhunsnenhunsRestaura o ponteiro de instruo e executa todas as instrues outra vez.Para finalidades de teste somente.

O circuito (v1.7)O projeto baseado 28 em um pino 18F2550; aproximadamente 8.5 KWords so usados, assim que caber confortably nos 2455 menores.Os 2458 e os 2553 tm 12 um bocado CAD, to somente recompilao so exigidos.At a verso 0.8.0 eu adaptei o cdigo aos 2450; desde que este modelo falta o mdulo de MSSP eu usei uma execuo do software de I2C e de SPI; igualmente falta a segunda canaleta de PWM, conseqentemente no pode gerar o pulso de disparo para microplaquetas de Atmel (para aqueles que so configuradas com pulso de disparo externo); neste caso RB3 pode ser usado para girar sobre um oscilador externo (que seria introduzido em uma placa de expanso modificada de Atmel).O uso dos 40 dispositivos correspondentes do pino (4450, 4455, 4458, 4550, 4553) exige a modificao do PWB.A fim executar um USB pheripheral com um micro do PIC ns precisamos muito poucos componentes: o microcontrolador principal, um quartzo, alguns capacitores, e um tipo receptculo do USB de B, exatamente como escrito em notas de aplicao do microchip.Para poder programar dispositivos do PIC ns precisamos duas linhas digitais para o pulso de disparo e os dados e duas tenses de fonte, VCC e VPP, que so controladas using trs transistor; VPP vem de um regulador de tenso do interruptor dado forma por Q4, L1, D3 que descrito mais tarde.

Diagrama esquemtico do mdulo principal:

PCB of main module:

Muitos componentes so opcionais, so somente necessrios programar alguns tipos de dispositivos ou para as aplicaes futuras: conetores CONN2-3 da expanso, resistores R11 da proteo: 23 (considerando seu custo porque no os usar?), Resistores pull-up R26-27 de I2C, S1 interruptor, ICSP-IN CONN4 (agora se usou para programar o microcontrolador principal sem o extrair).O PWB foi aperfeioado para caber o lado da solda, porm algumas ligaes em ponte so necessrios no lado componente; se voc quer voc pode evitar aquele usando um PWB dobro do lado.Ateno do pagamento orientao dos transistor: O emissor de Q1 esquerda, Q2 acima, Q3 e Q4 endireitam.Conetado uma vez ao PC, um circuito de trabalho pisca D2 em 4Hz at que a enumerao esteja terminada, ento em 1Hz.Para verific que tudo est trabalhando corretamente o uso da a funo do teste ferragem no programa de controle: nesta modalidade, para ser executado sem dispositivos do alvo, todas as sadas (CK, D, PGM, VDDU, VPPU, que pode ser alcangado nos pinos 14-15-12-1-4 de U3, no que diz respeito terra, pino 5) so ativadas em vrias combinaes; se as tenses medidas correspondem o que est apresentada na tela ento ferragem so montadas corretamente.A tenso de VPP podia ser diferente do valor ajustado at por 1V; isto devido ao fato de que o conversor de DCDC toma VCC como a tenso da referncia; o ltimo vem do cabo do USB e pode variar de 4.75V a 5.25V; alm o divisor de tenso do gabarito (R1-R2) pode introduzir um outro 5% do erro.As causas as mais comuns do mau funcionamento so:orientao incorreta dos transistor,valor incorreto do indutor,o PWB defects como shorts ou abre,capacitores dessoldados,microcontrollorer principal no programado ou no programado incorretamente (com opo de LVP).

Lista de componentes:Quartzo de U1 12Mhz (tambm 4, 8, 16, 20; o reconfiguration de opes do divisor da entrada exigido)U2 18F2550 (tambm 2450.2455.2458.2553.4450.4455.4458.4550.4553)Soquete de U3 20p.Soquete de U4 8p.Q1-2 BC557 (ou algum PNP, ateno do pagamento polaridade)Q3-4 BC547 (ou algum NPN, ateno do pagamento polaridade)Diodo emissor de luz D1-2D3 1N4148 (ou todo o diodo, melhorar se Shottky)Tipo ou outro do resistor de L1 100uHR1 22KR2 12KR3 100KR4: 6 10KR7 1MR8-9 2.2KR10 10KR11: 23 100R24-25 330KR26-27 10KC1 22-100uF 25VC2-3 22pFC4 >= 220nFC5 100nFC6 10uFC7-8 100nFTipo B do USB CONN1Stripline da fmea do pino CONN2-3 10Stripline do pino CONN4 5Como se usarO circuito bsico pode hospedar dispositivos do PIC com os 8, 14, 18, e 20 pinos (exceto 10Fxxx); devem ser introduzidos em U3 com alinhamento a pin1:

As memrias de I2C e de UNIO vo em U4.Os dispositivos do Um-Fio no pacote TO92 podem igualmente ser conetados em U4: A ligao da terra vai a RB1 (pino 6), IO conduz a RB0 (pino 5).Eu planeio fazer um adaptador para 10Fxxx com os 6 ou 8 pinos; entretanto possvel come perto using fios.Outros dispositivos podem ser programados using as placas de expanso obstrudas aos conetores CONN2-3 (mas eles no so exigidos para a operao bsica):1. 28-40 pino PICs + conetor de ICSP1. 8-20 PICs do pino (mesmo que o prato principal, mas l mais espao para um soquete de ZIF) + conexo de ICSP.1. 3.3V conexo de PIC16-18 + de ICSP. (esta placa tem igualmente um regulador 3.3V)1. Conexo de PIC24-30-33 + de ICSP. (esta placa tem igualmente um regulador 3.3V)1. I2C, SPI, memrias do uW e conexo de I2C-SPI.1. 8-14-20-28-40 micros do pino ATMEL e conexo de I2C-SPI1. ST72 (futuro)Os componentes para as placas de expanso so indicados no diagrama esquemtico; os diodos podem ser do tipo; Os resistores de TBD no devem ser montados.Em montar os adaptadores eu sugiro para introduzir os conetores da expanso do lado componente, e mantenho seu espaador plstico nesse lado; isto melhora a fora da solda, especialmente durante a extrao.Em caso dos dispositivos 3.3V, a presena de um adaptador 3.3V (que tem RB1 e RB0 shorted) verific pelo software a fim evitar dano irreversvel.O 16F1xxx poderia ser programado igualmente sem tal adaptador (somente a necessidade 16LF1xxx ele), mas a verificao no est atual para ambos to l nenhuma possibilidade da confuso.Devido impossibilidade de apagar a proteo dsPIC30 regista em 3.3V, estes dispositivos so pstos agora em 5V; quem j fz o adaptador (antes de V. 1.7) pode facilmente modific-lo.As seguintes imagens mostram como introduzir vrios dispositivos do alvo nas placas de expanso:

Os dispositivos menores tm que ser alinhados para fixar 1 do soquete respetivo, por exemplo um PICs de 8 pinos no 20p. soquete, ou o ATTiny2313 no 28p. soquete.As microplaquetas do alvo podem igualmente ser programadas no circuito pelos sinais de roteamento ICSP (VPPU, VDDU, ICD, ICK, terra) placa da aplicao; estes sinais esto atuais nos conetores principais da expanso do mdulo ou em algumas placas de expanso como um conetor discreto; anotar que os dispositivos da baixa tenso exigem sinais de ICSP de uma placa de expanso da baixa tenso.A fim usar memrias Flash de SPI necessrio modificar o adaptador de EEPROM para abaixar a tenso de fonte a 3.3V; abaixo est o diagrama esquemtico:

O conetor de ICSP-IN usado para programar o micro principal sem extrai-lo, por meio de um outro programador.

ATENO: a placa de ATMEL AVR tem presentemente um erro que impea 28 dispositivos do pino (por exemplo ATMega8) da modalidade de programa entrando quando no so configurados com o oscilador interno.A fim compartilhar do mesmo soquete com os 20 dispositivos do pino (por exemplo ATTiny2313), o pino 10 forado ao VSS; mas este pino corresponde a X2 nos dispositivos mais grandes, e tem que flutuar quando o oscilador externo.Para reparar o erro suficiente manter X2 flutuar, em uma das seguintes maneiras:a) pino 10 da curvatura para fora no dispositivo do alvo de modo que permanea fora do soquete.b) cortou o trao entre o pino 10 e VSS, mas reconetou-o ao usar 20 dispositivos do pino.

A placa de adaptador ser modificada no futuro compreendendo uma ligao em ponte ao pino curto 10 ao VSS.

Trao do Pin de vrios conetores no cano principal e nas placas de expanso:

O mapa dos recursos usou-se:PinVrias funesICSPI2C-EEPROMSPI-EEPROMSPI-ATMELuW-EEPROMOneWire/UNIO

RB7PGM

RB6Pulso de disparo de ICSP

RB5Dados de ICSPA2W (6)

RB4A1HLDS (1)

RB3A0CSPulso de disparo do dispositivoPRE (7)

RB2expanso

RB1Pulso de disparoPulso de disparoPulso de disparo de SPIPulso de disparo

RB0DadosDados para fora (MISO)Dados para fora (MISO)Dados para foraDados IO

RC7Dados em (MOSI)Dados em (MOSI)Dados dentro

RC6WPWPRESTAURAO

RC5USB D+

RC4D do USB

RC2DCDC PWM

RC1controles VDD

RC0controles VPP

RA5expanso

RA4expanso

RA3expanso

RA2Diodo emissor de luz 2

RA1Diodo emissor de luz 1

RA0CAD para regulador

RE3Interruptor S1

O diagrama esquemtico foi extrado com Gschem, um programa de fonte aberta que viesse com srie de GEDA. Em seu Web site no evidente (porque todos usam o linux), mas igualmente possvel funcionar o programa nas janelas sob o cygwin; Eu sugiro para usar a verso a mais atrasada (voc necessidade de compilar fontes).PCBs foi extrado com PWB; neste caso h igualmente uma verso das janelas da (um tanto limitado).Com pouco esforo o circuito pode igualmente ser montado em placas experimentais, sem PWB.

Diagrama esquemtico do mdulo baixo: .pdf, .png; placas de expanso: .pdf; tudo no formato do gschem: Oprog.schPWB do mdulo principal: .pdf, .png; placas principais do mdulo + de expanso: .pdf (igualmente espelhado), .png; tudo no formato do PWB: Oprog.pcbO arquivo completo, inclui fontes, gerber, pdf, pngComo programar a primeira vez o micro principal?Este um problema interessante: um dispositivo novo no pode trabalhar como o programador, assim que deve ser programado de uma certa maneira. Aparte de pedir que alguma outra pessoa faa-o para voc, meu conselho construir um daqueles programadores de srie, como JDM, para fazer a primeira vez o trabalho.Pode parecer estranho usar um programador para construir outro, mas no h nenhuma maneira de conetar o USB sem os firmware; Eu penso que o esforo o vale a pena porque os programadores de srie no so muito de confiana, lento, e naturalmente no portable aos computadores novos que faltam portos de srie.Certificar-se que voc programa o dispositivo corretamente e no permite o bocado de LVP (baixa tenso que programa); isto reserva RB5 para a entrada da modalidade de programa e RB6-RB7 para uma comunicao, e o resultado um programador no de funcionamento.Igualmente seria uma boa idia comprar um micro alternativo, a fim program-lo com verses atualizados dos firmware.

O circuito principal e PIC PIC 28-40p, 8-20p de algumas placas de expanso (com ZIF, 3.3V PIC16-18, 3.3V PIC24-30-33, EEPROM, ATMEL):

Placa de expanso conetada ao circuito principal:

Dispositivo de OneWire no pacote TO92:

Lo bResposta de etapa mudana de carga (carga no trao superior, sada acoplada C.A. na parte inferior tr.), 50ms/div

Resposta de etapa mudana do ponto ajustado (11.5 a 12.5 V), 50 ms/divComo contribuirA melhor maneira de contribuir a este projeto construi-la, us-la, e relatar erros ou sugestes.Igualmente h ainda muitos dispositivos a testar; verific a lista em dispositivos suportados.Quem quer que tem o "knowhow" e a pacincia pode igualmente expandir a sustentao a outros dispositivos.Ou se voc tem um dispositivo que no lhe seja suportado pode emitir-meo de modo que eu possa trabalhar nele.Se voc encontra este projeto til me escrever um par linhas: , e se voc o modificou mostrar-me seu trabalho.Em SourceForge voc pode encontrar alguns fruns onde voc pode discutir sobre este projeto; voc poderia igualmente recomend-lo ou escrever a reviso da (esperanosamente positivo).TransfernciasDiagrama esquemtico e PWB: terminar o arquivo.Firmware: terminar o projeto de MPLAB ou os firmware compilados (.hex) ou uma verso para 18F2450 (0.8.0) (com funcionalidade reduzida, vem o circuito).opgui (GUI de GTK para o linux & o Windows): fontes ou aplicaoOpenProg (janelas): aplicao somente; fontes (espao de trabalho visual do estdio 6)OP (comando-linha para o linux & o Windows)Guia de usurio de OpenProg e de OpguiCertificados da oitavaHistriah muito temponecessidade para um programador de confiana e livre do USB

2007experincias com firmwares do PIC e do varionus do USB; regulador de tenso

2008primeiros prottipos e software

Julho 2008documentao e Web site, verso liberada 0.3

Agosto 2008verso 0.4: sustentao adicionada para I2C EEPROMs

Novembro 2008verso 0.5: Barra-nibus de I2C & de SPI, dispositivos adicionados de algum ATMEL

Janeiro 2009programas de verificao v0.5.1: adicionou alguns dispositivos do PIC, removidos alguns erros

Mar2009programas de verificao v0.5.2 e v0.5.3: adicionou algum PIC os dispositivos de um Atmel, removidos alguns erros

Abril 2009diagrama esquemtico e PWB v1.4: adaptador mudado de Atmel

Junho 2009verso 0.6: inteiramente firmware do USB GPL2, 93Sx6 adicionado MicroWire EEPROMs

Setembro 2009verso 0.6.1: resolveu os erros de algum SPI, adicionados alguns dispositivos de Atmel e 93Cx6C

Outubro 2009programas de verificao v0.6.2: bugfix

Janeiro 2010verso 0.7.0: PIC24 e SPI adicionados EEPROMs;circuita v1.5: placa de expanso para 3.3V PIC24-30-33

Fevereiro 2010programas de verificao v0.7.1: adicionou alguns dispositivos de PIC18 e de Atmel; bugfix

Mar2010programas de verificao v0.7.2: adicionou alguns eeproms de MicroWire; bugfix

Abril 2010programas de verificao v0.7.3: PIC16F1xxx adicionado; Trabalhos OP nas janelas; codificar o rework e o bugfix;circuita v1.6: placa de expanso para 3.3V PIC16-18

Maio 2010programas de verificao v0.7.4: PIC18FxJx adicionado, PIC18FxKx, PIC24H, dsPIC30-33, ATtiny2313, 241024; bugfix;circuita v1.7: placa de expanso PIC24-30-33 modificada, PIC30 agora em 5V

Junho 2010programas de verificao v0.7.5: corrigido escrever o erro para os config 18Fx, ICD empreendedores adicionado escrevem para 16Fx, vrios reparos do menor

Julho 2010firmware v0.7.6: TX16 e RX16 modificados com perodo varivel para uma comunicao com o ICD;programas de verificao v0.7.6: byte pelo byte lido com o 93xx6 para a melhor compatibilidade;primeira liberao do depurador de programas do pdb (v0.1);

Agosto 2010programas de verificao v0.7.7: 16F72x adicionado, alguns reparos do menor;circuita v1.7.1: valor reduzido de R173 na placa de expanso de PIC16/18 LV

Abril 2011programas de verificao v0.7.8: algoritmos atualizados para 16F87xA e 16F62xA,16F1822 transforma-se 12F1822, 30F1010 adicionado, 30F2020, 30F2023, 16F1847, 12F1840 16F1516, 16F1517, 16F1518, 16F1519, 16F1526, 16F1527;maior modularidade para o cdigo fonte, corrcted alguns erros

Junho 2011programas de verificao v0.7.9: ATtiny11-12-24-26-261-44-48-461-4313-84-88-861 adicionado, ATmega48-88-164A-168-324A-328-644A-1284, 16LF1902-3-4-6-7, vrias modificaes menores e reparos;relao grfica nova baseada em GTK para o linux e o Windows

Janeiro 2012programas de verificao v0.7.10: 12F617,12F1501,16F1503-7-8-9,16F720-21,16F72,16F707 adicionado, 18F13K22,18F14K22,18F23K22,18F43K22,18F24K22,18F44K22,18F25K22, 18F45K22,18F26K22,18F46K22,18F8520,18F66J60,18F66J65,18F67J60, 18F86J60,18F86J65,18F87J60,18F96J60,18F96J65,18F97J60, limas binrias de leitura/gravao fixas, vrias correes, sustentao adicionada para a eliminao de erros in-circuit em OPGUI

Julho 2012firmware v0.8.0: sustentao para o Um-Fio e o UNIO;programas de verificao v0.8.0: DS2430 adicionado, DS2431, DS2433, DS28EC20, DS1820; 11010-20-40-80-160; 251005,252005,254005,258005,251605,25X10,25X20,25X40,25X80, 25X16,25X32,25X64; 16F1782-3-4-6-7,12C508-9; corrigido escrever para 24x1024/5 e 251024;

Junho 2013programas de verificao v0.8.1: vrias melhorias da interface de utilizador; EEPROM fixos escrevem quando a proteo do cdigo ativa (16F83-84,12F629, 12F675,16F627-28,16F630,16F676,16F870-1-2,16F873-74,16F876-77); fixo lido das limas > do 1MB; entrada modificada da modalidade do prog para o AVR; fixo escrever de 93Sx6 com proteo;

Mar2014firmware v0.9.0: sustentao para a programao de srie da alta tenso de ATMEL;comando novo para PIC24/33; regulador melhorado de DCDC;programas de verificao v0.9.0: Write16F72x exige somente a config-palavra 1;programao de srie adicionada da alta tenso para ATtiny11-12-13-24-25-44-45-84-85;24FJ64GA3xx-GCxx adicionado, 24FJ128GA3xx-GB2xx-GCxx-DAxx, 24FJ256DAxx, 24EPx, 33EPx;95xx adicionado SPI EEPROM, FLASH 25X05;12F1571-72,16F527,16F753,16F1454-55-59 adicionado;alguns rework do cdigo & melhorias menores;

Novembro 2014programas de verificao v0.9.1: vrias melhorias da interface de utilizador; verificao fixa de ATTiny11-12; 24FJ128GA3xx-GB2xx-GCxx-DAxx fixo; adicionado: os config foram para PIC18, linhas teste do IO da ferragem, comunicao da velocidade do AVR uma auto, AVR escrevem o fusvel @ 3kHz; escrever mais rapidamente a verificao para memrias Flash de SPI;10F320-22,12F529T39A adicionado, 12F752,12F1612-13-14-15-18-19, 16F1512-13,16F1574-75-78-79,16F1703-04-05-07-08-09-13-16-17-18-19, 16F1788-89,16F570,16LF1554-59, 18F24K50-25K50-26K50-45K50-46K50, 18F25K80-26K80-45K80-46K80-65K80-66K80, 18F63J11-90,18F64J11-90,18F65J10-11-15-50-90, 18F66J10-11-15-16-50-55-90-93,18F67J10-11-50-90-93, 18F83J11-90,18F84J11-90,18F85J10-11-15-50-90, 18F86J10-11-15-16-50-55-90-93,18F87J10-11-50-72-90-93, 25X128,25Q40

o futuroaumentar a sustentao para micros do PIC e do ATMEL (assim que eu posso come amostras livres); adicionar ST72, JTAG, memrias paralelas; expandir a sustentao de ICD; compilar firmware igualmente com SDCC

LigaesAbrir o programador em SourceForgePadro do USB 2.0Pgina ESCONDIDA em USB.orgpdb, um depurador de programas simples de ICD para PIC16Guia rpido a um firmware ESCONDIDOCentral do USBUSB & PICMicrochipAtmeldocumentao do hiddevWinpicICprogOitavagEDA-GschemPWBGNU/GPLPiklab IDE para microcontroladores do PICUSBPicprog, um outro programador da fonte abertaCygwin, um ambiente do linux dentro das janelasContatosPara informaes ou comentrios:Alberto Maccioni Voc pode igualmente afixar suas perguntas no frum no sourceforge.ObrigadoEu gostaria de agradecer em particular a todos os povos que contriburam ao crescimento deste projeto: Anselmo para ajudar com linux/git, Sandro para o PCBs altamente profissional, Alessandro para testar muitos dispositivos, Ken para testar muitos dispositivos do AVR, Luigi para testar as memrias de OneWire, Mihaly para memrias Flash do teste SPI. Parte superior