Rozhraní GPIO pro PC
Moderátor: Moderátoři
Rozhraní GPIO pro PC
Reaguji tímto příspěvkem na tohle vlákno, kde se uživatel mprofa snaží získat radu, jak dostat logický signál do PC. Protože podobná věc může zajímat i více lidí, zkusil jsem udělat jednoduché rozhraní s ATmega88 přes USB s následujícími vlastnostmi:
- připojení přímo přes USB, na USB se objeví nové zařízení se jménem "USBmti"
- 18 signálů pro digitální vstup/výstup
- až 6 analogových vstupů
- až 6 analogových výstupů (PWM)
- 1-16 bitová sběrnice
Jedná se o řešení veskrze bastlířské, tudíž velmi levné (nejdražší je pěkná krabička), vhodné do domácích/laboratorních podmínek a proveditelné snadno doma běžnými bastlířskými postupy (žádné SMD, jednostraný plošný spoj).
K zařízení jsou pro PC připraveny 2 testovací konsolové aplikace a DLL pro snadnou komunikaci se zařízením. Pokud bude zájem, připravil bych i grafický front-end do PC. Na obrázku je zařízení v krabičce bez připojeného USB kabelu - zasouvá se ze zadní strany.
Prosil bych pomocí hlasování sdělit, jestli je o tohle zájem. Pokud by byl, zveřejnil bych to obvyklým způsobem, t.j. článek + dokumentaci (open source zdrojové kódy pro ATmega i PC, schema, návrh plošného spoje, HEX soubor pro ATmega, přeložené testovací aplikace, DLL, driver a grafický FE). Předpokládám, že do konce roku bych mohl stihnout i tu grafiku - no uvidíme.
- připojení přímo přes USB, na USB se objeví nové zařízení se jménem "USBmti"
- 18 signálů pro digitální vstup/výstup
- až 6 analogových vstupů
- až 6 analogových výstupů (PWM)
- 1-16 bitová sběrnice
Jedná se o řešení veskrze bastlířské, tudíž velmi levné (nejdražší je pěkná krabička), vhodné do domácích/laboratorních podmínek a proveditelné snadno doma běžnými bastlířskými postupy (žádné SMD, jednostraný plošný spoj).
K zařízení jsou pro PC připraveny 2 testovací konsolové aplikace a DLL pro snadnou komunikaci se zařízením. Pokud bude zájem, připravil bych i grafický front-end do PC. Na obrázku je zařízení v krabičce bez připojeného USB kabelu - zasouvá se ze zadní strany.
Prosil bych pomocí hlasování sdělit, jestli je o tohle zájem. Pokud by byl, zveřejnil bych to obvyklým způsobem, t.j. článek + dokumentaci (open source zdrojové kódy pro ATmega i PC, schema, návrh plošného spoje, HEX soubor pro ATmega, přeložené testovací aplikace, DLL, driver a grafický FE). Předpokládám, že do konce roku bych mohl stihnout i tu grafiku - no uvidíme.
- Přílohy
-
- DSC00046r.JPG
- vnější vzhled
- (58.54 KiB) Staženo 130 x
- ZdenekHQ
- Administrátor
- Příspěvky: 25593
- Registrován: 21 črc 2006, 02:00
- Bydliště: skoro Brno
- Kontaktovat uživatele:
Já samozřejmě můžu jen smeknout virtuální klobouk.
Umělo by to grafické prostředí vykreslit graf typu napětí/čas s tím, že by byly třeba 4 barevné křivky pro napětí na ose Y a na ose X by byl jen čas (řádově desítky milisekund) ?
Umělo by to grafické prostředí vykreslit graf typu napětí/čas s tím, že by byly třeba 4 barevné křivky pro napětí na ose Y a na ose X by byl jen čas (řádově desítky milisekund) ?
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Záleží na tom, jak to bude rychlé, to ukáží zkoušky, protože USB komunikace je implementována čistě softwarově a umí to jen USB1.1. V první fázi počítám s vizualizací stavů portů s periodickým obnováním, GUI pro nastavováním konfigurace a ruční zadávání signálu pro výstupy. Pak se uvidí, jestli se mi bude chtít něco dalšího
Pro komunikaci se zařízením bude k dispozici DLL, pomocí které lze pak naprogramovat ledacos.
![Smile :)](./images/smilies/icon_smile.gif)
Bude to pomale. USB ma obrovsky overhead, takze je nevhodne na hranie sa s bajtami. Programoval som flashovanie cez boot loader jedneho procesora, prikazy pre flash generoval moj program a posielal cez prikaz bootloaderu "zapis do pamate". Zapis 4MB flash trval dve hodiny. Po niekolkych optimalizaciach som to stiahol na 20 minut, viac sa uz nic nedalo urobit. A PC so slabsim CPU to vytazilo na 100 %.
Jestli to je (bude) založené na V-USB, tak bude rychlost velmi pravděpodobně problém. U podobného projektu jsem to nakonec vzdal a použil UART <-> USB s CP2102.
Ale rozhodně to nechci nějak shazovat, když bude DLLka, tak se pokusím taky spáchat nějaký GUI.
Ale rozhodně to nechci nějak shazovat, když bude DLLka, tak se pokusím taky spáchat nějaký GUI.
Je to V-USB. Jako použití spíš počítám s pomalým rozhraním typu "něco ovládat z PC" nebo číst signály třeba 1x za 0,5 sec. Použití převodníku USB - serial jsem se vyhnul v zájmu co nejjednoduššího a nejlevnějšího řešení.
Pro rychlé rozhraní bych spíš použil STM32F103 s HW podporou USB. Je to námět do budoucna.
Pro rychlé rozhraní bych spíš použil STM32F103 s HW podporou USB. Je to námět do budoucna.
Nato existoval program https://www.parallax.com/downloads/stam ... e-softwareZdenekHQ píše:Já samozřejmě můžu jen smeknout virtuální klobouk.
Umělo by to grafické prostředí vykreslit graf typu napětí/čas s tím, že by byly třeba 4 barevné křivky pro napětí na ose Y a na ose X by byl jen čas (řádově desítky milisekund) ?
Par prikazmi v uP umoznoval vytvorit graf s osami a posielat tam udaje. Mal som to na nabijacke nimh aby som videl ako to nabija, a kedy sa detekuje delta pre ukoncenie nabijania.
https://youtu.be/LZHXqWQTFMw