Taula de continguts:

Termòmetre USB interior / exterior (o, "El meu primer dispositiu USB"): 4 passos (amb imatges)
Termòmetre USB interior / exterior (o, "El meu primer dispositiu USB"): 4 passos (amb imatges)

Vídeo: Termòmetre USB interior / exterior (o, "El meu primer dispositiu USB"): 4 passos (amb imatges)

Vídeo: Termòmetre USB interior / exterior (o,
Vídeo: Модель Tesla Motors Модель S / X: Нагнетание батареи на 60 кВт от мертвых, 105 кВт !!! 2024, De novembre
Anonim
Termòmetre USB interior / exterior (o, "El meu primer dispositiu USB")
Termòmetre USB interior / exterior (o, "El meu primer dispositiu USB")

Es tracta d’un disseny senzill que demostra el perifèric USB dels PIC 18F. Hi ha una gran quantitat d’exemples de xips 18F4550 de 40 pins en línia, aquest disseny demostra la versió més petita de 18 pins 18F2550. Faig servir peces de muntatge superficial perquè és més ràpid fer el tauler sense perforar forats. El resultat final és un petit perifèric USB que mesura la temperatura interior / exterior. Les dades estan disponibles per al PC mitjançant un port sèrie virtual. A l’exemple s’utilitzen sensors de temperatura, però es poden afegir altres sensors analògics. PS Vegeu un gràfic en viu de les dades del meu registrador aquí: https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/? Format = gràfic

Pas 1: Visió general del disseny

Visió general del disseny
Visió general del disseny
Visió general del disseny
Visió general del disseny
Visió general del disseny
Visió general del disseny

Components PIC necessaris

Aquest perifèric USB es basa en el PIC 18F2550 de 28 pins. Aquest xip té tot el necessari per a una interfície USB de velocitat completa. Un condensador de 0,1uf entre potència i terra dissocia el PIC de la font d'alimentació. Un cristall de 20 MHz (utilitzat per generar un rellotge intern de 48 MHz) i dos condensadors de 27 pf. Una resistència de 10K de l'alimentació al pin MCLR. He afegit un díode equivalent 1n4148 entre la resistència i la potència perquè els 13 + volts col·locats a l’MCLR durant la programació no danyin altres components de la placa de circuit. S'utilitza una capçalera ICSP (5 pins) per programar i depurar el dispositiu. Material USB necessari Un endoll USB tipus B femení. Es requereix una capacitat de 220 nf-440 nf per al regulador de voltatge USB intern. Faig servir dos condensadors de 0,1uf (el mateix que s’utilitza per desacoblar) sense cap problema. Per mostrar l’estat de la connexió USB s’utilitza un LED amb resistència de limitació de corrent de 330ohm. Material necessari del sensor He utilitzat el sensor de temperatura del microxip TC1047A com a sensor de temperatura interior. Es solda físicament al tauler; això fa que funcioni uns quants graus més que la temperatura ambient. S’utilitza una capçalera per connectar una sonda de temperatura exterior (versió TO-92 de TC1047a). Un condensador addicional de 0,1uf ajuda a separar un cable llarg de la resta de la placa. Els nivells de voltatge USB no són prou consistents per mesurar i calcular amb precisió la temperatura a partir dels sensors analògics. S'utilitza una referència de tensió externa (MCP1525, 2,5 volt). La referència de tensió requereix un condensador a la sortida d’1uf a 10uf. Sense aquest condensador, la referència de tensió no funcionarà.

Pas 2: Firmware

El firmware utilitza la classe USB CDC per emular un port sèrie. El dispositiu apareixerà com a port de com virtual en un PC. El firmware es divideix en tres seccions: 1. El controlador USB s’encarrega d’enumerar el dispositiu en un PC i d’emular un port COM. 2. Una rutina de servei llegeix alternativament els valors de temperatura i els converteix en un format llegible. Fer aquestes dues operacions alhora va provocar que el dispositiu USB perdés la connexió amb el PC (temps d’acolliment). La conversió dels valors de coma flotant a una cadena del cicle de servei després de la conversió va esborrar el problema de connectivitat. * 3. Finalment, una rutina principal rep els bytes enviats des del PC i retorna les mesures sol·licitades. Múltiples mesures estan separades per una coma, les línies s’acaben amb un caràcter nul (hex 0x00) El firmware de demostració accepta les següents ordres: Valor hexagonal Retorna 0x00 Temperatura interior (sensor integrat) 0x01 Temperatura exterior (capçalera externa) 0x02 Ambdues temperatures (coma) separat) La temperatura es calcula en funció de la referència de 2,5 volts i del desplaçament i pendent del Microchip TC1047A. Altres sensors de temperatura poden tenir característiques diferents. El full de dades TC1047A està disponible aquí: https://ww1.microchip.com/downloads/en/DeviceDoc/21498c.pdf El firmware s’escriu en MPLAB amb el compilador de demostració PIC C18. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011 El microprogramari USB real el proporciona Microchip. L’entorn original està disponible aquí: https://www.microchip.com/stellent/idcplg? IdcService = SS_GET_PAGE & nodeId = 1824 & appnote = ca021631 Per editar el firmware: extreu tota l’estructura de directoris de la font al directori arrel (c: / MCHPFSUSB). A continuació, podeu carregar el fitxer de l’espai de treball a MPLAB. * La rutina float to string és un porc de recursos. Per solucionar el problema de connectivitat, es diu la rutina de servei USB en diversos punts de la rutina float2string. Això s’arreglaria millor mantenint el perifèric USB en una interrupció. He utilitzat el hack perquè el firmware es mantingués el més a prop possible de la versió de referència.

Pas 3: proveu el dispositiu

Prova del dispositiu
Prova del dispositiu
Prova del dispositiu
Prova del dispositiu
Prova del dispositiu
Prova del dispositiu

Les instruccions són per a Windows, però el dispositiu es pot connectar a qualsevol cosa que tingui controladors d'emulació de port sèrie CDC.

Programa el dispositiu amb el firmware. Tots els bits de configuració s’han d’establir correctament al firmware. Connecteu el dispositiu a un port USB. Windows el detectarà i us demanarà que trieu un controlador. ASsegureu-vos de fer clic a "EXPLORA PER AL CONDUCTOR PERSONALITZAT". Aneu a la ubicació del fitxer.inf inclòs amb l'arxiu del projecte (driver-win2k_winxp). Windows utilitzarà aquest fitxer per instal·lar el dispositiu. * Una nota sobre el controlador CDC: el controlador d'emulació del port sèrie CDC s'inclou al Windows. El fitxer.inf (subministrat per Microchip) simplement indica a Windows que connecti aquests controladors al dispositiu. Per esbrinar quin port COM s’ha assignat al dispositiu, feu el següent: aneu al tauler de control (inici-> configuració-> tauler de control) Feu doble clic a ‘sistema’ Feu clic a la pestanya ‘maquinari’. Feu clic a "gestor de dispositius" Feu clic al "+" al costat dels ports Es mostra una llista de ports COM del sistema. He vist que el dispositiu apareix com a COM 3 i 4, però variarà segons el sistema. Si no és evident quin port és nou, proveu-ho: desconnecteu el dispositiu del port USB. Un dels ports desapareixerà. Aquest és el número de port COM del dispositiu. Torneu a connectar el dispositiu, el port tornarà a aparèixer. La petita aplicació VB (font inclosa) es pot utilitzar per provar el dispositiu. Introduïu l'ordre a enviar i feu clic a "Inici". La resposta es mostrarà a la finestra.

Pas 4: Què més pot fer?

Què més pot fer?
Què més pot fer?

Aquesta placa de demostració és un bon punt de partida per a una petita estació meteorològica domèstica: afegiu un sensor d’humitat HIH3160 o substituïu el sensor de temperatura analògic pel sensor de temperatura i humitat de sèrie d’alta precisió Sensiron HT74. mesurar la pressió baromètrica. Voleu sindicar aquestes dades al web? Voleu incloure'l al vostre propi lloc web, veure'l a Google Earth o obtenir actualitzacions a la vostra canya RSS? Consulteu aquesta instrucció per integrar aquest dispositiu amb el servidor web syndicIT.com:

Recomanat: