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, Studeni
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. Na internetu postoji gomila primjera za čipove od 40 pinova 18F4550, ovaj dizajn prikazuje manju verziju od 18 pinova 18F2550. PCB koristi dijelove za površinsko montiranje, ali sve su komponente dostupne u verzijama s otvorima. 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čunalu putem virtualnog serijskog porta. U primjeru se koriste temperaturni senzori, ali se mogu dodati i drugi analogni senzori. PSVidi grafikon podataka uživo iz mog zapisnika ovdje: https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/? Format = graf

Korak 1: Pregled dizajna

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

Potrebne PIC komponente

Ovaj periferni USB uređaj temelji se 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 unutarnjeg takta od 48 MHz) i dva kondenzatora od 27 pf. 10K otpornik od napajanja do MCLR pina. 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 ispravljanje pogreš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 s 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 unutarnje 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. Razine USB napona nisu dovoljno konzistentne za točno 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čunalu. Firmver je podijeljen u tri odjeljka: 1. USB upravljački program brine se o nabrajanju uređaja na računalu i emulaciji COM priključka. 2. Servisna rutina naizmjence čita vrijednosti temperature i pretvara ih u čitljiv format. Izvođenje obje ove radnje odjednom uzrokovalo je da USB uređaj prekine vezu s računalom (vremensko ograničenje). Pretvaranjem vrijednosti s pomičnim zarezom u niz u servisnom ciklusu nakon pretvorbe 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, retci su završeni null znakom (hex 0x00) Demonstracioni firmver prihvaća sljedeće naredbe: Hex vrijednost Vraća0x00 Unutrašnja temperatura (senzor na ploči) 0x01 Vanjska temperatura (vanjsko zaglavlje) 0x02 Obje temperature (zarez odvojeno) Temperatura se izračunava na temelju 2,5 voltne reference 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.pdfFirmware je napisan u MPLAB -u s demonstracijskim PIC C18 kompajlerom. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011Stvarni firmver za USB pruža Microchip. Izvorno okruženje dostupno je ovdje: https://www.microchip.com/stellent/idcplg? IdcService = SS_GET_PAGE & nodeId = 1824 & appnote = hr021631 Za uređivanje firmvera: 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. Da biste zaobišli problem povezivanja, rutina USB usluge poziva se na različitim točkama rutine float2string. To bi se najbolje riješilo servisiranjem USB periferije na prekidu. Koristio sam hack kako bi firmware 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 upravljačke programe za emulaciju serijskog porta CDC -a.

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 tražiti da odaberete upravljački program. OBVEZNO KLIKNITE ‘PREGLEDAJTE ZA PRILAGOĐENOG VOZAČA’. Dođite 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 - pogonski program za emulaciju serijskog porta CDC uključen je u sustav Windows. Datoteka.inf (koju pruža Microchip) jednostavno govori sustavu Windows da poveže te upravljačke programe s uređajem. Da biste saznali koji COM port je uređaju dodijeljen, učinite sljedeće: Idite na upravljačku ploču (start-> postavke-> upravljačka ploča) Dvaput kliknite "sustav" Kliknite karticu "hardver". Kliknite ‘upravitelj uređaja’ Pritisnite ‘+’ pored portova Prikazan je popis COM portova u sustavu. Vidio sam da se uređaj prikazuje kao COM 3 i 4, ali će se razlikovati ovisno o sustavu. 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 ponovno pojaviti. Mala VB aplikacija (izvor uključen) može se koristiti za testiranje uređaja. Unesite naredbu za slanje, kliknite "Start". Odgovor će biti prikazan u prozoru.

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

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

Ova demonstracijska ploča dobro je polazište za malu kućnu meteorološku stanicu: Dodajte HIH3160 osjetnik vlage ili zamijenite analogni temperaturni osjetnik senzibilnom serijskom osjetnicom temperature i vlažnosti Sensiron HT74. Dodajte Freescale MPX (a) 4115 osjetnik tlaka u izmjeriti barometarski tlak. Želite li ove podatke prenijeti na web? Želite li ga uključiti u svoju web stranicu, pregledati na Google Earthu ili primati ažuriranja u svoj RSS trska? Pogledajte ove upute za integraciju ovog uređaja sa web -stranicom syndicIT.com:

Preporučeni: