X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/6f73197f2e8b5a867c8ffe12906772e32e892ac9..5b20be02e28bb67097fc6701f7596a352b39f902:/firmware/usbconfig.h diff --git a/firmware/usbconfig.h b/firmware/usbconfig.h index 70ee324b7..8a1ebd087 100644 --- a/firmware/usbconfig.h +++ b/firmware/usbconfig.h @@ -9,52 +9,74 @@ */ #ifndef __usbconfig_h_included__ -#define __usbconfig_h_included__ +#define __usbconfig_h_included__ /* General Description: This file contains parts of the USB driver which can be configured and can or must be adapted to your hardware. + +Please note that the usbdrv contains a usbconfig-prototype.h file now. We +recommend that you use that file as a template because it will always list +the newest features and options. */ /* ---------------------------- Hardware Config ---------------------------- */ -#define USB_CFG_IOPORT PORTB +#define USB_CFG_IOPORTNAME B /* This is the port where the USB bus is connected. When you configure it to - * "PORTB", the registers PORTB, PINB (=PORTB+2) and DDRB (=PORTB+1) will be + * "PORTB", the registers PORTB, PINB (=PORTB-2) and DDRB (=PORTB-1) will be * used. */ -#define USB_CFG_DMINUS_BIT 0 +#define USB_CFG_DMINUS_BIT 0 /* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected. - * This MUST be bit 0. All other values will result in a compile error! + * This MUST be bit 0 or 7. All other values will result in a compile error! */ -#define USB_CFG_DPLUS_BIT 1 +#define USB_CFG_DPLUS_BIT 1 /* 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! */ +/* #define USB_CFG_PULLUP_IOPORTNAME B */ +/* This is the port where the USB D- pullup resistor is connected. When you + * configure it to "PORTB", the registers PORTB and DDRB (=PORTB-1) will be + * used. If this constant is defined, the macros usbDeviceConnect() and + * usbDeviceDisconnect will be available. + */ +/* #define USB_CFG_PULLUP_BIT 2 */ +/* This is the bit number in USB_CFG_PULLUP_IOPORT where the USB D- 1.5 kOhm + * pullup resistor is connected instead of VBUS. This may be any bit in + * the port. + */ + /* --------------------------- Functional Range ---------------------------- */ -#define USB_CFG_HAVE_INTRIN_ENDPOINT 0 +#define USB_CFG_HAVE_INTRIN_ENDPOINT 0 /* Define this to 1 if you want to compile a version with two endpoints: The * default control endpoint 0 and an interrupt-in endpoint 1. */ -#define USB_CFG_INTR_POLL_INTERVAL 10 +#define USB_CFG_IMPLEMENT_HALT 0 +/* Define this to 1 if you also want to implement the ENDPOINT_HALT feature + * for endpoint 1 (interrupt endpoint). Although you may not need this feature, + * it is required by the standard. We have made it a config option because it + * bloats the code considerably. + */ +#define USB_CFG_INTR_POLL_INTERVAL 10 /* If you compile a version with endpoint 1 (interrupt-in), this is the poll * interval. The value is in milliseconds and must not be less than 10 ms for * low speed devices. */ -#define USB_CFG_IS_SELF_POWERED 0 +#define USB_CFG_IS_SELF_POWERED 0 /* Define this to 1 if the device has its own power supply. Set it to 0 if the * device is powered from the USB bus. */ -#define USB_CFG_MAX_BUS_POWER 50 +#define USB_CFG_MAX_BUS_POWER 50 /* Set this variable to the maximum USB bus power consumption of your device. * The value is in milliamperes. [It will be divided by two since USB * communicates power requirements in units of 2 mA.] */ -#define USB_CFG_SAMPLE_EXACT 1 +#define USB_CFG_SAMPLE_EXACT 1 /* This variable affects Sampling Jitter for USB receiving. When it is 0, the * driver guarantees a sampling window of 1/2 bit. The USB spec requires * that the receiver has at most 1/4 bit sampling window. The 1/2 bit window @@ -63,12 +85,12 @@ must be adapted to your hardware. * results in bigger code size. * If you have problems with long cables, try setting this value to 1. */ -#define USB_CFG_IMPLEMENT_FN_WRITE 1 +#define USB_CFG_IMPLEMENT_FN_WRITE 1 /* Set this to 1 if you want usbFunctionWrite() to be called for control-out * transfers. Set it to 0 if you don't need it and want to save a couple of * bytes. */ -#define USB_CFG_IMPLEMENT_FN_READ 1 +#define USB_CFG_IMPLEMENT_FN_READ 1 /* Set this to 1 if you need to send control replies which are generated * "on the fly" when usbFunctionRead() is called. If you only want to send * data from a static buffer, set it to 0 and return the data from @@ -77,41 +99,65 @@ must be adapted to your hardware. /* -------------------------- Device Description --------------------------- */ -#define USB_CFG_VENDOR_ID 0xeb, 0x03 -/* USB vendor ID for the device, low byte first. 0xeb, 0x03 is Atmel's vendor - * ID. Don't use it for hardware you sell or publish! - */ -#define USB_CFG_DEVICE_ID 0xb4, 0xc7 -/* This is the ID of the device, low byte first. It is interpreted in the - * scope of the vendor ID. The only requirement is that no two devices may - * share the same product and vendor IDs. Not even if the devices are never - * on the same bus together! - */ -#define USB_CFG_DEVICE_VERSION 0x00, 0x01 +#define USB_CFG_VENDOR_ID 0xc0, 0x16 /* 5824 in dec, stands for VOTI */ +/* USB vendor ID for the device, low byte first. If you have registered your + * own Vendor ID, define it here. Otherwise you use obdev's free shared + * VID/PID pair. Be sure to read USBID-License.txt for rules! + */ +#define USB_CFG_DEVICE_ID 0xdc, 0x05 /* 1500 in dec, obdev's free PID */ +/* This is the ID of the product, low byte first. It is interpreted in the + * scope of the vendor ID. If you have registered your own VID with usb.org + * or if you have licensed a PID from somebody else, define it here. Otherwise + * you use obdev's free shared VID/PID pair. Be sure to read the rules in + * USBID-License.txt! + */ +#define USB_CFG_DEVICE_VERSION 0x01, 0x01 /* Version number of the device: Minor number first, then major number. */ -#define USB_CFG_VENDOR_NAME 'w', 'w', 'w', '.', 'f', 'i', 's', 'c', 'h', 'l', '.', 'd', 'e' -#define USB_CFG_VENDOR_NAME_LEN 13 +#define USB_CFG_VENDOR_NAME 'w', 'w', 'w', '.', 'f', 'i', 's', 'c', 'h', 'l', '.', 'd', 'e' +#define USB_CFG_VENDOR_NAME_LEN 13 /* These two values define the vendor name returned by the USB device. The name * must be given as a list of characters under single quotes. The characters * are interpreted as Unicode (UTF-16) entities. * If you don't want a vendor name string, undefine these macros. + * ALWAYS define a vendor name containing your Internet domain name if you use + * obdev's free shared VID/PID pair. See the file USBID-License.txt for + * details. */ #define USB_CFG_DEVICE_NAME 'U', 'S', 'B', 'a', 's', 'p' #define USB_CFG_DEVICE_NAME_LEN 6 /* Same as above for the device name. If you don't want a device name, undefine - * the macros. - */ -#define USB_CFG_DEVICE_CLASS 0xff -#define USB_CFG_DEVICE_SUBCLASS 0 + * the macros. See the file USBID-License.txt before you assign a name. + */ +#define USB_CFG_SERIAL_NUMBER_LENGTH 0 +/* Set this define to the number of charcters in the serial number if your + * device should have a serial number to uniquely identify each hardware + * instance. You must supply the serial number in a string descriptor with the + * name "usbCfgSerialNumberStringDescriptor", e.g.: + * #define USB_CFG_SERIAL_NUMBER_LENGTH 5 + * int usbCfgSerialNumberStringDescriptor[] PROGMEM = { + * USB_STRING_DESCRIPTOR_HEADER(USB_CFG_SERIAL_NUMBER_LENGTH), + * '1', '2', '3', '4', '5' + * }; + * See usbdrv.h for more information about the USB_STRING_DESCRIPTOR_HEADER() + * macro or usbdrv.c for example string descriptors. + * You may want to put "usbCfgSerialNumberStringDescriptor" at a constant + * flash memory address (with magic linker commands) so that you don't need + * to recompile if you change it. + */ +#define USB_CFG_DEVICE_CLASS 0xff +#define USB_CFG_DEVICE_SUBCLASS 0 /* See USB specification if you want to conform to an existing device class. */ -#define USB_CFG_INTERFACE_CLASS 0 -#define USB_CFG_INTERFACE_SUBCLASS 0 -#define USB_CFG_INTERFACE_PROTOCOL 0 +#define USB_CFG_INTERFACE_CLASS 0 +#define USB_CFG_INTERFACE_SUBCLASS 0 +#define USB_CFG_INTERFACE_PROTOCOL 0 /* See USB specification if you want to conform to an existing device class or * protocol. */ - +#define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 0 /* total length of report descriptor */ +/* Define this to the length of the HID report descriptor, if you implement + * an HID device. Otherwise don't define it or define it to 0. + */ #endif /* __usbconfig_h_included__ */