Sadržaj:

USB unutarnji/vanjski termometar (ili "Moj prvi USB uređaj"): 4 koraka (sa slikama)
USB unutarnji/vanjski termometar (ili "Moj prvi USB uređaj"): 4 koraka (sa slikama)

Video: USB unutarnji/vanjski termometar (ili "Moj prvi USB uređaj"): 4 koraka (sa slikama)

Video: USB unutarnji/vanjski termometar (ili
Video: Review of 18650 4 channel Lithium Battery Capacity Tester, Charger and Discharge | WattHour 2024, Juli
Anonim
USB unutarnji/vanjski termometar (ili "Moj prvi USB uređaj")
USB unutarnji/vanjski termometar (ili "Moj prvi USB uređaj")

Ovo je jednostavan dizajn koji demonstrira USB periferiju na PIC 18F. Postoji hrpa primjera za 18F4550 40 -pinske čipove na mreži, ovaj dizajn prikazuje manju 18F2550 28 -pinsku verziju. PCB koristi dijelove za površinsko montiranje, ali sve komponente su dostupne u verzijama sa rupama. Koristim dijelove za površinsko montiranje jer je brže napraviti ploču bez bušenja rupa. Krajnji rezultat je mala USB periferija koja mjeri unutarnju/vanjsku temperaturu. Podaci su dostupni računaru putem virtuelnog serijskog porta. U primjeru se koriste temperaturni senzori, ali se mogu dodati i drugi analogni senzori. PSVidi grafikon podataka iz mog logera uživo ovdje: https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/? Format = grafikon

Korak 1: Pregled dizajna

Pregled dizajna
Pregled dizajna
Pregled dizajna
Pregled dizajna
Pregled dizajna
Pregled dizajna

Potrebne PIC komponente

Ova USB periferija zasnovana je na 28 -polnom PIC 18F2550. Ovaj čip ima sve potrebno za USB sučelje pune brzine. Kondenzator od 0,1 uf između napajanja i mase odvaja PIC od napajanja. Kristal od 20 MHz (koristi se za generiranje internog takta od 48 MHz) i dva kondenzatora od 27 pf. 10K otpornik sa napajanja na MCLR pin. Dodao sam 1n4148 ekvivalentnu diodu između otpornika i napajanja tako da 13+volti postavljeni na MCLR tijekom programiranja ne oštete druge komponente na ploči. Za programiranje i otklanjanje grešaka na uređaju koristi se ICSP zaglavlje (5 pinova). Potrebne USB stvari USB ženska utičnica u stilu „B“. Za unutarnji USB regulator napona potrebno je 220nf-440nf kapacitivnosti. Koristim dva 0,1uf kondenzatora (isto kao i za odvajanje) bez problema. LED sa otpornikom za ograničavanje struje od 330 ohma koristi se za prikaz statusa USB veze. Potrebne stavke senzora Koristio sam senzor temperature mikročipa TC1047A kao osjetnik unutrašnje temperature. Fizički je lemljen na ploču - zbog toga radi nekoliko stupnjeva toplije od sobne temperature. Zaglavlje se koristi za povezivanje sonde za vanjsku temperaturu (TO-92 verzija TC1047a). Dodatni 0,1uf kondenzator pomaže odvojiti dugačku žicu od ostatka ploče. Nivoi USB napona nisu dovoljno konzistentni za precizno mjerenje i izračunavanje temperature iz analognih senzora. Koristi se referenca vanjskog napona (MCP1525, 2,5 volti). Referenca napona zahtijeva kondenzator na izlazu od 1uf do 10uf. Bez ovog kondenzatora referentni napon neće raditi.

Korak 2: Firmware

Firmver koristi CDC USB klasu za emulaciju serijskog porta. Uređaj će se prikazati kao virtualni com port na računaru. Firmver je podijeljen u tri odjeljka: 1. USB upravljački program brine o nabrajanju uređaja na računaru i emulaciji COM porta. 2. Servisna rutina naizmjenično čita vrijednosti temperature i pretvara ih u čitljiv format. Izvođenje obje ove operacije odjednom je uzrokovalo da USB uređaj prekine vezu s računarom (vremensko ograničenje). Pretvaranjem vrijednosti s pomičnim zarezom u niz u servisnom ciklusu nakon konverzije riješen je problem povezivanja.* 3. Konačno, glavna rutina prima bajtove poslane s računala i vraća tražena mjerenja. Više mjera odvojeno je zarezom, redovi su završeni null znakom (hex 0x00) Demonstracioni firmver prihvaća sljedeće naredbe: Hex vrijednost Vraća0x00 Unutrašnja temperatura (ugrađeni senzor) 0x01 Vanjska temperatura (vanjsko zaglavlje) 0x02 Obje temperature (zarez odvojeno) Temperatura se izračunava na osnovu reference od 2,5 volta i pomaka i nagiba Microchip TC1047A. Ostali temperaturni senzori mogu imati različite karakteristike. Tehnički list TC1047A dostupan je ovdje: https://ww1.microchip.com/downloads/en/DeviceDoc/21498c.pdf Firmver je napisan u MPLAB -u sa demonstracijskim kompajlerom PIC C18. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011Stvarni USB firmver pruža Microchip. Izvorno okruženje dostupno je ovdje: https://www.microchip.com/stellent/idcplg? IdcService = SS_GET_PAGE & nodeId = 1824 & appnote = en021631Da biste uredili firmver: izdvojite cijelu strukturu direktorija izvora u vaš korijenski direktorij (c: / MCHPFSUSB). Zatim možete učitati datoteku radnog prostora u MPLAB.*Rutina float to string je svinja resursa. Da biste zaobišli problem povezivanja, USB servisna rutina se poziva na različitim točkama rutine float2string. To bi se najbolje riješilo servisiranjem USB periferije na prekidu. Koristio sam hack kako bi firmver ostao što bliže referentnoj verziji.

Korak 3: Testiranje uređaja

Testiranje uređaja
Testiranje uređaja
Testiranje uređaja
Testiranje uređaja
Testiranje uređaja
Testiranje uređaja

Upute su za Windows, ali uređaj se može spojiti na sve što ima CDC upravljačke programe za emulaciju serijskog porta.

Programirajte uređaj pomoću firmvera. Svi konfiguracijski bitovi trebaju biti ispravno postavljeni u firmveru. Priključite uređaj u USB priključak. Windows će to otkriti i od vas zatražiti da odaberete upravljački program. OBVEZNO KLIKNITE „PREGLEDAJTE ZA PRILAGOĐENOG VOZAČA“. Idite do lokacije.inf datoteke uključene u arhivu projekta (driver-win2k_winxp). Windows će koristiti ovu datoteku za instaliranje uređaja. *Napomena o CDC upravljačkom programu - upravljački program za emulaciju serijskog porta CDC uključen je u Windows. Datoteka.inf (koju pruža Microchip) jednostavno govori Windowsu da poveže ove upravljačke programe s uređajem. Da biste saznali koji COM port je uređaju dodijeljen, učinite sljedeće: Idite na kontrolnu ploču (start-> postavke-> kontrolna ploča) Dvaput kliknite na „sistem“Kliknite na karticu „hardver“. Kliknite ‘upravitelj uređaja’ Pritisnite ‘+’ pored portova Prikazan je popis COM portova na sistemu. Vidio sam da se uređaj prikazuje kao COM 3 i 4, ali će se razlikovati ovisno o sistemu. Ako nije očito koji je novi port, pokušajte sljedeće: Isključite uređaj iz USB priključka. Jedan od portova će nestati. Ovo je COM port uređaja #. Ponovo uključite uređaj, port će se ponovo pojaviti. Mala VB aplikacija (uključen izvor) može se koristiti za testiranje uređaja. Unesite naredbu za slanje, kliknite 'Start'. Odgovor će biti prikazan u prozoru.

Korak 4: Šta još može učiniti?

Šta drugo može učiniti?
Šta drugo može učiniti?

Ova demonstracijska ploča dobra je polazna točka za malu kućnu meteorološku stanicu: Dodajte HIH3160 osjetnik vlage ili zamijenite analogni temperaturni osjetnik senzibilnom serijskom senzorom temperature i vlažnosti Sensiron HT74. Dodajte Freescale MPX (a) 4115 senzor tlaka u izmjeriti barometarski pritisak. Želite li ove podatke prenijeti na web? Uključiti ga na svoju web stranicu, pogledati ga na Google Earth -u ili primati ažuriranja u svoj RSS trska? Pogledajte ove upute za integraciju ovog uređaja sa web lokacijom syndicIT.com:

Preporučuje se: