Você está na página 1de 20

PROYECTO 1

PICtool v1.0
06/04/2011

Sera nuestro primer proyecto para comunicacin USB 2.0, utilian!o como inter"a al
P#C1$%2&&0, est' !ise(a!o para correr )a*o +in!o,s -P e in"eriores, ten!r' la "inali!a! !e
intro!ucirnos en el tema ./plicaciones USB. y 0ue a 1eces no sa)emos cmo a)or!ar, pues a
pesar !e tanta in"ormacin es !i"2cil encontrar al3o certero para e4plorar el tema, espero mis
ami3os les sea !e ayu!a, como lo "ue para m2 en su momento, no ol1i!en pre3untar o
5acerme lle3ar sus comentarios pues solo as2 apren!emos to!os.
Este sencillo proyecto est' !ise(a!o para reci)ir !atos !el puerto USB !el PC, me!iante los
cuales estaremos conmutan!o 6 sali!as l3icas en 6 pines !el P#C, el !ato 0ue estaremos
reci)ien!o es un pa0uete !e 2 )ytes, uno correspon!iente al mo!o y otro al n7mero !e le! a
conmutar, es !ecir8

1er )yte, Si mo!o 9 .0. entonces entra a mo!o :E;
2!o )yte, Si !ato 9 .1 2 < 6., conmutar :E; correspon!iente

:a i!ea central !e "uncionamiento es la si3uiente8

PC =>>>? ;R#@ER -P =>>>? P#C1$%2&&0

Por tal moti1o los < elementos !e)en re3irse por !os c!i3os importantes para 0ue e4ista
comunicacin y reconocimiento entre ellos8 Pro!uct #; y @en!or #;.

@en!or #;8 Este c!i3o es la "irma !e al3una empresa para utiliar la comunicacin USB, y
AO !e)e ser cam)ia!a. Bicroc5ip9 06;$.

Pro!uct #;8 Este c!i3o pue!e ser mo!i"ica!o por el usuario, para personaliar al37n circuito
en particular.

El proyecto P#Ctool 11.0 "ue !esarrolla!o en 6 pasos importantes8
1.>;ia3rama Electrnico CE/D:EE
2.>E!icion !e C!i3o P#C1$%2&&0 CCCSE
<.>E!icion !e ;ri1er +in!o,s -P CBloc !e notasE
6.>E!icion !e #nter"a Dr'"ica C@isual CFE

/ continuacin iremos e4plican!o ca!a paso8
Paso 1
Utiliaremos un !ia3rama sencillo 0ue sea "'cil !e armar en proto)oar!, mane*aremos pocos
componentes, no es necesario lle3ar 5asta el !ise(o en PCB, pues m's a!elante con nue1os
proyectos iremos a(a!ien!o m's componentesG por en!e recomien!o 0ue el arma!o se
0ue!e en proto)oar! por a5ora.

/remos uso !el so"t,are E/D:E 1.10.0 para !ise(ar el es0uem'tico !e nuestro circuito en
cuestin.
:os materiales necesarios son8
1>Proto)oar!
1>P#C1$%2&&0
1>Conector USB tipo B
1>Capacitor cer'mico 6H0n%
1>Capacitor cer'mico 100n%
2>Capacitores cer'micos 22p%
1>Cristal 12BI
1>Resistor 10J
6>Resitores <<0
6>:e!s <mm
KCa)le, pinas etc.

@er "i3ura 1, correspon!iente al !ia3rama electrnico8
%i3ura 1
%i3ura 2
:as caracter2sticas 3enerales son8
>Utilia un cristal !e 12BI
>Un capacitor !e 100n% para e1itar rui!o
>Un capacitor !e 6H0n% necesario en el pin @us)
>Y las cone4iones correspon!ientes a las 6 sali!as l3icas, 1er "i3ura 28

:E;19 PORTC.1
:E;29 PORTC.2
:E;<9 PORTC.L
:E;69 PORTC.H
Para ir relacionan!o los pines !el micro a lo menciona!o 1er "i3ura <.
%i3ura <
;espuMs !e 5a)er aplica!o el !ia3rama anterior, el arma!o !el circuito en la proto)oar!
!e)er2a 1erse similar a la "i3ura 6.
%i3ura 6
Paso 2
Para la e!icin !el c!i3o a implementar al P#C1$%2&&0 se utiliara el compila!or P#C C
Compiler CCS, para tMrminos 3enerales ser' e!ita!o en .c!i3o C., para ello utiliaremos 6
li)rer2as propias al compila!or8

pic18f2550.h 9 :i)rer2a para utiliar !ic5o !ispositi1o con to!as sus caracter2sticas en
5ar!,are. Propia !el compila!or y no !e)e mo!i"icarse.

pic18_usb.h 9 :i)rer2a correspon!iente al uso !e la comunicacin USB para P#C1$. Propia
!el compila!or y no !e)e mo!i"icarse.

usb.c 9 :i)rer2a para uso est'n!ar !e comunicacin USB. Propia !el compila!or y no !e)e
mo!i"icarse.

descriptor_US.h 9 :i)rer2a 0ue contiene la con"i3uracin y !escripcin 3eneral !el
!ispositi1o a conectar. :i)rer2a !e e*emplo 0ue "ue mo!i"ica!a para utiliar con este proyecto
en particular, u)ica!a en la carpeta !e samples !el compila!or con el nom)re !e
.us)N!escNscope.5., son 2 las partes mo!i"ica!as C1er "i3ura &E8
1!"e#dor I$% "I$& 04$8, c!i3o correspon!iente a la "irma !e Bicroc5ip para utiliar
comunicacin USB.
2.!Product I$% PI$& 00'0, c!i3o cual0uiera, esco3i!o para este proyecto en particular y
0ue !e)e ser i3ual al !e la #nter"a y ;ri1er.
(Por lo t)#to PIC% $river e I#terf)* debe# te#er el +is+o "I$ , PI$.
%i3ura &
Retoman!o, la "uncin principal !el P#C es leer los !os )ytes en1ia!os !es!e el PC, en !on!e
el 1er )yte correspon!e al mo!o y el 2!o al n7mero !e le!, entonces8

>El primer )yte en1ia!o correspon!e al mo!o
-.$. & 0/00, 1er )yte
>El se3un!o )yte correspon!e al n7mero !e :E; y pu!e ser cual0uiera !e los c!i3os
si3uientes8
01$1 & 0/01, 2!o )yte
01$2 & 0/02, 2!o )yte
01$2 & 0/02, 2!o )yte
01$4 & 0/04, 2!o )yte
3p)4)r 01$5s & 0/05, 2!o )yte

El c!i3o C )'sico para la conmutacin !e !ic5os le!s es el si3uiente8
???>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if Cmo!o990E OOEl 1er )yte correspon!e al mo!o :E;P
6
s7itchC!atoE OO 2!o )yte para el le! correspon!iente
6
case 18 QoutputNto33leC:E;1EG )reaRGS
case 28 QoutputNto33leC:E;2EG )reaRGS
case <8 QoutputNto33leC:E;<EG )reaRGS
case 68 QoutputNto33leC:E;6EG )reaRGS
case &8 Q:E;NO%%C:E;1EG :E;NO%%C:E;2EG
:E;NO%%C:E;<EG :E;NO%%C:E;6EG
)reaRGS
8
8
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>===
Como 1er'n las instrucciones #% y S+#TCI son )'sicas !el c!i3o C, pero tam)iMn 5acemos
uso !e una instruccin propia !el CCSG .outputNto33le., la cual nos permite cam)iar el
esta!o l3ico !e una sali!a !el P#C, es !ecir8

PORTC.1 9 0 >>>?output_to44le>>>? PORTC.1 9 1
PORTC.1 9 1 >>>?output_to44le>>>? PORTC.1 9 0

1l c9di4o co+pleto se +uestr) ) co#ti#u)ci9#:
???>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Finclu!e =1$%2&&0.5?
F"uses ISP::,AO+;T,AOPROTECT,AO:@P,AO;EBUD,USB;#@,P::<,CPU;#@1,@REDEA
Fuse !elayCclocR96$000000E

F!e"ine USBNI#;N;E@#CE %/:SE
F!e"ine USBNEP1NR-NEA/B:E USBNEA/B:ENBU:J
F!e"ine USBNEP1NR-NS#TE 2

Finclu!e =pic1$Nus).5?
Finclu!e .!escriptorNUSB.5.
Finclu!e =us).c?

F!e"ine :E;1 P#ANC1
F!e"ine :E;2 P#ANC2
F!e"ine :E;< P#ANCL
F!e"ine :E;6 P#ANCH

F!e"ine :E;NOA outputN5i35
F!e"ine :E;NO%% outputNlo,

F!e"ine mo!o !atainU0V
F!e"ine !ato !atainU1V

1oi! mainC1oi!E
Q
int$ !atainU2VG

:E;NO%%C:E;1EG
:E;NO%%C:E;2EG
:E;NO%%C:E;<EG
:E;NO%%C:E;6EG

:E;NOAC:E;1EG
:E;NOAC:E;6EG

us)NinitCEG
us)NtasRCEG
us)N,aitN"orNenumerationCEG

:E;NO%%C:E;1EG
:E;NO%%C:E;6EG
:E;NOAC:E;2EG
:E;NOAC:E;<EG

!elayNmsC1000EG
:E;NO%%C:E;2EG
:E;NO%%C:E;<EG

,5ile CTRUEE
Q
i"Cus)Nenumerate!CEE
Q
i" Cus)NR)5itC1EE
Q
us)N3etNpacRetC1, !atain, 2EG
i" Cmo!o990E
Q
s,itc5C!atoE
Q
case 18 QoutputNto33leC:E;1EG )reaRGS
case 28 QoutputNto33leC:E;2EG )reaRGS
case <8 QoutputNto33leC:E;<EG )reaRGS
case 68 QoutputNto33leC:E;6EG )reaRGS
case &8 Q:E;NO%%C:E;1EG :E;NO%%C:E;2EG
:E;NO%%C:E;<EG :E;NO%%C:E;6EG
)reaRGS
S
S
S
S
S
S
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>???
KB's a!elante se proporcionaran to!os los arc5i1os relaciona!os a este proyecto8 est'n
comenta!os.
Compilan!o CCCSE el c!i3o anterior se 3enera nuestro 1alioso .IE-, 0ue po!remos car3ar a
nuestro P#C1$%2&&0 con cual0uier pro3rama!or.
Paso <
Bicroc5ip proporciona un ;R#@ER 0ue corre )a*o +in!o,s -P, para comunicacin USB para la
"amilia P#C1$, el cual pue!e !escar3arse !es!e su sitio ,e).

El nom)re !el $river es -C;PUS, y est' compuesto por & elementos8
1.!Ioctls.h
2.!+chpusb.c)t
2.!+chpusb.i#f
4.!+chpusb.s,s
5.!+chpusb64.s,s

En nuestro caso nos interesa solo en <+chpusb.i#f<% se trata !el arc5i1o a mo!i"icar pues
contiene los c!i3os "I$ , PI$ 0ue necesitamos con"i3urar.

;e los 6 pasos este es el m's "'cil, pues solo necesitamos mo!i"icar el c!i3o PRO;UCT #; 9
P#;, el 1alor para !ic5o c!i3o ser' 00'0, el c!i3o @#; no ser' necesario cam)iarlo, pues
es la "irma !e Bicroc5ip para el uso !e comunicaciones USB, el cual correspon!e a04$8, ya
est' escrito por !e"ecto en el #A%.

En la %i3ura L pue!e 1erse la seccin a e!itar.
%i3ura
L

Una 1e e!ita!a esta parte nuestro ;ri1er estara listo para interactuar entre el P#C1$%2&&0 y
la #nter"a !e @isual CF.

;es!e este punto si ya tenemos el 5ar!,are arma!o con el P#C pro3rama!oG ya po!emos
conectar el circuito a la pc e instalar el !ri1er anteriormente e!ita!o.
/l conectar por primera 1e el P#Ctool 11.0 nos aparece una 1entana solicitan!o el !ri1er,
!ireccionamos manualmente 5asta !on!e se encuentra nuestro .;ri1erNP#Ctool., 1er "i3ura
H.
%i3ura H

/ceptamos y esperamos a 0ue se instale el !ri1er, !urante el proceso encen!er'n los le!s 1 y
6, al completar la instalacin encen!er'n los le!s 2 y <G !urante un se3un!o y "inalmente se
apa3aran. /l "inal !e la instalacin 1eremos en el pc una 1entana como en la "i3ura $.
%
i3ura $

/5ora nuestro 5ar!,are y !ri1er est'n listos, pero aun no 5ar'n na!a, pues 5ace "alta la
inter"a 3r'"ica para man!ar los !os )ytes 0ue necesita el 5ar!,are para conmutar las 6
sali!as l3icas.
Paso 6
E!itaremos una inter"a 3ra"2a sencilla utilian!o el so"t,are @isual CF 200&, a tra1Ms !e esta
controlaremos las 6 sali!as l3icas en nuestro 5ar!,are, 5aremos uso !e & )otonesG 6
correspon!ientes a las sali!as l3icas y el &to para poner a .cero. to!as las sali!as,
entonces8

Boton19 :E;1, sali!a 1
Boton29 :E;2, sali!a 2
Boton<9 :E;<, sali!a <
Boton69 :E;6, sali!a 6
Boton&9 Poner a cero to!o

Una 1e 0ue sa)emos lo 0ue necesitamos para nuestra inter"aG para interactuar con el
5ar!,are, pasamos a un elemento importante, necesitamos un arc5i1o .;:: para e4traer
par'metros !e control para la comunicacin USB, po!remos a(a!ir los c!i3os @#; y P#; y
as2 asociar nuestros < elementos8 P#C, ;R#@ER e #ATER%/T.
El elemento .;:: es in!ispensa)le, y tam)iMn nos lo proporciona Bicroc5ip, el .mpus)api.!ll.
nos "acilitara el mane*o !el puerto USB y no es necesario mo!i"icarlo, solo necesitamos
a(a!irlo a la 5ora !e 3enerar la aplicacin .E-E en @isual CF.

/)rimos @isual CF 200&, en arc5i1o seleccionamos nue1o proyecto y a su 1e seleccionar
./plicacin para +in!o,s., a partir !e a0u2 po!emos nom)rar y 3uar!ar el proyecto. @er
"i3ura W.
%i3ura W

/l aceptar aparecer' una pe0ue(a 1entana a la 0ue a3re3aremos & )otones, los cuales
tomaremos !el cua!ro !e 5erramientas !el la!o i0uier!o !e nuestra pantalla. @er "i3ura 10.
%i3ura 10

/l a(a!ir un )otn aparecer' como .)otn., 0ue !espuMs po!remos cam)iar a .:E;1..
Iasta este punto !e)emos aclarar 0ue para llamar en el c!i3o C a cual0uier )otn !e)emos
llamarlo por su nom)re y no con el te4to, por e*emplo8 El )otn 1 tiene como t2tulo .:E;1.,
pero se llama .le!1..
El te4to es el 0ue pue!e 1er el usuario en la inter"a, y el nom)re es el utilia!o para
manipular la accin !el mismo por el pro3rama!or.

Para ir crean!o el c!i3o 0ue necesitamos para ca!a )otn iremos a la seccin !e
propie!a!es, y seleccionamos .e1entos., para ca!a )otn escri)iremos el nom)re y la
accin8 le!1NclicR, !e esta manera al !ar enter; se ira crean!o autom'ticamente una seccin
!e c!i3o para ca!a )otn, 1er "i3ura 11.
%i3ura 11

/l 3enerar un c!i3o por ca!a )otn, ya solo ara "alta e!itar su accin, es !ecirG el conteni!o
!e ca!a lla1e.
Por e*emplo, si nos en"ocamos en el )otn :E;1, !e)emos escri)ir las instrucciones 0ue
man!en un )yte !e mo!o le! y otro correspon!iente al le!,
entonces8usb)pi.ledPIC=0/01>?
1er b,te ledPIC & 0/00
2do b,te & 0/01
Por lo 0ue estar2amos en1ian!o !es!e la inter"a un pa0uete !e 2 )ytes, el 5ar!,are los
reci)ir' y enten!er' 0ue !e)e conmutar el :E;1. @er "i3ura 12.
%i3ura 12

Una 1e e!ita!os to!os los )otones !e)emos a3re3ar las si3uientes l2neas al principio !el
c!i3o8
1>usin3 System.;ia3nosticsG OOClase para a)rir p'3ina ,e)
2>P#Ctool/P# us)api 9 ne, P#Ctool/P#CEGOOpara incluir acciones api
@er "i3ura 1<.
%i3ura 1<
/l 3uar!ar el proyecto, se 3enera un arc5i1o con el nom)re !e <pro4r)+.cs<% cam)iaremos
!e nom)re este arc5i1o por <PICtool3PI.cs<% )orraremos to!o su conteni!o y pe3aremos el
si3uiente te4to8

usin3 SystemG
usin3 System.Collections.DenericG
usin3 System.+in!o,s.%ormsG
usin3 System.Runtime.#nteropSer1icesG OO Clase para importar ;::
usin3 P@O#; 9 System.#ntPtrG
usin3 ;+OR; 9 System.U#nt<2G
namespace P#Ctool
Q
unsa"e pu)lic class P#Ctool/P#
Q
Fre3ion ;e"inicin !e los Strin3s8 En!Point y @#;NP#;
strin3 1i!Npi!Nnorm 9 .1i!N06!$Xpi!N00W0.G
strin3 outNpipe 9 .YYBCIPNEP1.G
strin3 inNpipe 9 .YYBCIPNEP1.G
Fen!re3ion
Fre3ion %unciones importa!as !e la ;::8 mpus)api.!ll
U;ll#mportC.mpus)api.!ll.EV
pri1ate static e4tern ;+OR; NBPUSBDet;::@ersionCEG
U;ll#mportC.mpus)api.!ll.EV
pri1ate static e4tern ;+OR; NBPUSBDet;e1iceCountCstrin3 p@#;NP#;EG
U;ll#mportC.mpus)api.!ll.EV
pri1ate static e4tern 1oi!K NBPUSBOpenC;+OR; instance, strin3 p@#;NP#;, strin3 pEP,
;+OR; !,;ir, ;+OR; !,Reser1e!EG
U;ll#mportC.mpus)api.!ll.EV
pri1ate static e4tern ;+OR; NBPUSBRea!C1oi!K 5an!le, 1oi!K p;ata, ;+OR; !,:en,
;+OR;K p:en3t5, ;+OR; !,Billisecon!sEG
U;ll#mportC.mpus)api.!ll.EV
pri1ate static e4tern ;+OR; NBPUSB+riteC1oi!K 5an!le, 1oi!K p;ata, ;+OR; !,:en,
;+OR;K p:en3t5, ;+OR; !,Billisecon!sEG
U;ll#mportC.mpus)api.!ll.EV
pri1ate static e4tern ;+OR; NBPUSBRea!#ntC1oi!K 5an!le, ;+OR;K p;ata, ;+OR;
!,:en, ;+OR;K p:en3t5, ;+OR; !,Billisecon!sEG
U;ll#mportC.mpus)api.!ll.EV
pri1ate static e4tern )ool NBPUSBCloseC1oi!K 5an!leEG
Fen!re3ion
1oi!K myOutPipeG
1oi!K my#nPipeG
static 1oi! BainCE
Q
/pplication.Ena)le@isualStylesCEG
/pplication.RunCne, P#CtoolCEEG
S
pu)lic 1oi! OpenPipesCE
Q
;+OR; selection 9 0G
myOutPipe 9 NBPUSBOpenCselection, 1i!Npi!Nnorm, outNpipe, 0, 0EG
my#nPipe 9 NBPUSBOpenCselection, 1i!Npi!Nnorm, inNpipe, 1, 0EG
S
pu)lic 1oi! ClosePipesCE
Q
NBPUSBCloseCmyOutPipeEG
NBPUSBCloseCmy#nPipeEG
S
pri1ate 1oi! Sen!PacRetC)yteK Sen!;ata, ;+OR; Sen!:en3t5E
Q
uint Sen!;elay 9 1G
;+OR; Sent;ata:en3t5G
OpenPipesCEG
NBPUSB+riteCmyOutPipe, C1oi!KESen!;ata, Sen!:en3t5, XSent;ata:en3t5,
Sen!;elayEG
ClosePipesCEG
S
pri1ate 1oi! Recei1ePacRetC)yteK Recei1e;ata, ;+OR;K Recei1e:en3t5E
Q
uint Recei1e;elay 9 1G
;+OR; E4pecte!Recei1e:en3t5 9 KRecei1e:en3t5G
OpenPipesCEG
NBPUSBRea!Cmy#nPipe, C1oi!KERecei1e;ata, E4pecte!Recei1e:en3t5,
Recei1e:en3t5, Recei1e;elayEG
ClosePipesCEG
S
pu)lic 1oi! le!P#CCuint le!E
Q
)yteK sen!N)u" 9 stacRalloc )yteU2VG
sen!N)u"U0V 9 0400G OOBo!o :E;
sen!N)u"U1V 9 C)yteEle!G OOSeleccionar :E;
Sen!PacRetCsen!N)u", 2EG OOEn1iar pa0uete
S
S
S

En el arc5i1o anterior mo!i"icamos !os cosas importantes8
1>Se a(a!i c!i3o re"erente al c!i3o @#; y P#; a!em's !e la e4traccin !e al3unos
par'metros !el arc5i1o <+pusb)pi.dll<% recor!emos 0ue se trata !e un arc5i1o
proporciona!o por microc5ip para este tipo !e aplicaciones.
2>Se a3re3 la "uncin ledPIC, la cual nos ayu!a a man!ar los !os )ytes ca!a 0ue se
presiona un )otn !e la inter"a.
@er "i3uras 16 y 1&.
%i3ura 16
%i3ura 1&
/5ora ya solo nos "alta una cosa, 3uar!ar el arc5i1o <+pusb)pi.dll< !entro !e la carpeta
!on!e se 3uar! el proyecto P#Ctool crea!o en 1isual CF 200&, !ar clic en .proyecto.>>?clic
en .a3re3ar elemento e4istente. y !ireccionar la mpus)api 0ue 3uar!amos anteriormente.
%inalmente mo!i"icar una casilla en propie!a!es !el proyectoG esto es 0ue al momento !e
3enerar Ml .E-E nos *ale los par'metros necesarios !el mpus)api, para eso !e)emos permitir
.DEAER/R. con c!i3o no se3uro, 1er "i3ura 1L.
%i3ura 1L

@IA30-1AB1 est)+os listos para pro)ar nuestro proyecto, ya solo !e)emos !ar clic en
DEAER/R y listoZZ. Suerte.
Sin m's por el momento espero sea !e ayu!a.


Descargar:
PICtool v1.0
PROYECTO 18 P#Ctool 11.0 para +in!o,s -P, proyecto sencillo para manipular 6 :E;s a
tra1Ms !el puerto USB !e una computa!ora, utilian!o al P#C1$%2&&0. Contiene los c!i3os
"uente !e8 !ia3rama, "irm,are P#C, ;ri1er -P e #nter"a Dr'"ica para el pc.
P#Ctool 11.0.rar
/rc5i1o comprimi!o U<6W.1 JBV
;escar3a
PROYECTO 2
PICtool v2.0
20/0'/2012

Con los nue1os sistemas operati1os !e +in!o,sC@ista, +inH, +in$EG el !ri1er !e Bicroc5ip
ya no es compati)le, nos !e*a "uera !e la m'4ima 1eloci!a! C12B)sE, resultan!o como
7nicos mo!os HID y CDC.

Pero 3racias al !ri1er 3enMrico +inUSB !e +in!o,s, retomaremos la comunicacin USB 2.0
con la serie "a1orita !e microntrola!ores P#C1$%44&4, 0ue traen el 5ar!,are para !ic5a
comunicacin, en mo!o "Custom Driver" !e1ol1iMn!onos los 12B)s, compati)le con los
nue1os sistemas en sus 1ersiones !e <2 y L6)its.

El !esarrollo es sencillo, utiliaremos el P#C1$%2&&0 con un cristal !e 20BI, al i3ual 0ue el
proyecto anterior, constara !e 6 sali!as l3icas !el puerto B, 0ue acti1aremos y
!esacti1aremos a 1olunta! !es!e la inter"a.

#!ea central8
PC =>>? +inUSBC@ista, +inH, +in$E =>>? P#C1$%2&&0

:a or3aniacin USB !e los nue1os sistemas !e +in!o,s ya no e4i3e 0ue Iar!,are, ;ri1er e
#nter"a conten3an el mismo c!i3o @#; y P#;, 5oy la i!enti"icacin es por .Rutas..
Slo Iar!,are y ;ri1er !e)en contener el mismo @#; y P#;, mientras 0ue ;ri1er e #nter"a
la misma Ruta.
Esto supone 0ue pue!en conectarse 1arios !ispositi1os con el mismo @#; y P#; al mismo PC,
al instalarse !e i!enti"ica a ca!a uno por su Ruta.

El !esarrollo consta !e 6 pasos, 0ue !escri)iremos )re1emente, la mayor2a !e las
caracter2sticas ya estas e4plica!asCProyecto 1E8
1>;ia3rama CE/D:E L.6.0E
2>%irm,are P#C1$%2&&0 CCCS 16.160E
<>;ri1er +inUSB CSin e!itarE
6>#nter"a Dr'"ica C@CF 200$ E4pressE
Paso 1
/ continuacin el !ia3rama electrnicoC%i3ura 1E.
Bateriales8
6>Resistores <<0 o5ms
1>Resistor 10J
1>Capacitor 100n%
1>Capacitor 6H0n%
2>Capacitores 22p%
1>Cristal 20BI
1>Pus5 )utton
6>:E;s st!
1>Conector USB>BOI
%i3ura 1
:E;s conecta!os al PUERTO BC%i3ura 2E8
PORTB.5 = LED1
PORTB.4 = LED2
PORTB. = LED
PORTB.2 = LED4
%i3ura
2
Paso 2
El %irm,are !el P#C1$%2&&0 esta e!ita!o en CCSC:en3ua*e CE, el pro3rama principal es
relati1amente sencillo, la 1er!a!era ma3ia est' en la li)rer2a 0ue es llama!a para el uso !e la
comunicacin USB8 .pic1$N+inUSB.5., la cual contiene los c!i3os @#; y P#;, 0ue !e)er'n
ser i3uales al ;ri1er, espec2"icamente al arc5i1o .K.in"., se recomien!a no mo!i"icar esta
li)rer2a.

En caso !e 0uerer mo!i"icar el pro3rama para una aplicacin m's completa, con tan slo el
pro3rama principal )astara, por e*emplo8 !e re0uerir una mayor capaci!a! !el )u""er para
reci)ir )ytes.. Tan slo 5ay 0ue aumentar el tama(o !el mismoC%i3ura <E.
%i3ura
<
CC$ID.:
El pro3rama conmutaC1 0E 6 pines !el puerto B, se37n lo 0ue reci)a !e la comunicacin
USB.

Finclu!e =1$%2&&0.5?
F"uses ISP::,AO+;T,AOPROTECT,AO:@P,AO;EBUD,USB;#@,P::&,CPU;#@1,@REDEA
Fuse !elayCclocR96$000000E
Fuse %/STN#O CBE

F!e"ine USBNI#;N;E@#CE %/:SE
F!e"ine USBNEP1NT-NEA/B:E USBNEA/B:ENBU:J
F!e"ine USBNEP1NR-NEA/B:E USBNEA/B:ENBU:J
F!e"ine USBNEP1NT-NS#TE 2
F!e"ine USBNEP1NR-NS#TE 2

Finclu!e =pic1$Nus).5?
Finclu!e .pic1$N+inUSB.5.
Finclu!e =us).c?

F!e"ine le!1 P#ANB&
F!e"ine le!2 P#ANB6
F!e"ine le!< P#ANB<
F!e"ine le!6 P#ANB2
F!e"ine pinNon outputN5i35
F!e"ine pinNo"" outputNlo,

1oi! mainC1oi!E Q

int$ iBu""U2VG
setNtrisN)C0400EG
!elayNcyclesC&EG

pinNo""Cle!1EG
pinNo""Cle!2EG
pinNo""Cle!<EG
pinNo""Cle!6EG

us)NinitCEG

us)NtasRCEG
us)N,aitN"orNenumerationCEG

,5ile CTRUEE
Q
i"Cus)Nenumerate!CEE
Q
i" Cus)NR)5itC1EE
Q
us)N3etNpacRetC1, iBu"", 2EG

i" CiBu""U0V 99 0E
Q
i" CiBu""U1V 99 1E outputNto33leCle!1EG
i" CiBu""U1V 99 2E outputNto33leCle!2EG
i" CiBu""U1V 99 <E outputNto33leCle!<EG
i" CiBu""U1V 99 6E outputNto33leCle!6EG
S
S
S
S
S
/0u2 la parte importante !e la li)rer2a .pic1$N+inUSB.5., 0ue contiene el @#; y P#;, y 0ue
!e)er' coinci!ir con la !escripcinC#A%E !el ;ri1er C%i3ura 6E.
%i3ura 6
Paso <
El !ri1er 3enMrico "!in"#B" es proporciona!o por Bicroso"t, al conectar por 1ra 1e el
Iar!,areG es necesario !ireccionar manualmente !ic5o !ri1er, al 5acerlo aparece por !e"ecto
un mensa*e in!ican!o 0ue pue!e ser peli3roso instalarlo, le !amos clic en aceptar y
"inaliamos la instalacin.

Con el ;ri1er es importante resaltar 2 puntos8

1ro>El @#; y P#; !el ;ri1er son los mismos 0ue contiene el %irm,are !el P#C1$%2&&0C%i3ura
&E.
%i3ura &
2!o>:a .RUT/. !el !ri1er es la misma 0ue contiene la #nter"a Dr'"icaC%i3ura LE.
%i3ura L
Paso 6
:a #nter"a Dr'"ica est' !ise(a!a con @isual CF 200$, len3ua*e C, el c!i3o es muy pareci!o
al Proyecto 1.
Se trata !e 6 )otones 0ue en12an un pa0uete !e 2)yte ca!a uno8
1er )yte9 Bo!o C0400E
2!o )yte9 :e! C0401O0402O040<O0406E

El 1er )yte no es !e muc5a utili!a! en esta aplicacin, pero lo ser' para a0uellos 0ue
0uieran a3re3ar m's "unciones, por e*emplo8 Bo!o 04009:E;s, 04019Relay,
04029CI1O/;C etc.


El 2!o )yte in!ica el :E; a conmutar8 :E;190401, :E;290402, :E;<9040< y :E;690406
C%i3ura HE.
%i3ura H
E*emplo !e c!i3o para un )otn @CFC%i3ura $E8
%i3ura $

Você também pode gostar