
Tento článok si kladie za cieľ oboznámenie čitateľov s implementáciou rozhrania USB do jednočipového mikrokontroléra, ktorý toto rozhranie nepodporuje. Jedná sa teda o implementáciu USB na úrovni firmware (podobne ako sa rieši emulácia RS232 rozhrania v mikrokontroléroch, ktoré RS232 priamo nepodporujú). Predložený projekt zahŕňa vývoj firmware na strane mikrokontroléra, vývoj ovládača ("drivera") na strane počítača (pre operačný systém Windows) , vývoj DLL knižnice na sprístupnenie funkcií zariadenia iným programom (programátorská úroveň) a vývoj demonštračného programu (užívateľská úroveň), ktorý ukazuje všetky možnosti zariadenia. Zariadenie je pomenované IgorPlug-USB (AVR) (ako nasledovník môjho zariadenia pre diaľkové ovládanie počítača IgorPlug cez sériový port).
V súčasnosti je USB rozhranie veľmi populárne najmä
medzi užívateľmi. Je to spôsobené jeho jednoduchosťou vzhľadom na koncových
užívateľov (Plug and Play, bez reštartu). Pre vývojárov je však
implementácia USB do ich prístrojov omnoho zložitejšia (voči RS232
je to neporovnateľne zložitejší protokol). Naviac je tu aj potreba
programovej podpory na strane PC - ovládače zariadenia. Preto sa stále množstvo
zariadení od malých výrobcov prikláňa ku komunikácii cez RS232. Toto
rozhranie je asi najstaršie v PC histórii a má aj dobrú podporu operačných
systémov. Ale v poslednom čase sa toto rozhranie vytráca zo štandartnej výbavy
PC (nové počítače už rozhranie RS232 nemajú). Vtedy pomôže iba kúpa prídavnej
PCI karty s týmto rozhraním.
Implementácia USB do externého zariadenia v súčasnosti
spočíva v dvoch možnostiach:
a) Prvou je použitie mikrokontroléra,
ktorý má už hardwarovo implementované USB rozhranie. Vtedy je
nutné poznať ako USB pracuje a podľa toho napísať firmware do mikrokontroléra.
Naviac je tu ešte nutnosť napísať ovládač (driver) na strane počítača
(pokiaľ ho už operačný systém neobsahuje - napr. štandartné triedy USB).
Nevýhodou (a to pre malých výrobcov a amatérov tou hlavnou) je malá
dostupnosť týchto mikrokontrolérov (PIC, Cypress, Atmel, Intel, ...) a ich
vysoká cena (rádovo vyššia voči jednoduchým "RS232" mikrokontrolérom).
b) Druhou možnosťou je použiť
niektorý univerzálny prevodník medzi USB a "iným" rozhraním.
Toto "iné" rozhranie záleží na type prevodníka: používa sa najmä
RS232, 8-bitová dátová zbernica, I2C zbernica. Tu odpadá písanie špeciálneho
firmware (nemusíme dokonca ani vedieť ako USB pracuje) a ovládača (výrobca
obvodu ovládače zdarma poskytuje). Nevýhodou je opäť zvýšená cena koncového
zariadenia a väčšie rozmery výrobku (potreba jedného obvodu naviac).
Moje riešenie,
ktoré som si predsavzal vyvinúť - a úspešne dokončil ;-) - je
implementovanie USB do lacného mikrokontroléra pomocou emulovania USB
protokolu cez firmware mikrokontroléra. Problémom pri návrhu
bola rýchlosť mikrokontroléra. Rýchlosť zbernice USB je totiž vysoká:
LowSpeed - 1.5MBit/s, FullSpeed - 12MBit/s, HighSpeed - 480Mbit/s. Bežné
mikrokontroléry sú v maximálnych výpočtových výkonoch cca: AT89C2051 -
2MIPS = 24MHz/(12takt/inšt.), PIC16F84 - 5MIPS = 20MHz/(4takt/inšt.),
AT90S23x3 - 10MIPS = 10MHz/(1takt/inšt.). Existujú síce aj mikrokontroléry s
vyššími rýchlosťami, ale tie sú už ťažšie dostupné (aj cenovo) a
rozmernejšie (veľa pinov - zložitejšia konštrukcia). Preto som sa rozhodol
pre mikrokontroléry PIC16F84 alebo AT90S23x3, ktoré by mohli "stíhať"
LowSpeed USB. Na vyššie rýchlosti USB zatiaľ toto riešenie nestačí - na
spracovanie jedného "bitu" z USB linky treba totiž niekoľko taktov
mikroprocesora: načítanie, otestovanie, uloženie, operácia, ... .
Najskôr som sa rozhodol pre PIC16F84-20, s ktorým
som mal skúsenosti. Na zabezpečenie synchrónnosti s USB taktom a zvýšeniu rýchlosti
som použil taktovanie 24Mhz = 6MIPS (PIC bol trochu pretaktovaný). Na
spracovanie jedného bitu z USB linky som mal teda 4 inštrukcie
(4=6MIPS/1.5MBit pre LowSpeed USB). Toto riešenie som ale po čase zavrhol -
PIC je jednoducho pomalý (a naviac tá inštrukčná sada ...) .
Druhým pokusom bol AT90S1200-12, ktorý ma už
uspokojil s jeho rýchlosťou - bol som schopný už spracovania a vysielania
signálu na rýchlosti LowSpeed USB. Ale skončil som tu pre nedostatok
programovej a súčasne i dátovej pamäte - jednoducho sa to tam nevošlo.
Tretí pokus ale už vyšiel: AT90S2313-10 (alebo
AT90S2323-10, AT90S2343-10). Sú to RISC mikrokontroléry s produkcie Atmel
- rodina AVR. Voči PIC-om sú síce menej taktované, ale majú 1 inštrukciu
na takt hodín (pri PIC16F84 je to 1 inštrukcia na 4 takty hodín). Naviac ich
inštrukčná sada a architektúra je omnoho viac bližšia RISC-ovej. Opäť
som kvôli synchrónnosti s USB použil pretaktovanie na 12MHz (AT90S23x3-10 sú
pôvodne iba na 10MHz). Takto som získal viac výkonu a 12MHz kryštály sú ľahko
"zohnateľné" (napr. voči 10.5MHz - čo je tiež násobok LowSpeed
USB 1.5MBit/s).
Pri mojom riešení je hardware veľmi jednoduchý a lacný
(cca 200,-Sk). Celú inteligenciu zabezpečí obslužný firmware. Konštrukcia
je riešená ako infračervené diaľkové ovládanie počítača cez USB
(nasledovník konštrukcie na sériový port
), ale je to súčasne univerzálne USB rozhranie.
Toto zariadenie umožňuje:
Vďaka univerzálnosti je možné použiť mikroprocesor na mieste univerzálneho prevodníka napr. v aplikácii kde chceme iba ovládať (čítať a zapisovať) niekoľko vstupno-výstupných pinov. Možné aplikácie sú napr.: k pinom priamo pripojíme I2C teplomer, vstupy a výstupy zabezpečovacej ústredne, alebo iba jednoducho LED-ky alebo LCD/LED display atď., atď., atď. .
Na nasledujúcom obrázku je schéma hardware:
s mikroprocesorom AT90S2313-10 (univerzálne rozhranie):

alebo s mikroprocesorom AT90S2323-10 (iba na príjem IR kódu) - zatiaľ
netestované, ale malo by fungovať - už to otestovali - FUNGUJE:
a fyzické prevedenie konštrukcie (prijímač IR kódu : diaľkové
ovládanie počítača pre program Girder):
physical2.jpg)
Jednoduchosť zariadenia je naozaj obdivuhodná. A je dostupná aj amatérom aby svoje zariadenia pripojili k USB (to vždy poteší - viem to z vlastnej skúsenosti, keď mi Windows prvýkrát našli tento "New hardware found" ;-) ). Firmware, ktorý je srdcom celého zariadenia je pre obidva mikroprocesory rovnaký. V 8-pinovej verzii (AT90S2323-10) ale využijete iba príjem infra kódu a zápis/čítanie do/z EEPROM (príp. ak použijete AT90S2343 s externým taktovaním, tak aj jeden voľný pin ;-) ). Ale 8-pinová verzia je rozmerovo snáď to najmenšie čo sa dá k USB pripojiť.
Aby USB zariadenie komunikovalo s počítačom, je nutné
k nemu poskytnúť ovládač ("driver"). Tento ovládač si operačný
systém vypýta pri prvom zapojení IgorPlug-USB (AVR) do USB konektora v
počítači. V budúcnosti možno ani tento ovládač nebude potrebný : zmenou
firmware je možné aby sa zariadenie prihlásilo ako štandartná USB trieda (HID
class, Storage Class ,...), na ktoré má už operačný systém ovládače
vstavané. Výhodou vlastného ovládača je to, že máme nad všetkým
kontrolu. Pre "vlastný" ovládač som sa rozhodol iba kvôli naučeniu
sa ako to funguje a najmä kvôli jednoduchosti implementácie do firmware
zariadenia.
Nasledujúce obrázky ukazujú
postup inštalácie zariadenia (a ovládača) pri prvom pripojení IgorPlug-USB
(AVR) do USB konektora. Ovládač je spoločný pre Windows98, WindowsME,
Windows2000 aj WindowsXP (pod Windows95 nepracuje):
Najskôr pod WindowsXP:
Windows nájdu zariadenie IgorPlug-USB (AVR).
Zvolíme inštalovanie z nami určenej cesty.
Tu zadáme cestu k dodaným súborom (INF súbor a samotný SYS driver)
Windows
si urobia potrebné zmeny.
Driver síce nemá digitálny podpis od Microsoftu - ale inštaláciu neprerušíme.
Windows si urobia zálohu (aby sa vedeli bezpečne zotaviť ;-) ).
Keby nevedeli Windows XP nájsť SYS driver, ...
... tak im opäť ukážeme kde sa daný súbor nachádza.
A inštalácia je hotová:
A pod Windows98:
To isté ako pod WindowsXP, iba v inej vizuálnej forme.
Po úspešnej inštalácii si
potom môžete zariadenie pozrieť v "Device manageri":
Device Manager pod WindowsXP:
Device Manager pod Windows98:
Ako som už spomenul - pre funkciu je nutný ovládač,
ktorý si systém vypýta pri inštalácii. Tento ovládač
(driver) som však nenapísal sám, ale som použil jeden freewarový
USB ovladač a vlastne som mu prispôsobil aj firmware. Vďaka veľkej univerzálnosti
tohto ovládača mi takýto postup vyhovoval. Ja som iba ovládač upravil.
som napísal v prostredí Microsoft Windows2000 DDK (a oproti pôvodnému má
malé vylepšenia). Meno
ovládača je "IgorPlug.sys" a je obsiahnutý v inštalačnom
balíčku.
Pre inštaláciu je potrebný inštalačný
popisný súbor INF. Práve tento súbor si Windows vypýtajú pri inštalácii
zariadenia a vlastne pri zadávaní cesty pri inštalácii je potrebné zadať
cestu k tomuto súboru. V tomto súbore sú informácie pre inštaláciu daného
zariadenia - a vlastne na jeho podnet sa nainštaluje daný ovládač, príp. sa
urobia iné akcie. Tento súbor som vytvoril podľa vzorového príkladu z knihy
o USB. Keďže každé USB zariadenie musí mať pridelené číslo výrobcu
(tzv.VID) od USB-organizácie (USB-IF), tak som si "vypožičal"
toto číslo od firmy Atmel (dúfam, že mi to Atmel prepáči - nechce sa
mi totiž platiť cca 1500 dolárov za pridelené číslo) a implementoval ho do
mikroprocesora aj do INF súboru. Meno tohto súboru je "IgorPlug.inf"
a je obsiahnutý v inštalačnom balíčku. Teda na inštaláciu sú potrebné
iba dva súbory ("IgorPlug.sys" a "IgorPlug.inf").
Týmto sme si úspešne nainštalovali zariadenie IgorPlug-USB
(AVR). A môžeme pristúpiť k jeho otestovaniu. Na tento účel som
vytvoril DLL knižnicu "IgorUSB.dll",
ktorá obsahuje funkcie, ktoré zariadenie IgorPlug-USB (AVR) vykonáva. Táto DLL
knižnica komunikuje s driverom "IgorPlug.sys" a zabezpečuje
serializáciu komunikácie (pri použití DLL z viacerých threadov alebo
aplikácii). Knižnica DLL je teda primárne určená programátorom koncových
aplikácii na prístup k ich zariadeniu: exportované
funkcie z DLL sú zdokumentované.
Nasledujúce obrázky zobrazujú informácie o DLL knižnici
a SYS ovládači ako ich možno vidieť pod WindowsXP:
Nakoniec som vytvoril užívateľskú
aplikáciu - demonštračný program
"AVR to USB tester", ktorý predvádza všetky funkcie
zariadenia IgorPlug-USB (AVR). Využíva funkcie z DLL knižnice "IgorUSB.dll"
a je vlastne ukážkovou koncovou aplikáciou.
Program umožňuje:
Nasledujúci obrázok ukazuje možnosti demonštračného programu AVR to USB tester a jeho vlastnosti (v štýle WindowsXP):
Pre nutnosť programovania mikrokontroléra AVR bol nutný
programátor. Tento je však pre väčšinu užívateľov najmä z cenových dôvodov
nedostupný (príliš vysoká cena programátora). Preto som urobil jednoduchý
programátor daných mikrolontrolérov
- jednoduché pripojenie k LPT portu počítača. K nemu som napísal príslušný
obslužný program - je v ňom už obsiahnutý aj firmware
zariadenia IgorPlug-USB (AVR) (stačí iba spustiť a napáliť) a aj
potrebné schémy na zostrojenie programátora (zobrazia sa po stlačení
"help" - pre oba procesory: AT90S2313 a AT90S2323).
Tu je schéma zapojenia programátora a obslužný program (pracuje aj pod
WinXP):

Obslužný program si môžete stiahnuť v download sekcii.
Vývoj tohto zariadenia mi trval cca 4 mesiace (každý večer
po práci cca 4 hodiny - ach tie dlhé večery ;-) ) + predchádzajúce štúdium
a poznatky o USB a AVR mikroprocesoroch. Takže to nebolo až také ľahké
(priam som si všetko musel naštudovať, odsledovať a vyskúšať sám). Ale
teraz je už hračkou pozmeniť funkciu mikrokontroléra (napr. vynechať "infra-buffer"
a namiesto neho implementovať RS232 buffer). A USB nie je pre mňa už nič
neznáme (od fyzickej úrovne až po koncovú aplikáciu).
Námet na tento projekt som už nosil v hlave cca 2 roky (po tom, čo som
stiahol prvú USB dokumentáciu) - znovuoživenie však došlo pri publikovaní
podobného projektu jedného nemenovaného Ruského "vývojára", ktorý
to vraj urobil - nakoniec to však bol prvoaprílový žart (vtedy som to však
odhalil na prvý pohľad). Ale aj tak ma tento jeho "projekt" popohnal
k činnosti že to nie je nemožné ;-) .
Najväčšou neznámou bolo zvládnutie
celej špecifikácie USB (ale naozaj celej - od fyzickej úrovne až
po koncového užívateľa). Preto štúdium USB bolo veľmi dôležité. Hlavným
zdrojom informácii bola USB špecifikácia (voľne prístupná na http://www.usb.org)
a v poslednom čase kniha "USB Měření, řízení a regulace
pomocí sběrnice USB" od nakladateľstva BEN
. A samozrejme rôzne internetové zdroje.
Pri vývoji som na testovanie
používal rôzne "testovacie" a "informačné utility" opäť
stiahnuté z internetu (USBcheck, DisplayUSB, SnoopyPro, Fiddler, ...).
Na vývoj firmware som použil voľne dostupné "AVR Studio 4"
(zo stránok Atmel-u) a programátor "T51prog"
(od firmy Elnec). Pre "fyzické
nahliadnutie" som použil "Scopemeter FLUKE 123" (zázračný
to prístroj) od firmy FLUKE . Ako inšpirácia
a ukážkové USB zariadenie mi slúžila USB myška "Genius NetScroll+"
od firmy Genius (kúpená v Agem-e).
Samotný mikroprocesor (a aj tie "neúspešné") som kupoval v GM-electronic
. Vďaka teda týmto všetkým za pomoc.
Na vývoj som použil nasledovné programy a veľmi ďakujem
ich tvorcom:
A kto by chcel vidieť viac obrázkov z môjho
"vývojového pracoviska" , tu sú: DevelopmentBoard1,
DevelopmentBoard2, DevelopmentBoard3,
DevelopmentBoard4, DevelopmentPlace1.JPG,
DevelopmentPlace1, DevelopmentTools1,
DevelopmentToolsElnecProgrammer,
TargetDeviceAtmelAVR, TargetDeviceToUSBcable,
LiteratureAndInformationSource.
A zopár informácii o mojom zariadení IgorPlug-USB (AVR) ako
ich zobrazili rôzne testovacie utility: USBDesignByExample,
USBCheckFullTest, USBCheckDeviceDescriptor,
USBCheckConfigurationDescriptor,
USBCheckInterfaceDescriptor,
USBCheckEndpointDescriptor,
USBCheckViewDescriptors, USBCheck,
SnoopyProDeviceDescriptor,
SnoopyProConfigurationDescriptor,
SnoopyProVendorCommand,
......stačilo (aj tak to neznalým veľa nepovie).
Pre záujemcov o stavbu USB prijímača v tvare malého
USB kľúča
som pripravil dokumentáciu: plošný spoj, schéma
a rozloženie súčiastok. Túto dokumentáciu si môžete pozrieť tu ako
PDF súbor.
Firmware do
mikroprocesora je prístupný vo forme HEX-súboru a
teraz už aj ako zdrojový kód (na veľké
žiadosti od užívateľov-vývojárov som ho uvoľnil - pre doplnenie vlastných
funkcií). A teraz uvoľňujem aj dokumentáciu programovej podpory na strane počítača
PC (čo bolo v minulosti tiež platené). Samozrejme: komerčné využitie
produktu je platené. Ako freeware som uvoľnil napr. diaľkové
ovládanie počítača cez sériový port , a hoci som spomenul dobrovoľný
príspevok od spokojných užívateľov, tak z cca 20 000 stiahnutí (o ktorých
viem) sa mi ponúkol iba jeden človek (200,-Sk - ale aj tak vďaka (hoci už
len čas strávený nad cca 1500 odpovedanými e-mailami za niečo stojí). Teda
platí - ak dáš niečo free za dobrovoľný príspevok - nečakaj nič.
Nakoľko chcem, aby sa zariadenie rozšírilo, tak
k stiahnutiu je : IntelHEX súbor pre
AT90S23x3-10, driver , DLL-knižnica
pre prístup k IgorPlug-USB (AVR) a ukážkový
program ovládania IgorPlug-USB (AVR) (teda všetko :-o ).
Ďalej som uvoľnil aj zdrojový kód
firmware mikrokontroléra a aj dokumentáciu
k DLL knižnici (pre tvorbu vlastných aplikácii). Dokumentácia je
pre Delphi, C++Builder/Visual C++, Visual Basic. Takže každý
si môže odskúšať ako zariadenie pracuje.
Pre rýchlu stavbu zariadenia je dostupný aj jednoduchý
LPT programátor daných mikrokontrolérov (AT90S2313-10 a
AT90S2323-10). A pre menej znalých koncových užívateľov aj malá
inštalačná príručka (krok za krokom).
Jediným obmedzením tejto "free" verzie bude,
že DLL knižnica zobrazí pri prvom volaní informačné okno (inak je plne
funkčná). Pre vlastné aplikácie bude teda lepšie si kúpiť ostrú verziu
DLL knižnice. Pre distribučné firmy, ktoré by chceli zariadenie
distribuovať kompletne: naprogramovaný mikroprocesor + CD s
ostrými verziami a dokumentáciou, poskytnem ostré verzie na distribúciu
(samozrejme s mojimi autorskými právami). Takto chcem odstrániť problémy s
platbou - budete nakupovať cez internetové obchody distributérov vo Vašom
okolí (a štáte - už aby bola EU ;-) ).
Cena pre koncového zákazníka je cca 150,-Sk (Slovensko) alebo 150,-Kč (Česká
republika) alebo 4,-Euro (Európa) alebo 4,-US$ (svet). Pre distribučné firmy
sú možné samozrejme zľavy (po dohode).
Záujemcovia o dokumentáciu
a komerčné využitie produktu ma môžu
kontaktovať e-mailom .
Pre využitie
produktu ako diaľkového ovládania počítača - odporúčam si prečítať
článok IgorPlug .
DOWNLOAD:
Tu je k
stiahnutiu ZIP archív: IntelHEX
do AT90S23x3-10, inštalačné súbory (ovládač), DLL knižnica (free), ukážková
aplikácia . Tieto súbory sa môžu časom meniť (podľa požiadaviek
sa bude asi meniť iba DLL knižnica, SYS driver však asi zostane rovnaký).
Pre naprogramovanie mikrokontroléra cez LPT
port je potrebné stiahnuť IgorPlugUSBprogrammer.
A vývojárov bude istotne zaujímať balík:
zdrojový kód firmware do
AT90S23x3 + rozhranie k DLL knižnici IgorUSB.dll (prosím nezneužívať).
Popis funkcií DLL je pre Delphi, C++Builder/Visual C++, Visual Basic.
Pre koncových užívateľov sa istotne hodí
detailný inštalačný
postup (taká malá inštalačná príručka - krok za krokom: zasuňte
zariadenie do USB, objaví sa ... , potom vložte CD ... , atď)
Záujemcom, ktorí nemôžu zohnať procesor, pošlem
naprogramovaný procesor na dobierku za cca 300,-Sk (150,-Sk stojí samotný
procesor + poštovné a balné + niečo pre mňa). Môžete ma kontaktovať e-mailom.
Rozhodujem zverejniť
(záujemcovia ozvite sa
- robím prieskum):
- dokumentáciu k DLL knižnici : aby mohli programátori
napísať vlastné aplikácie - UŽ SA STALO
- zdrojový kód v mikroprocesore : pre upravenie firmware
na vlastné funkcie - UŽ SA STALO
- ale iba na nekomerčné účely!!! -
TO STÁLE PLATÍ
História:
- január 2003 : dokončenie, zdokumentovanie a publikovanie projektu
- máj 2003 : začatie práce na implementácii do ATmega8 ako RS232+
prevodník (pozrite si moje projekty)
- júl 2003 : ukončenie implementácie vylepšeného RS232+
interface do ATmega a AT90S2313 (viď. IgorPlug-USB
(AVR) RS232.htm)
- august 2003 : vytvorenie vlastného ovládača v DDK s rôznymi vylepšeniami
(efektívnejší prenos, odstránený problém pri
hybernácii počítača, ...)
- september 2003 : upravený interface DLL knižnice pre použitie v C++
a Visual Basic (upravená dokumentácia k DLL)
- May 2003 - 2004 : nový projekt založený na IgorPlug-USB :
Application Note pre Atmel Company USB
to RS232 converter
V prípade problémov s downloadom - navštivte moje zrkadlo : http://members.chello.cz/cesko, alebo ma kontaktujte e-mailom a ja Vám to pošlem e-mailom.
Testovane na operačných systémoch:
- Windows95 - nefunkčné (potreba prepísať driver)
- Windows98, Windows XP, Windows 2000 : plne
funkčné a testované
- Windows ME : malo by byť
plne funkčné avšak netestované (môžete
otestovať - a dajte mi vedieť e-mailom)
Hardvérove požiadavky:
- minimálna testovaná konfigurácia : Intel Pentium 120MHz bez MMX,
32MB RAM (Windows 98) (moje staré PC)
Q: After device plugin into USB port is the device not
recognized - recognized only as "Unknown USB device".
A1: Problem of bad device detection is in hardware. In schematic you must add
series resistors into USB data lines - see schematic on my website. You can increase the resistors from 68R up to 330R.
And additionally you can connect Zener diodes (3.6V) to USB D+ and D- data
lines. Problem appears mainly on notebooks and new computers. Usually is there
no problem when you plug device into external USB hub. Problem is caused by high
voltage coming from microcontroller to USB lines - allowed max. 3.6V (input
current into computer USB port).
A2: If you are using ATtiny2313 you must set fuses during
programming: disable division the external clock by 4 and enable high speed
XTALL.
Note: No driver update helps ;-) .
Q: Is possible to use ATtiny2313 instead AT90S2313?
A: The device is compiled for AT90S2313 but works also on
ATtiny2313 - same HEX file (binary compatible). For correct operation on ATtiny2313 you must set
fuses during programming: disable division the external clock by 4 and enable high speed
XTALL. The HEX file is in download package on my website.
Q: Is possible to program ATtiny2313 with LPT programmer?
A: The programmer is designed for 2313 only. For another AVR use please
another simple programmer - for example from http://www.amwaw.edu.pl/~adybkows/elka/ispprog.html or
http://www.serasidis.gr/circuits/avrprog/avrprog.htm .
The HEX file is in download package on my website.
Q: How to order full version of driver - without the popup
window on startup?
A: Please firstly pay 4,-EURO on www.moneybookers.com to my account:
cesko@internet.sk . Then I will send to you the full version of software by
email. Thanks.
Q: How to port existing firmware (USB for AVR) to another
AVR device?
A: Look here - it is better for porting - written C-language
and more more flexible: http://www.obdev.at/products/avrusb/index.html.
Based on my idea but written from scratch in better way. I suggest this
;-) - perfect work
Q: How to use IgorPlug-USB device in own software?
A: Use "IgorUSB.dll" DLL library from my driver
package. This library contains functions for access this USB device and is
installed into system during device driver installation (no need to distribute
it with your software). Documentation to this functions you can download here.
Device offers received IR signal in oscilloscopic form (times between logic
signal changes). For decoding this oscillograph is up to you (e.g.: my Girder
plugin "IgorPlug.dll" decodes this) - but some know how needed
about IR signal used in remote controls.
Q: Where to obtain source codes of driver?
A: Driver "IgorPlug.sys" has no free sources - as
protection for commercial use. But this driver is very similar to my second
driver for RS232 to USB converter which is free. Source codes of this
driver you can find on page for
IgorPlug-USB to RS232 converter + - in download section here
in this zip file.
Q: How to obtain source codes of firmware which has comments in
English?
A: Source codes are commented in Slovak language (sorry ;-) ). But
there exists also source codes with English comments for similar device: IgorPlug-USB to RS232 converter + -
based on same core.
Q: How fast is the IO access of IgorPlug-USB device?
A: Each USB command takes min. 2ms: this is from USB principle.
USB1.1 has time slot 1ms - so we need 1ms for sending request to device and next
1ms for answer from device (plus additional time for execution on device and PC
software). For example if you are toggling IO pin on device the max. frequency
of LED blinking will be 250Hz (LED is 2ms ON and 2ms OFF => f = 1/(4ms)
= 250 Hz). Therefore - from principle - is USB fast only if large data block
will be transferred in this 1ms slot (but response time is 1ms on USB1.1).
Q: Another problems?
A: Write me email - but I am busy ;-) .
Odmena a podpora !!! : Ak sa Vám tento nápad páči a ste s ním
spokojný - môžete mi prispieť dobrovoľnou sumou (podľa Vášho
vkusu):
- tu použite môj e-mail: cesko@internet.sk
ako príjemcu a nechajte mi správu čo si objednávate cez tento
formulár. Po obdržaní Vašej objednávky Vás budem informovať a plnú
verziu software Vám pošlem na e-mail uvedený v objednávacom formulári.
SLOVENSKO:
- (pripravuje sa Pavol Bielopotocký)
- Vrták František ponúka na svojej stránke tri verzie prijímača. V ponuke má USB v krabičke, USB v 3.5/5.25 paneli do PC a USB key. Po dohode možná zmena v dĺžke kábla alebo pridať na panel ďalší USB port. Dalšie podrobnosti na vrtak.webpark.sk/usb.htm alebo mailom na frantisek.vrtak@semecs.sk.
-
Branislav Rozbora: Ponúka:
Verzia na USB port: 2 typy prevedení:
1) Snímač v krabičke s elektronikou - dĺžka USB kábla voliteľná.
1-3m
2) Snímač na kábliku (ako pri COM prevedení), elektronika schovaná v krabičke
pri konektore - dĺžka USB kábla voliteľná 1-3m.
Foto: http://sektor-x.wz.cz/irusb.htm.
Dodanie: odoslanie do 5 pracovných dni od podania objednávky: telefonicky:
0904/503424, e-mailom: sektormaster@atlas.sk
alebo vyplnením formulára na: http://sektor-x.wz.cz
,(kde sú aj fotografie). Dodanie na dobierku,
prípadne osobne v Trenčíne po tel.
dohode.
- Pirický Peter ponúka na svojej stránke www.piricky.szm.sk verzie IR prijímača cez USB na kábli alebo interné riešenie do 3,5/5.25 slotu pre mechaniky.
ČESKÁ REPUBLIKA:
- Lukáš
Dziadkowiec ponúka na svojej stránke pekne spracovaný USB prijímač
spolu so všetkým potrebným softvérom na diaľkové ovládanie počítača.
Záujemcovia nájdu všetky informácie na
jeho stránke (nechýba ani foto). Dodanie je možné
v Českej republike na dobierku.
- Jiři Kalkus : nabízí USB i sériovou verzi. Délku kábliku si můžete zvolit sami (0-10 m). Cena USB verze je 350,-Kč (1.5m káblik). Dodání je možné poštou v celé České republice nebo osobně v městách České Budějovice a Praha. Kontakt: tel: +420721758094, e-mail: djbj@volny.cz , ICQ: 230642851, web: www.volny.cz/djbj
SINGAPORE (ASIA PACIFIC REGION):
- Han Loke Su : zo stranky
v Singapure ponúka USB aj Serial verziu. Viac informácii
na stránkach: http://www.alldiy.info. Dodávka
je možná v oblasti Ázie - Pacificky región
poštou.
V prípade Vášho záujmu predávať
tento "výrobok" (naprogramovaný mikroprocesor
+ CD s dokumentáciou a software) uverejním Vašu adresu na tomto mieste.
Podmienkou je spoľahlivosť u Vašich zákazníkov. Cenu zariadenia pre Vás
dohodneme (pre malé série zdarma!!!). Môžete ma kontaktovať e-mailom.
www.cesko.host.sk - sekcia Hardware
www.cesko.host.sk/girderplugin_sk.htm
- diaľkové ovládanie počítača pomocou infračerveného ovládača
www.appliedp.sk - firma v ktorej pracujem a
vyvíjam niečo z inej brandže
www.usb.org - všetko o USB zbernici
a iné: ...
Stránka bude priebežne dopĺňaná o nové informácie (o ktoré bude záujem).
autor: Ing. Igor Češko:
e-mail: cesko@internet.sk
domovská stránka:
www.cesko.host.sk