V-USB er navnet på et softwarebibliotek , der giver dig mulighed for at få support til USB -protokollen på AVR-mikrocontrollere ( Atmel 's Classic, Tiny og Mega-familier ), som ikke har USB-hardwareunderstøttelse. Biblioteket er ophavsretligt beskyttet af Objective Development , som distribuerer og promoverer V-USB under GNU GPL og kommercielle licenser (kildekoden til biblioteket er frit tilgængelig, se links).
Det gamle navn på biblioteket var AVR-USB, men efter at biblioteket vandt popularitet, måtte navnet ændres for ikke at komme i konflikt med eksisterende Atmel -navne . USB-protokollen er implementeret i software, og hastigheden på AVR-kernen er kun tilstrækkelig til at implementere USB 1.1-standarden ved lav hastighed (lav hastighed). Af denne grund er V-USB-biblioteket kun velegnet til I/O-enheder med lav hastighed (f.eks . USB HID ). Da ydeevnekravene til behandling af USB-signaler (D+ og D-) er meget strenge, er lavniveaukoden skrevet i assembler , og kun et vist udvalg af kerneure understøttes. Først var clockfrekvensen kun 12 MHz, men så blev det muligt at bruge kvartsresonatorer på 12, 15, 16, 16,5 og 20 MHz. Mikrocontrollere, der har en PLL (Phase Locked Loop) til clockgenerering, kan bruge en intern RC-oscillator (det vil sige fungere uden en krystal ), forudsat at RC-oscillatoren er kalibreret med SOF -signalet (Start Of Frame) fra USB-protokollen. Bibliotekets procedurer og funktioner på højt niveau er skrevet i C. Kravene til AVR-mikrocontrolleren er lave - der kræves mindst 2 kbyte programhukommelse ( flash ) og 128 bytes RAM (RAM). Af hardwareressourcerne bruges kun en pin change interrupt (normalt INT0 forbundet til USB-bussens D+ signal). Sådanne systemkrav opfyldes af de fleste mikrocontrollere i AVR-familien.
På grund af det faktum, at der leveres gode eksempler på firmware til USB-enheder med biblioteket (USB-brugerklasse, USB HID-klasse, USB-mus, kontrol af mikrocontrollerporte, læsning og skrivning af dens EEPROM), er der dukket mange nyttige udviklinger op ved hjælp af V- USB - USB bibliotek - programmører, input og output enheder, breadboards, interface konvertere (for eksempel USB- RS232 ) og meget mere (se links). Biblioteket leveres også med eksempler på computerprogrammer (værtssoftware), der fungerer med enheder på V-USB-biblioteket. Eksemplerne på værtssoftware bruger et andet gratis bibliotek, libusb .
V-USB-biblioteket giver således ikke-professionelle USB-programmører mulighed for hurtigt at begynde at skabe USB-enheder og skrive computerprogrammer til dem. Derudover er der ingen omkostninger for softwaren, der bruges i udviklingen - den er tilgængelig under GNU -licensen . Bibliotekets kommentarkode og eksempler på firmware og værtssoftware er oversat til russisk (se links).