Obsah:

Vnitřní/venkovní teploměr USB (nebo „Moje první zařízení USB“): 4 kroky (s obrázky)
Vnitřní/venkovní teploměr USB (nebo „Moje první zařízení USB“): 4 kroky (s obrázky)

Video: Vnitřní/venkovní teploměr USB (nebo „Moje první zařízení USB“): 4 kroky (s obrázky)

Video: Vnitřní/venkovní teploměr USB (nebo „Moje první zařízení USB“): 4 kroky (s obrázky)
Video: 【初心者が語る】冬キャンプで失敗しない防寒対策 2024, Listopad
Anonim
USB vnitřní/venkovní teploměr (nebo 'Moje první USB zařízení')
USB vnitřní/venkovní teploměr (nebo 'Moje první USB zařízení')

Jedná se o jednoduchý design, který demonstruje periferní zařízení USB na PIC 18F. Existuje spousta příkladů 40pipových čipů 18F4550 online, tento design ukazuje menší 28pinovou verzi 18F2550. DPS používá součásti pro povrchovou montáž, ale všechny komponenty jsou k dispozici ve verzích s průchozími otvory. Používám díly pro povrchovou montáž, protože je rychlejší vyrobit desku bez vrtání otvorů. Konečným výsledkem je malá periferie USB, která měří vnitřní/venkovní teploty. Data jsou k počítači k dispozici prostřednictvím virtuálního sériového portu. V tomto příkladu jsou použita teplotní čidla, ale lze přidat i další analogová čidla. PS Podívejte se na živý graf dat z mého záznamníku zde: https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/? Format = graf

Krok 1: Přehled návrhu

Přehled designu
Přehled designu
Přehled designu
Přehled designu
Přehled designu
Přehled designu

Požadované komponenty PIC

Tato periferie USB je založena na 28kolíkovém PIC 18F2550. Tento čip má vše potřebné pro plné rychlost rozhraní USB. Kondenzátor 0,1 uF mezi napájením a zemí odpojuje PIC od napájecího zdroje. Krystal 20 MHz (používá se ke generování interních hodin 48 MHz) a dva kondenzátory 27 pf. Odpor 10K od napájení ke kolíku MCLR. Mezi odpor a napájení jsem přidal ekvivalentní diodu 1n4148, aby 13+voltů umístěných na MCLR během programování nepoškodilo ostatní součásti na desce s obvody. K programování a ladění zařízení slouží záhlaví ICSP (5 pinů). Požadované USB věci Zásuvka USB typu B ve stylu „B“. Pro interní regulátor napětí USB je vyžadována kapacita 220nf-440nf. Bez problému používám dva kondenzátory 0,1uf (stejné jako používané pro oddělení). K zobrazení stavu připojení USB se používá LED dioda s odporem omezujícím proud 330 ohmů. Požadované věci ze senzoru Použil jsem teplotní snímač mikročipu TC1047A jako snímač vnitřní teploty. Je fyzicky připájen k desce - to způsobí, že běží o několik stupňů tepleji než pokojová teplota. K připojení sondy venkovní teploty (TO-92 verze TC1047a) se používá konektor. Další kondenzátor 0,1 uff pomáhá odpojit dlouhý vodič vedený od zbytku desky. Úrovně napětí USB nejsou dostatečně konzistentní, aby přesně měřily a počítaly teplotu z analogových senzorů. Je použita externí referenční napětí (MCP1525, 2,5volt). Napěťová reference vyžaduje kondenzátor na výstupu 1uf až 10uf. Bez tohoto kondenzátoru nebude referenční napětí fungovat.

Krok 2: Firmware

Firmware používá k emulaci sériového portu třídu USB CDC. Zařízení se na počítači zobrazí jako virtuální komunikační port. Firmware je rozdělen do tří částí: 1. Ovladač USB se stará o výčet zařízení v počítači a emulaci portu COM. 2. Servisní rutina střídavě čte hodnoty teploty a převádí je do čitelného formátu. Provedení obou těchto operací najednou způsobilo, že zařízení USB ztratilo připojení k počítači (časová prodleva). Převedením hodnot s plovoucí desetinnou čárkou na řetězec v servisním cyklu po převodu se vyřešil problém s připojením.* 3. Nakonec hlavní rutina přijímá bajty odeslané z počítače a vrací požadovaná měření. Vícenásobné míry jsou odděleny čárkou, řádky jsou zakončeny znakem null (hex 0x00) Demonstrační firmware přijímá následující příkazy: Šestihranná hodnota Vrací0x00 Vnitřní teplota (palubní čidlo) 0x01 Venkovní teplota (externí záhlaví) 0x02 Obě teploty (čárka oddělené) Teplota se vypočítá na základě 2,5voltové reference a ofsetu a sklonu Microchip TC1047A. Jiné teplotní senzory mohou mít odlišné vlastnosti. Datový list TC1047A je k dispozici zde: https://ww1.microchip.com/downloads/en/DeviceDoc/21498c.pdf Firmware je napsán v MPLAB s ukázkovým kompilátorem PIC C18. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011 Skutečný firmware USB poskytuje společnost Microchip. Původní prostředí je k dispozici zde: https://www.microchip.com/stellent/idcplg? IdcService = SS_GET_PAGE & nodeId = 1824 & appnote = en021631 Chcete -li upravit firmware: extrahujte celou adresářovou strukturu zdroje do kořenového adresáře (c: / MCHPFSUSB). Potom můžete načíst soubor pracovního prostoru do MPLAB.*Rutina float to string je prase zdrojů. Aby se problém s připojením obešel, je v různých bodech rutiny float2string volána servisní rutina USB. To by bylo nejlépe opravit servisem periferního zařízení USB při přerušení. Použil jsem hack, aby firmware zůstal co nejblíže referenční verzi.

Krok 3: Testování zařízení

Testování zařízení
Testování zařízení
Testování zařízení
Testování zařízení
Testování zařízení
Testování zařízení

Pokyny jsou pro Windows, ale zařízení lze připojit ke všemu, co má ovladače emulace sériového portu CDC.

Naprogramujte zařízení pomocí firmwaru. Ve firmwaru by měly být správně nastaveny všechny konfigurační bity. Připojte zařízení k portu USB. Systém Windows to detekuje a vyzve vás k výběru ovladače. NEJISTĚTE KLIKNUTÍM „PROCHÁZET PRO VLASTNÍ ŘIDIČE“. Přejděte do umístění souboru INF, který je součástí archivu projektu (driver-win2k_winxp). Systém Windows použije tento soubor k instalaci zařízení. *Poznámka k ovladači CDC - ovladač emulace sériového portu CDC je součástí systému Windows. Soubor INF (poskytovaný společností Microchip) jednoduše řekne systému Windows, aby připojil tyto ovladače k zařízení. Chcete-li zjistit, kterému portu COM bylo zařízení přiřazeno, postupujte takto: Přejděte na ovládací panel (start-> nastavení-> ovládací panel) Dvakrát klikněte na „systém“Klikněte na kartu „Hardware“. Klikněte na „správce zařízení“Klikněte na „+“vedle portů Zobrazí se seznam portů COM v systému. Viděl jsem, že se zařízení zobrazuje jako COM 3 a 4, ale bude se lišit podle systému. Pokud není zřejmé, který port je nový, zkuste toto: Odpojte zařízení z portu USB. Jeden z portů zmizí. Toto je COM port zařízení #. Připojte zařízení zpět, port se znovu objeví. K testování zařízení lze použít malou aplikaci VB (včetně zdroje). Zadejte příkaz k odeslání, klikněte na 'Start'. Odpověď se zobrazí v okně.

Krok 4: Co jiného může udělat?

Co jiného to může udělat?
Co jiného to může udělat?

Tato ukázková deska je dobrým výchozím bodem pro malou domácí meteorologickou stanici: Přidejte čidlo vlhkosti HIH3160 nebo vyměňte analogový snímač teploty za vysoce přesný sériový snímač teploty a vlhkosti Sensiron HT74. Přidejte snímač tlaku Freescale MPX (a) 4115 do změřit barometrický tlak. Chcete tato data syndikovat na web? Chcete jej zahrnout na svůj vlastní web, zobrazit jej v aplikaci Google Earth nebo získat aktualizace do svého RSS kanálu? Viz tento návod k integraci tohoto zařízení s webovým serverem syndicIT.com:

Doporučuje: