/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
.Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE,
- .VendorID = CPU_TO_LE16(0x03EB),
- .ProductID = CPU_TO_LE16(0x2104),
+ .VendorID = 0x03EB,
+ .ProductID = 0x2104,
.ReleaseNumber = VERSION_BCD(02.00),
.ManufacturerStrIndex = 0x01,
{
.Header = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration},
- .TotalConfigurationSize = CPU_TO_LE16(sizeof(USB_Descriptor_Configuration_t)),
+ .TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t),
.TotalInterfaces = 1,
.ConfigurationNumber = 1,
.ConfigurationStrIndex = NO_DESCRIPTOR,
- .ConfigAttributes = USB_CONFIG_ATTR_BUSPOWERED,
+ .ConfigAttributes = (USB_CONFIG_ATTR_RESERVED | USB_CONFIG_ATTR_SELFPOWERED),
.MaxPowerConsumption = USB_CONFIG_POWER_MA(100)
},
.TotalEndpoints = 2,
.Class = USB_CSCP_VendorSpecificClass,
- .SubClass = 0x00,
- .Protocol = 0x00,
+ .SubClass = USB_CSCP_NoDeviceSubclass,
+ .Protocol = USB_CSCP_NoDeviceProtocol,
.InterfaceStrIndex = NO_DESCRIPTOR
},
{
.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
- .EndpointAddress = (ENDPOINT_DESCRIPTOR_DIR_IN | AVRISP_DATA_IN_EPNUM),
+ .EndpointAddress = AVRISP_DATA_IN_EPADDR,
.Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
- .EndpointSize = CPU_TO_LE16(AVRISP_DATA_EPSIZE),
+ .EndpointSize = AVRISP_DATA_EPSIZE,
.PollingIntervalMS = 0x0A
},
{
.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint},
- .EndpointAddress = (ENDPOINT_DESCRIPTOR_DIR_OUT | AVRISP_DATA_OUT_EPNUM),
+ .EndpointAddress = AVRISP_DATA_OUT_EPADDR,
.Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA),
- .EndpointSize = CPU_TO_LE16(AVRISP_DATA_EPSIZE),
+ .EndpointSize = AVRISP_DATA_EPSIZE,
.PollingIntervalMS = 0x0A
},
};
*/
const USB_Descriptor_String_t PROGMEM ManufacturerString =
{
- .Header = {.Size = USB_STRING_LEN(11), .Type = DTYPE_String},
+ .Header = {.Size = USB_STRING_LEN(5), .Type = DTYPE_String},
- .UnicodeString = {CPU_TO_LE16('D'),
- CPU_TO_LE16('e'),
- CPU_TO_LE16('a'),
- CPU_TO_LE16('n'),
- CPU_TO_LE16(' '),
- CPU_TO_LE16('C'),
- CPU_TO_LE16('a'),
- CPU_TO_LE16('m'),
- CPU_TO_LE16('e'),
- CPU_TO_LE16('r'),
- CPU_TO_LE16('a')}
+ .UnicodeString = L"ATMEL"
};
/** Product descriptor string. This is a Unicode string containing the product's details in human readable form,
*/
const USB_Descriptor_String_t PROGMEM ProductString =
{
- .Header = {.Size = USB_STRING_LEN(22), .Type = DTYPE_String},
-
- .UnicodeString = {CPU_TO_LE16('L'),
- CPU_TO_LE16('U'),
- CPU_TO_LE16('F'),
- CPU_TO_LE16('A'),
- CPU_TO_LE16(' '),
- CPU_TO_LE16('A'),
- CPU_TO_LE16('V'),
- CPU_TO_LE16('R'),
- CPU_TO_LE16('I'),
- CPU_TO_LE16('S'),
- CPU_TO_LE16('P'),
- CPU_TO_LE16(' '),
- CPU_TO_LE16('M'),
- CPU_TO_LE16('k'),
- CPU_TO_LE16('I'),
- CPU_TO_LE16('I'),
- CPU_TO_LE16(' '),
- CPU_TO_LE16('C'),
- CPU_TO_LE16('l'),
- CPU_TO_LE16('o'),
- CPU_TO_LE16('n'),
- CPU_TO_LE16('e')}
+ .Header = {.Size = USB_STRING_LEN(11), .Type = DTYPE_String},
+
+ .UnicodeString = L"AVRISP mkII"
};
/** Serial number string. This is a Unicode string containing the device's unique serial number, expressed as a
const USB_Descriptor_String_t PROGMEM SerialString =
{
.Header = {.Size = USB_STRING_LEN(13), .Type = DTYPE_String},
-
- .UnicodeString = {CPU_TO_LE16('0'),
- CPU_TO_LE16('0'),
- CPU_TO_LE16('0'),
- CPU_TO_LE16('0'),
- CPU_TO_LE16('A'),
- CPU_TO_LE16('0'),
- CPU_TO_LE16('0'),
- CPU_TO_LE16('1'),
- CPU_TO_LE16('2'),
- CPU_TO_LE16('8'),
- CPU_TO_LE16('2'),
- CPU_TO_LE16('5'),
- CPU_TO_LE16('5')}
+
+ .UnicodeString = L"000200012345\0" // Note: Real AVRISP-MKII has the embedded NUL byte, bug in firmware?
};
/** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"