Stap 5: VUSB bestanden
Hop op over aan de VUSB download pagina en pak de laatste versie van hun bibliotheek. Unzip het bestand en kopieer de map usbdrv naar uw projectmap (de dezelfde plaats waar u uw broncode zetten). Open de map usbdrv en moet er een bestand met de naam usbconfig-prototype.h. Maak een kopie van het bestand en noem het usbconfig.h. We moeten dit bestand aanpassen om te voldoen aan ons project. Gelukkig, alle bestanden van de VUSB zijn goed gedocumenteerd, dus dit is niet te moeilijk. Ik heb het usbconfig.h bestand dat ik voor dit project gebruikte toegevoegd, maar je moet wijzigen als u een verschillende micro. Neem een blik bij wat u wilt wijzigen.
usbconfig.h
Het eerste wat dat we moeten doen is de software te vertellen waar de USB d + en D-lijn worden aangesloten op de micro:
#define USB_CFG_IOPORTNAME D #define USB_CFG_DMINUS_BIT 3 #define USB_CFG_DPLUS_BIT 2
In ons geval is het poort D, bit 2 en 3, die overeenkomen met de pinnen 4 en 5. De D-lijn kan worden aangesloten op elke bit in de haven, maar D + moet aangesloten worden op INT0. Reactie van usbconfig.h:
/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected. * This may be any bit in the port. Please note that D+ must also be connected * to interrupt pin INT0! [You can also use other interrupts, see section * "Optional MCU Description" below, or you can connect D- to the interrupt, as * it is required if you use the USB_COUNT_SOF feature. If you use D- for the * interrupt, the USB interrupt will also be triggered at Start-Of-Frame * markers every millisecond.] */
Vervolgens hebben we om ervoor te zorgen dat de USB-kloksnelheid overeenkomt met onze AVR kloksnelheid:
#define USB_CFG_CLOCK_KHZ 16000
Elk USB-apparaat is hard gecodeerd met zowel een leverancier ID (VID) en een product-ID (PID). Dit kan een computer gemakkelijk zoeken en toewijzen van de juiste stuurprogramma's voor elk apparaat. Aangezien wij niet alle stuurprogramma's nodig voor ons project, konden we willekeurige getallen kiezen voor de VID en PID. We lopen echter het (kleine) risico van per ongeluk het kiezen van een bestaande ID, en de computer verwarrend. Gelukkig, kunt u het registreren van een unieke VID met usb.org voor de lage lage prijs van $5000. Hebt u niet dat soort geld aan kant, biedt VUSB een paar VID/PID die u voor uw project gebruiken kunt. Merk op dat met behulp van deze VID en PID, dit project onder de GPL valt. U kunt deze wijzigen id's, maar u moet er rekening mee dat deze id's moet overeenkomen met wat er in uw code.
#define USB_CFG_VENDOR_ID 0xc0, 0x16 /* = 0x16c0 = 5824 = voti.nl */ #define USB_CFG_DEVICE_ID 0xdc, 0x05 /* = 0x05dc = 1500 */
Hoewel we een bestaande VID en PID gebruikt, kunnen we nog steeds een aangepaste tekenreeks leveren voor zowel de apparaatnaam de naam van de leverancier:
#define USB_CFG_VENDOR_NAME 'e', 'x', 'a', 'm', 'p', 'l', 'e', '.', 'c', 'o', 'm' #define USB_CFG_VENDOR_NAME_LEN 11 #define USB_CFG_DEVICE_NAME 'M', 'o', 'o', 'd', ' ', 'L', 'i', 'g', 'h', 't' #define USB_CFG_DEVICE_NAME_LEN 10
Voel je vrij om uw eigen e-mail/website gebruiken als de naam van de verkoper.