Você está na página 1de 32

ltima atualizao: 30 de novembro de 2014

Verso italiana

Abrir o programador v0.9.x


Um USB da fonte aberta ao programador ser mcrons do PIC, mcrons de ATMEL, I2C-SPIMicroWire-OneWire-UNIO EEPROMs, dispositivos genricos de I2C/SPI e (logo) a outros dispositivos

Fatos rpidos
Outros ao programador?
USB & firmware ESCONDIDOS
Programas de verificao
Relao grfica de GTK
Relao grfica do MFC
Comando-linha relao
Como voc
Dispositivos suportados
Protocolo de comunicao
O circuito
Tenso do regulador
Como voc contribui
Transferncia
Histria
Ligaes
Contatos

Fatos rpidos

Livrar completamente e Open Source (firmware including)

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)

Pode trabalhar o ICD ao depurador de programas

Relao da velocidade cheia do USB 2.0, classe ESCONDIDA (os mesmos teclados, ratos, etc.)

Auto - psto

No precisa excitadores

Construdo de fcil voc encontra componentes (custo estimado ~10)

Os sincronismos gerados ferragem sero velocidade mxima e confiabilidade (escreve 18F2550 em


15s)

No satura seu processador central e no sofre quando ao outro funcionamento dos arados dos
programas

Os programas de verificao da fonte aberta sero linux e Windows

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 verificao
Eu 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 excepto limas 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 teste ferragem 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 3

Da 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 Opgui
Para 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:
>
fazer
Para
instal-lo
sob
o
linux
(se
voc
desejo):
>
fazer
para
instalar
Transferir o programa compilado ou as fontes.
Relao grfica para Windows (v0.9.1)
OpenProg
Um

aplicao

da
A.A.
screenshot

++

escrita

com
de

Visual

C++

e
MFC.
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
<device>
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 Opgui
Pode 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
>sudo
Para 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.rules
se
voc
quer
permitir
um
grupo
de
usurio
escrever:
KERNEL== " hiddev [0-9] , == " 0100 de ATTRS {idProduct}, == " 04d8 de ATTRS {idVendor},
GROUP=
"
<group>,
SYMLINK+=
"
openprogrammer
onde o <group> 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 <group> do <user> addgroup
ou, 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+=
"
openprogrammer
udev
do
reincio
para
aplicar
mudanas:
>
controle
do
udevadm
--recarregar-rguas
>
disparador
do
udevadm
Agora, 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 conservar todos os dados
trocados com o programador com opo - l; seu parmetro opcional deve ser especific com - l=<file> (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 <message> do comando emite o <message> ao programador e sada
- os config da fora do <cw> do cwX exprimem X
- d, dispositivo do dispositivo <dev.>

- a EE usa o eeprom
- erram os erros mximos do <max> durante a escrita
- o <val> do fusvel escreve a fusvel o baixo byte (Atmel somente)
- o <val> do fuseh
escreve a fusvel o byte elevado (Atmel somente)
- o <val> 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 <N de i2c_r leu bytes de N da barra-nibus de I2C
- o Addr do CTR do <N i2c_r2 (2) > leu bytes de N da barra-nibus de I2C (o endereo 16b)
- o Addr Data> do CTR do <N de i2c_w escreve bytes de N barra-nibus de I2C
- o Addr do CTR do <N i2c_w2 (2) Data> escreve bytes de N barra-nibus de I2C (o endereo 16b)
- velocidade ajustada do <speed> I2C de i2cspeed: 0=100k, 1=200k, 2=400k, 3=800k "
- o <val> do icd
permite ICD (o endereo empreendedores)
- identificao do uso da identificao
- l, registro [=file] excepto o registro
- cordas do <language> da carga do <language> do lang
- langfile escrever todas as cordas lima
- o <val> do fechamento escreve o byte do fechamento (Atmel somente)
- modalidade do <mode> SPI da modalidade: 00.01.10.11
- cargas osccal osccal da lima em vez de usar o valor conservado antes do erase
- p, trajeto do programador do <path> do trajeto [/dev/usb/hiddev0]
- programador pid do <pid> do pid [0x100]
- r, rea reservado lida reservado
- tamanho do relatrio do <n> do representante [64]
- s1, programao S1 mltipla provocada pelo S1
- s, excepto o <file> conserva a lima de Ihex
- o SE, <file> do saveEE conserva EEPROM na lima de Ihex (ATxxxx somente)
- o <N> do spi_r leu bytes de N da barra-nibus de SPI
- o <N Data> do spi_w escreve bytes de N barra-nibus de SPI
- velocidade ajustada spispeed do <speed> SPI: 0=100k, 1=200k, 2=300k, 3=500k " NL
- a sustentao suportou dispositivos
- cpia use_BKosccal BKosccal a osccal
- v, verso da verso
- vid do programador do <vid> do vid [0x4D8]
- w, escreve o <file> escreve a lima de Ihex
- ns, <file> do writeEE escrevemos EEPROM na lima de Ihex (ATxxxx somente)
Exemplos:
> 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:
>
fazer

Para
>

instal-lo

ento
fazer

(se

voc
para

desejo):
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.
Transferncia

Como a
Apagar 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 <0xFF) alm da memria executada.
Por
exemplo,
para
PIC12-16:
:
020000040000FA
:
0144010000BA
:
00000001FF
E
para
PIC18:
:
020000040002F8
:
020000000000FE
:
00000001FF
Mudar a palavra da configurao: As palavras dos Config so especific geralmente na lima hex, mas podem
ser foradas para PIC 10-12-16-18 using as opes relacionadas do dispositivo (ou atravs da linha de
comando).
igualmente possvel recompile fontes, se no mudar diretamente a lima hex; em caso da maioria de PIC16 a
palavra dos config est no endereo 0x2007, que armazenado em 0x400E; o ltimo byte da linha uma
soma de controle, que possa ser calculada como o complemento dois da soma de todos os bytes na linha.
Por
exemplo:
: 02400E00xxxxCC, onde xxxx so o valor e os centmetros cbicos novos a soma de controle
Mudar a configurao de Atmel AVR: ao contrrio do PICs, estes dispositivos no traam suas palavras da
configurao na rea da memria central (assim que as limas do hex no especific nenhuma configurao) e
necessrio escrever os bytes desejados do fusvel/fechamento nas opes do dispositivo; no escrever
qualquer coisa caso que o valor de defeito muito bem para a aplicao.
Resolver de o erro sincronizao com dispositivos do AVR: Uma causa possvel que a velocidade de
SPI demasiado elevada com relao velocidade do processador central ; o ltimo tem que estar >
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 suportados
Eu 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
10F200,
12C508,

dispositivos
suportados
10F202,
10F204,
10F206,
12C508A,12C509,
12C509A,

para
10F220,
12F508,

lido
e
escrevem:
10F222,
10F320,
10F322,
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 comunicao
Para 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 velocidade e 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:
Instruo

Valor Parmetros Resposta

Notas

NOP

0x00 nenhuns

eco

nenhuma operao

PROG_RST

0x01 nenhuns

eco + 10B

restaurao do programador; emite a verso do fw


(3B), identificao (3B), corda de RST

PROG_ID

0x02 nenhuns

echo+ 6B

emite a verso do fw (3B), identificao (3B)

CHECK_INS

0x03 1B

eco + 1B

se a instruo especific existe retornos seu cdigo, se


no retorna o erro (0xFE)

RESPLENDOR

0x04 nenhuns

nenhuns

o amortecedor de sada dos resplendores (emite 64B)


e para o intrprete de comando para o pacote atual.

VREG_EN

0x05 nenhuns

eco

gira sobre o regulador de tenso

VREG_DIS

0x06 nenhuns

eco

desliga o regulador de tenso


ajusta parmetros internos; byte1: parmetro a mudar,
valor do byte 2-3:

SET_PARAMETER

0x07 1B

eco

SET_T1T2 (=0):
T1 & T2
SET_T3 (=1):
T3 (H, L)
SET_timeout (=2): intervalo de parada (H, L)
SET_MN (=3):
M, N

WAIT_T1

0x08 nenhuns

eco

T1 das esperas ns (defeito 1us)

WAIT_T2

0x09 nenhuns

eco

T2 das esperas ns (defeito 100us)

WAIT_T3

0x0A nenhuns

eco

T3 das esperas ns (defeito 2ms)

WAIT_US

0x0B 1B

eco

esperas N ns

READ_ADC

0x0C nenhuns

eco +2B

l a tenso do regulador (10bits, MSB-LSB eficazes);


considerando o divisor da entrada, a tenso em V
<value>/1024*5*34/12

SET_VPP

0x0D 1B

eco +1B

ajusta a tenso do regulador a <parameter>/10;


se o erro < 200 milivolt dentro de 15ms retornam o
<parameter>, se no o erro (0xFE)

eco

controles 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

eco

controles 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

eco +1B

l 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

eco

Comando de ICSP: Configurao da carga (000000),


T1 ns entre o comando e dados; 14 dados de bocado
(alinhado direito, MSB-LSB)

eco

Comando 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, MSBLSB)

eco

Comando de ICSP: Dados da carga na memria dos


dados (000011), no T1 ns entre o comando e nos
dados; 8 dados de bocado

EN_VPP_VCC

SET_CK_D

READ_PINS

LOAD_CONF

LOAD_DATA_PROG

LOAD_DATA_DATA

0x0E 1B

0x0F 1B

0x10 nenhuns

0x11 2B

0x12 2B

0x13 1B

READ_DATA_PROG

0x14 nenhuns

eco +2B

Comando de ICSP: Ler dados da memria do


programa (000100), do T1 ns entre o comando e dos
dados; 14 dados de bocado (alinhado direito, MSBLSB)

READ_DATA_DATA

0x15 nenhuns

eco +1B

Comando de ICSP: Ler dados da memria dos dados


(000101), do T1 ns entre o comando e dos dados; 8
dados de bocado

INC_ADDR

0x16 nenhuns

eco

Comando de ICSP: Incrementar o endereo (000110),


T1 ns atraso na extremidade

INC_ADDR_N

0x17 1B

eco

Comando de ICSP: Incrementar o endereo (000110),


T1 ns atraso na extremidade; tempos repetidos de N

BEGIN_PROG

0x18 nenhuns

eco

Comando de ICSP: Comear a programar (001000)

BULK_ERASE_PROG

0x19 nenhuns

eco

Comando de ICSP: Memria maioria do programa do


Erase (001001)

END_PROG

0x1A nenhuns

eco

Comando de ICSP: Programao do fim (001010)

BULK_ERASE_DATA

0x1B nenhuns

eco

Comando de ICSP: Memria maioria dos dados do


Erase (001011)

END_PROG2

0x1C nenhuns

eco

Comando de ICSP: Programao do fim (001110)

ROW_ERASE_PROG

0x1D nenhuns

eco

Comando de ICSP: Memria do programa do Erase


da fileira (010001)

BEGIN_PROG2

0x1E nenhuns

eco

Comando de ICSP: Comear a programar (0011000)

CUST_CMD

0x1F 1B

eco

Comando de ICSP especific no parmetro

PROG_C

0x20 2B

eco +1B

Programa uma palavra depois do algoritmo 12Cxxx:


000010, 001000, 001110, pulsos de M & overpulses
de N

CORE_INS

0x21 2B

eco

Comando de PIC18 ICSP: Instruo do ncleo


(0000); 16 dados de bocado (MSB-LSB)

SHIFT_TABLAT

0x22 nenhuns

eco +1B

Comando de PIC18 ICSP: Desloc TABLAT (0010); 8


dados de bocado

TABLE_READ

0x23 nenhuns

eco +1B

Comando de PIC18 ICSP: A tabela leu (1000); 8


dados de bocado

TBLR_INC_N

0x24 1B

Comando de PIC18 ICSP: A tabela leu borne-inc


echo+N+NB (1001); 8 dados de bocado; tempos das repeties N;
retornos N e dados do N.B.

TABLE_WRITE

0x25 2B

eco

Comando de PIC18 ICSP: A tabela escreve (1100);


16 dados de bocado (MSB-LSB)

eco

Comando de PIC18 ICSP: A tabela escreve borneinc (1101); 16 dados de bocado (MSB-LSB); tempos
das repeties N (N o primeiro parmetro)

eco

Comando 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_INC_N

TBLW_PROG

0x26 (2N+1) B

0x27 4B

TBLW_PROG_INC

0x28 4B

eco

Comando 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_DATA

0x29 3B

eco

Comando de PIC18 ICSP especific no byte 1; emite


16 dados de bocado (MSB-LSB)

READ_DATA

0x2A 1B

echo+1B

Comando de PIC18 ICSP especific no byte 1; l 8


dados de bocado

I2C_INIT

0x2B 1B

eco

Inicializa 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_READ

0x2C 3B

L bytes do <parameter 1> da barra-nibus de I2C


using o <parameter 2> como o byte de controle e o
<parameter 3> como o endereo; foras
automaticamente o bocado do RW no byte de
echo+1+NB
controle. Respondem com <parameter 1> + os dados
ou com ACK_ERR (0xFD) em caso de reconhecer o
erro (por exemplo se no h nenhum dispositivo na
barra-nibus)

I2C_WRITE

0x2D 3B+NB

eco

Escreve bytes do <parameter 1> barra-nibus de


I2C using o <parameter 2> como o byte de controle e
o <parameter 3> 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_READ2

0x2E 4B

echo+1+NB

L da barra-nibus de I2C; idntico a I2C_READ,


mas usa 2 bytes endereando

0x2F 1B

eco

Inicializa uma comunicao de SPI:


0xFF incapacita SPI
velocidade do 1:0 do bocado: 0=100kbps,
1=200kbps, 2=300kbps, 3=500kbps
modalidade do 2:3 SPI do bocado

SPI_READ

0x30 1B

L bytes do <parameter 1> da barra-nibus de SPI.


Retorna o <parameter 1> + dados;
echo+1+NB
Se o <parameter 1>=0 retorna o byte que estve
recebido por ltimo (durante ou lido ou escrever)

SPI_WRITE

0x31 1B+NB

echo+1B

Escrevem bytes do <parameter 1> barra-nibus de


SPI.

0x32 2B

eco

Nveis de foras de portos de comunicao:


<parameter 1> = <RB7: RB0>
<PARAMETER 2> = <RC7, RC6, RA5: RA3>
No muda o sentido do sinal.

0x33 3B

Comando de ATMEL: ler a memria do programa


(0010H000); l palavras do <parameter 1> no
echo+1+2NB
<parameter 2> do endereo: <parameter 3> atravs
de SPI. Retorna o <parametro 1> + dados

SPI_INIT

EXT_PORT

AT_READ_DATA

AT_LOAD_DATA

0x34 3B+2N

echo+1B

Comando de ATMEL: pgina da memria do


programa de carga (0100H000); carrega palavras do
<parameter 1> no <parameter 2> do endereo:
<parameter 3> atravs de SPI. Retorna o <parameter
1>

CLOCK_GEN

0x35 1B

eco

Gera 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)

SEIS

0x36 3B

eco

Comando de PIC24 ICSP: Instruo do ncleo


(0000); 24 dados de bocado (MSB primeiramente)

SIX_LONG

0x3E 3B

eco

Comando de PIC24 ICSP: Instruo do ncleo


(0000); 24 dados de bocado (MSB primeiramente);
adiciona 2 ICSP_NOP na extremidade

SIX_LONG5

0x49 3B

eco

Comando de PIC24 ICSP: Instruo do ncleo


(0000); 24 dados de bocado (MSB primeiramente);
adiciona 5 ICSP_NOP na extremidade

SIX_N

0x3F 1+3NB

eco

Comando 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=<parameter1>&0x3F,
M=<parameter1> >>6

REGOUT

0x37 nenhuns

eco +2B

Comando de PIC24 ICSP: Do deslocamento registo


para fora VISI (0001); 16 dados de bocado

ICSP_NOP

0x38 nenhuns

eco

Comando de PIC24 ICSP: Executar NOP (0000)

TX16

0x39 1+2NB

echo+1B

Transmitem 16 palavras do bocado sobre ICSP (MSB


primeiramente); perodo de pulso de disparo: 2* (T11) +1 ns

RX16

0x3A 1B

Recebe 16 palavras do bocado sobre ICSP (MSB


echo+1+2NB primeiramente); perodo de pulso de disparo: 2* (T11) +1 ns

uW_INIT

0x3B nenhuns

eco

Inicializa uma comunicao de MicroWire

0x3C 1B+NB

echo+1B

Escreve bocados do <parameter 1> barra-nibus de


MicroWire.
Os dados so MSB especific primeiramente

uW_RX

0x3D 1B

L bocados do <parameter 1> da barra-nibus de


echo+1+NB MicroWire. Retorna o <parameter 1> + dados, MSB
primeiramente

OW_RESET

0x40 no

echo+1B

Pulso de restaurao de OneWire; deteta o pulso


slave da presena: 1=present 0=absent

OW_WRITE

0x41 1B+NB

eco

Escreve bytes do <parameter 1> na barra-nibus de


OneWire

OW_READ

0x42 1B

echo+1+NB

L bytes do <parameter 1> da barra-nibus de


OneWire

UNIO_STBY

0x43 no

eco

Pulso da espera do UNIO

UNIO_COM

0x44 1B+1B+NB echo+1+NB Executa um ciclo de uma comunicao do UNIO:

uW_TX

escreve bytes do <parameter 1> e l bytes do


<parameter 2>; gera um byte da sincronizao se h
uns bytes a escrever
SET_PORT_DIR

0x45 2B

eco

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


<parameter 1> = <RB7: RB0>
<PARAMETER 2> = <RC7, RC6, RA5: RA3>

READ_B

0x46 no

echo+1B

L IO B porturio

READ_AC

0x47 no

echo+1B

L os portos A e C do IO:
<RC7, RC6, RA5: RA3>

AT_HV_RTX

0x48 1B+2NB

echo+1B

Emite os bocados 2N*8 em RB0/RC7 (PB1/PB0),


com o CLK em RC6 (PB3)
byte N=PB1, byte N+1=PB0
Recebe 8 bocados de RB1 (PB2) (somente o ltimo
byte)

READ_RAM

0xF0 2B

echo+3B

Lem da memria do anfitrio; 16 endereos de


bocado, 8 dados de bocado; endereo dos ecos

echo+3B

Escreve memria do anfitrio; 16 endereos de


bocado, 8 dados de bocado; os ecos endeream e
dados

nenhuns

Restaura o ponteiro de instruo e executa todas as


instrues outra vez.
Para finalidades de teste somente.

WRITE_RAM

LAO

0xF1 3B

0xF2 nenhuns

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-2
D3
1N4148
(ou
todo
o
diodo,
melhorar
se
Shottky)
Tipo
ou
outro
do
resistor
de
L1
100uH
R1
22K
R2
12K
R3
100K
R4:
6
10K
R7
1M
R8-9
2.2K
R10
10K
R11:
23
100
R24-25
330K
R26-27
10K
C1
22-100uF
25V
C2-3
22pF
C4
>=
220nF
C5
100nF
C6
10uF
C7-8
100nF

Tipo
B
Stripline
da
Stripline do pino CONN4 5

do
fmea

USB
do

pino

CONN2-3

CONN1
10

Como se usar
O 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):

28-40 pino PICs + conetor de ICSP

8-20 PICs do pino (mesmo que o prato principal, mas l mais espao para um soquete de ZIF) +
conexo de ICSP.

3.3V conexo de PIC16-18 + de ICSP. (esta placa tem igualmente um regulador 3.3V)

Conexo de PIC24-30-33 + de ICSP. (esta placa tem igualmente um regulador 3.3V)

I2C, SPI, memrias do uW e conexo de I2C-SPI.

8-14-20-28-40 micros do pino ATMEL e conexo de I2C-SPI

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

3.3V;

abaixo

est

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

nas

placas

de

expanso:

O mapa dos recursos usou-se:


Pin

Vrias
funes

ICSP

RB7

PGM

RB6

Pulso de
disparo de
ICSP

RB5

Dados de
ICSP

I2CEEPROM

SPIEEPROM

SPI-ATMEL

A2

uWOneWire/UNIO
EEPROM

W (6)

RB4

A1

HLD

RB3

A0

CS

Pulso de disparo do
dispositivo

PRE (7)

RB1

Pulso de
disparo

Pulso de
disparo

Pulso de disparo de
SPI

Pulso de
disparo

RB0

Dados

Dados para
fora (MISO)

Dados para fora


(MISO)

Dados para
fora

Dados em
(MOSI)

Dados em (MOSI)

Dados
dentro

WP

RESTAURAO

RB2

S (1)

expanso

RC7
RC6

WP

RC5

USB D+

RC4

D do USB

RC2

DCDC
PWM

RC1

controles
VDD

RC0

controles
VPP

RA5

expanso

RA4

expanso

RA3

expanso

Dados IO

Diodo
RA2 emissor de
luz 2
Diodo
RA1 emissor de
luz 1
RA0

CAD para
regulador

RE3

Interruptor
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.sch
PWB do mdulo principal: .pdf, .png; placas principais do mdulo + de expanso: .pdf (igualmente
espelhado),
.png;
tudo
no
formato
do
PWB:
Oprog.pcb
O arquivo completo, inclui fontes, gerber, pdf, png
Como 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

Lo

de

OneWire

no

pacote

TO92:

Resposta 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/div

Como contribuir
A 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.
, 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).
Se voc encontra este projeto til me escrever um par linhas:

Transferncias
Diagrama
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
aplicao
OpenProg (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
Opgui
Certificados da oitava

Histria
h muito tempo
2007
2008
Julho 2008
Agosto 2008
Novembro 2008
Janeiro 2009
Mar 2009
Abril 2009
Junho 2009
Setembro 2009
Outubro 2009
Janeiro 2010
Fevereiro 2010
Mar 2010
Abril 2010

necessidade para um programador de confiana e livre do USB


experincias com firmwares do PIC e do varionus do USB; regulador de tenso
primeiros prottipos e software
documentao e Web site, verso liberada 0.3
verso 0.4: sustentao adicionada para I2C EEPROMs
verso 0.5: Barra-nibus de I2C & de SPI, dispositivos adicionados de algum ATMEL
programas de verificao v0.5.1: adicionou alguns dispositivos do PIC, removidos alguns
erros
programas de verificao v0.5.2 e v0.5.3: adicionou algum PIC os dispositivos de um
Atmel, removidos alguns erros
diagrama esquemtico e PWB v1.4: adaptador mudado de Atmel
verso 0.6: inteiramente firmware do USB GPL2, 93Sx6 adicionado MicroWire EEPROMs
verso 0.6.1: resolveu os erros de algum SPI, adicionados alguns dispositivos de Atmel e
93Cx6C
programas de verificao v0.6.2: bugfix
verso 0.7.0: PIC24 e SPI adicionados EEPROMs;
circuita v1.5: placa de expanso para 3.3V PIC24-30-33
programas de verificao v0.7.1: adicionou alguns dispositivos de PIC18 e de Atmel; bugfix
programas de verificao v0.7.2: adicionou alguns eeproms de MicroWire; bugfix
programas de verificao v0.7.3: PIC16F1xxx adicionado; Trabalhos OP nas janelas;
codificar o rework e o bugfix;

Maio 2010
Junho 2010

Julho 2010

Agosto 2010

Abril 2011

Junho 2011

Janeiro 2012

Julho 2012

Junho 2013

Mar 2014

circuita v1.6: placa de expanso para 3.3V PIC16-18


programas de verificao v0.7.4: PIC18FxJx adicionado, PIC18FxKx, PIC24H, dsPIC3033, ATtiny2313, 241024; bugfix;
circuita v1.7: placa de expanso PIC24-30-33 modificada, PIC30 agora em 5V
programas de verificao v0.7.5: corrigido escrever o erro para os config 18Fx, ICD
empreendedores adicionado escrevem para 16Fx, vrios reparos do menor
firmware 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);
programas 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
programas 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
programas 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
programas de verificao v0.7.10: 12F617,12F1501,16F1503-7-8-9,16F72021,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
firmware 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;
programas de verificao v0.8.1: vrias melhorias da interface de utilizador; EEPROM
fixos escrevem quando a proteo do cdigo ativa (16F83-84,12F629, 12F675,16F62728,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;
firmware 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;

programas 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, 16F1512Novembro 2014
13,16F1574-75-78-79,16F1703-04-05-07-08-09-13-16-17-18-19, 16F178889,16F570,16LF1554-59, 18F24K50-25K50-26K50-45K50-46K50, 18F25K80-26K8045K80-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,18F84J1190,18F85J10-11-15-50-90, 18F86J10-11-15-16-50-55-90-93,18F87J10-11-50-72-90-93,
25X128,25Q40
aumentar a sustentao para micros do PIC e do ATMEL (assim que eu posso come
o futuro
amostras livres); adicionar ST72, JTAG, memrias paralelas; expandir a sustentao de
ICD; compilar firmware igualmente com SDCC

Ligaes
Abrir
o
programador
em
SourceForge
Padro
do
USB
2.0
Pgina
ESCONDIDA
em
USB.org
pdb,
um
depurador
de
programas
simples
de
ICD
para
PIC16
Guia
rpido
a
um
firmware
ESCONDIDO
Central
do
USB
USB
&
PIC
Microchip
Atmel
documentao
do
hiddev
Winpic
ICprog
Oitava
gEDA-Gschem
PWB
GNU/GPL
Piklab
IDE
para
microcontroladores
do
PIC
USBPicprog,
um
outro
programador
da
fonte
aberta
Cygwin, um ambiente do linux dentro das janelas

Contatos
Para
Alberto

informaes

ou

comentrios:

Maccioni

Voc pode igualmente afixar suas perguntas no frum no sourceforge.

Obrigado
Eu 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

Você também pode gostar