Stránka 1 z 1

Rozhraní GPIO pro PC

Napsal: 22 lis 2017, 22:12
od mtajovsky
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.

Napsal: 22 lis 2017, 22:23
od ZdenekHQ
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) ?

Napsal: 24 lis 2017, 10:57
od mtajovsky
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.

Napsal: 24 lis 2017, 11:54
od rnbw
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 %.

Napsal: 24 lis 2017, 12:06
od FHonza
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.

Napsal: 24 lis 2017, 19:03
od mtajovsky
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.

Napsal: 24 lis 2017, 19:13
od rnbw
Z Ciny sa da kupit lacno doska s CY7C68013A. Nema to flash - do RAM procesoru sa nahra program/firmware a ten bezi do vypnutia. Podporuje DMA z GPIO na USB (2.0). Da sa to pouzit napriklad ako logicky analyzator (v open source nastroji sigrok).

Napsal: 24 lis 2017, 21:48
od Atlan
ZdenekHQ 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) ?

Nato existoval program https://www.parallax.com/downloads/stam ... e-software

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