Toto čidlo se posléze ukázalo jako méně vhodné – při čtení stavu je nutné využít oba čítače/ časovače k měření střídy. V současné době pracuji na programu pro komunikaci 1-Wire (Dallas), zejména pro snímání teploty z teplotního čidla DS1820. Není nutné využít ani jeden čítač/časovač, v kombinaci s vnitřní pamětí mikropočítače by bylo možné vytvořit teploměr, který většinu času snímá teplotu samostatně bez počítače PC. Po zapnutí se připojí k PC (například pomocí Bluetooth k počítači a zde uloží poslední teploty k dalšímu zpracování).
Výhody:
- Komunikace s PC pomocí USB (vhodné pro notebooky)
- Napájení z PC
- Jednoduchá změna programu – mikropočítač AT89C51ED2
- Je možné využít také jako odlaďovací kit
- Možnost řízení krokových motorů
Komunikaci s počítačem obstarává převodník FT232BL, po připojení a nainstalování ovladačů dojde k vytvoření virtuálního sériového portu (je možné s ním pracovat jako se standardním sériovým portem). Převodník má také integrován stabilizátor napětí – možno připojit obvod nRF905 pro 3V (jádro 8051 s VF vysílačem). K procesoru je také připojeno pole darlinktonových tranzistorů (primárně určeno ke spínání cívek dvou krokových motorků). Na konektoru K4 je vyveden port P0, ten je možné využít například pro komunikaci s LCD displejem nebo k zhotovení logického analyzátoru. Na konektor K2 jsou vyvedeny vstupy multiplexeru 74HC151 – zde je možné připojit jakákoli čidla, program vždy vybere požadovaný kanál. Na JP1 je vyveden vývod PSEN procesoru, pokud je tento vývod po resetu v L, tak se procesor přepne do programovacího módu (stačí spustit program Atmel Flip a vybrat příslušný port). Na K3 je vyvedeno sériové rozhraní SPI, je možné využít ke komunikaci s dalšími čidly.
Mechanická konstrukce
Zapojení je realizováno na jednostranné desce plošných spojů, bylo nutné použít několik SMD propojek (rezistor s hodnotou 000). Všechny rezistory jsou velikosti 805. DPS byla vytvořena „po domácku“ fotocestou. Mikropočítač AT89C51ED2 v provedení TQFP44 nebylo snadné sehnat – nakonec jsem si ho objednal od HW.cz.
Program
Programy jsem psal ve Visual Basicu a v Contorol Webu 2000. V Control Webu je možnost výborného grafického znázornění a prezentace na webovém serveru. Naopak vývojová verze Control Webu je docela drahá (pro studenta) a v demo verzi není možné přidat ovladač sériového kanálu.
Popis komunikace mikropočítače s PC
128180055040001
Příklad jednoho datového paketu, nejprve jsou odeslány tři bajty – vyšší byte TP, dále následuje nižší byte TP. Pro hodnotu TS je to stejné, dále následují tři byte – číslo kanálu.
Poté stačí převést řetězec na číslo:
tp=val(slice( data_in,12,3),10);
a nyní je možné vypočíst teplotu a uložit do pole teplota (mpx – číslo kanálu):
teplota[mpx] = (10000 * (tp-ts) / tp - 3200) / 47;
Obslužný program si může každý dopsat sám, pro otestování jsem napsal jednoduchý program - k dispozici ke stažení pod článkem.
Závěr
Pomocí tohoto zapojení je možné realizovat více zajímavých aplikací, nejen teploměr. Bylo by možné ho připojit do počítače a v kognaci s LCD displejem může informovat o okamžitých teplotách přímo na LCD nebo pomocí programu v PC. Do budoucna také uvažuji o úpravě zapojení resetu 8051, je poněkud neelegantní při každé úpravě programu zařízení odpojovat od USB. Někdy také dochází k „zamrznutí“ programu FLIP.
Uvítám případné připomínky a vylepšení.
Seznam součástek
R1 | 2,2kΩ |
R2 | 10kΩ |
R3, R4 | 27Ω |
R5 | 470Ω |
R6 | 1,5kΩ |
R7, R8 | 220Ω |
R9, R10 | 1kΩ |
RR1 | rezist. sit 9pin 10kΩ |
C1, C2 | 27pF |
C3 | 10nF |
C4 | 33nF |
C6 | 10µF/16V |
C7, C8 | 33pF |
C9 | |
C5, C10, C11 | 100nF |
C12 | |
IC1 | FT232BL |
IC2 | 93C46 |
IC3 | AT89S52-AU |
IC4 | ULN2803A |
IC5 | 74HC151 |
Komentáře
Přiznám se, že obdivuji
Přiznám se, že obdivuji konstruktéry, kteří jsou schopni popsat konstrukci pro širší veřejnost. Nicméně, neodpustím si několik připomínek:
1. Schéma bych označil za nešťastné a přirovnal bych ho ke schématu elektroninstalace vozidel LADA. Spoje vedené přes součástky prostě nepovažuji za vhodné.
2. Dovolil bych si polemizovat o "méně vhodném čidlu" z důvodů nutnosti použití dvou čítačů/časovačů. Po zběžném nahlédnutí do DS AT89C51ED2 bych osobně pro danou aplikaci volil použití modulu PCA.
3. Co se týká zapojení resetu, doporučoval bych inspirovat se zapojením http://hw.cz/pdf/kity/lpc-p2129-sch.gif , jen nevím, nakolik bude odpora ATMEL FLIPu.
Propojky
"Spoje vedené přes součástky", pokud myslíte použití propojek (R0805 0R 5% GME), těchto bylo použito z důvodu špatné výroby dvouvrstvých plošných spojů. Vzhledem k tomu, že patřím k mladší generaci LADU už nepamatuji. Problém s resetem už řeším, bude se jednat o resetovací tlačítko nebo resetování například pomocí sériové linky.
Spoje přes součástky
Nemyslím propojky na DPS, ale nevzhledné a nepřehledné vedení čar spojů ve SCHÉMATU.
Spoje přes součástky
Kolega nejpíš myslel spoj ve schématu vedený přes značku součástky. To se nedělá. Drátové propojky nebo SMD můstky jsou v pohodě. Jinak pro přehlednost schématu není špatné použít ekvipotenciální značky
(např. ---->Vcc), blokovací kondenzátory napájení IO odděleně od vlastního schématu, všechny pěkně vedle sebe spolu s napájecími piny jednotlivých IO. Spousta vodičů přes sebe značně znepřehlední schéma.
Spoje
Mh děkuji za připomínku, příště už se polepším.
Display
Ak mi posles e-mailovu adresu, zaslem Ti utility na display v c, (mozno sa nieco najde aj per ten dallas....) usetris kopy casu.....
Su v uc51 (do 8k kodu je free, super...)
Vlastne rozmyslam ze ich hodim na weba, nech je z nich osoh....
děkuji za komentáře
Můj email je jfila@wo.cz.
Nuda ;-)
Zapojeni pomerne slozite a ne moc originalni. Co treba pouzit AVR procesor pro softwarovou obsluhu USB a soucane mereni teploty? Od doby, kdy Atmel vydal aplikacni poznamku popisujici sw implementaci low-speed USB protokolu vzniklo jiz nekolik peknych hracek, treba tady je prevodnik USB/I2C:
http://www.harbaum.org/till/i2c_tiny_usb/index.shtml
Tady pak USB/LCD:
http://www.harbaum.org/till/lcd2usb/index.shtml
Pokud by existoval prevodnik USB/1-wire, slo by na USB povesit teplomeru hned nekolik (DS18B20, atd).
AT90USBxx
Take by byla zajimava konstrukce vyuzivajici procesor s vestavenou podporou pro USB, treba Atmel AT90USB82 anebo AT89C5131A-M. Tyto se ale v CZ zrejeme spatne shaneji.
USB převodník FT232
Tento převodník byl pužit pro možnost snadné úpravy programu, hardware je možné používat k testování dalších programů. Celá konstrukce je navrhovaná jako kompletní řešení - několik tepl. čidel a ovládání natočení webkamery.
USB
Nenarazil si niekde na "free" priamu sw implementaciu USB na 51 ?
RE: USB na x51
SW implementace USB je narocna na vykon MCU a bezny CPU z rady x51 nebude dostatecne vykonny. Low-speed zarizeni vysila data rychlosti 1.5Mbps, MCU musi data na teto rychlosti vzorkovat, pripadne vysilat. AVR to dokaze, protoze ma pri 12MHz cca 8 taktu na zpracovani jednoho bitu z USB sbernice. Klasicka x51 nema sanci, protoze ta pri 12MHz krystalu stihne vykonat jednu instrukci. Pokud pouzijete lepsi x51, ktera stihne jednu instrukci za 6 cyklu, tak je to porad malo i kdyz pouzijete vyssi frekvenci oscilatoru. Mozna ze by sla SW USB udelat na "single-cycle" klonech x51, treba AT89LP4052. Ma ale nejaky vyznam krecovite se drzet x51?
Mrknete na aplikacni poznamku AVR309 (www.atmel.com), pekne popisuje princip SW implementace USB na AVR procesorech.
RE: USB na x51
Jeste jeden clanecek popisujici implementaci SW USB. Po precteni muzete zvazit, zda to dokazete pouzit pro implemenaci SW USB na vas oblibeny microprocesor:
http://www.obdev.at/developers/articles/00003.html
RE: USB na x51
Velmi zajimave cteni, dokonce po slovensky, je zde:
http://www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%20(AVR).htm
Ze by SW implementace USB v AVR mela koreny na Slovensku? Skoro to tak vypada... Autor take uvadi zajimavou informaci, ze PIC procesor by prilis pomaly a nepovedlo se mu najit reseni (PIC potrebuje 4 takty na instrukci). To by ale znamenalo, ze muze byt problem i s resenim pro x51, protoze i "single-core" procesor potrebuje na nektere instrukce vice cyklu; zjednodusene lze rict, ze jedna instrukce potrebuje 1-4 cykly" a to uz muze byt problem...
USB implementacia
Skutocne excelentny zdroj informacii. Kto chce zacat s USB / HW, urcite by to mal brat ako studnu informacii. Obe odkazy.
RE: USB na x51
http://hw.cz/teorie-praxe/art2295-mikrokontrolery-c8051-stale-ziji-i-val...
SiliconLabs C8051F36x by snad SW implementaci USB mohl zvladnout.
USB programator AVR procesoru
Jeste jsem nasel jednu zajimavou hracku na toto tema, programatr AVR procesoru pripojeny pres USB port:
http://www.fischl.de/usbasp/
http://www.scienceprog.com/building-and-installing-usbasp-usb-programmer...
Myslim si, ze je programator zbytecne veliky, ze by sel jeste zmensit pouzitim jineho AVR (mene nozicek a pripadne i SMD pouzdro).
Flip
Ahoj, ak Ti obcas Flip mrzne, mozes skusit aj http://www.lura.sk/pages/Lura/DownloadFiles/RD2FlashUpload.zip
je to v .net, co ma vyhodu ze to bezi aj na PPC !!!!!! Viac na www.lura.sk v sekcii download.
Nikdy vsak nebol skusany cez USB a virtualny seriovy port....., stale cez seriove porty, takze daj vediet ci to chodi aj cez ten USB......