Rozhraní GPIO pro PC

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět

Mám zájem o zveřejnění konstrukce

ano, včetně grafického front-endu
17
94%
ano, jen samotné zařízení
1
6%
nemám zájem
0
Žádná hlasování
 
Celkem hlasů: 18

Zpráva
Autor
Uživatelský avatar
mtajovsky
Příspěvky: 3694
Registrován: 19 zář 2007, 02:00
Bydliště: Praha

Rozhraní GPIO pro PC

#1 Příspěvek 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.
Přílohy
DSC00046r.JPG
vnější vzhled
(58.54 KiB) Staženo 130 x

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#2 Příspěvek 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) ?
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[?
]

Uživatelský avatar
mtajovsky
Příspěvky: 3694
Registrován: 19 zář 2007, 02:00
Bydliště: Praha

#3 Příspěvek 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.

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#4 Příspěvek 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 %.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#5 Příspěvek 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.

Uživatelský avatar
mtajovsky
Příspěvky: 3694
Registrován: 19 zář 2007, 02:00
Bydliště: Praha

#6 Příspěvek 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.

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#7 Příspěvek 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).

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#8 Příspěvek 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

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“