Dean Camera [Wed, 6 Oct 2010 11:51:53 +0000 (11:51 +0000)]
Fixed SPI driver not explicitly setting /SS and MISO pins as inputs when SPI_Init() is called.
Dean Camera [Wed, 6 Oct 2010 10:16:02 +0000 (10:16 +0000)]
Cache the USB_DeviceState variable internally in the library core when multiple checks are required in a single loop iteration, to reduce compiled code size.
Dean Camera [Sat, 2 Oct 2010 10:07:24 +0000 (10:07 +0000)]
Revert change to the AVRISP-MKII project for fuse byte programming via the CMDEX bit - this appears to be an error in the XMEGA manual external memory programming table.
Dean Camera [Sat, 2 Oct 2010 10:02:24 +0000 (10:02 +0000)]
Fixed broken lock byte programming in the AVRISP-MKII clone project for some XMEGA targets.
Dean Camera [Sat, 2 Oct 2010 08:41:08 +0000 (08:41 +0000)]
Fixed broken FLASH/EEPROM programming in the AVRISP-MKII clone project when writing in non-paged mode and the polling byte cannot be used.
Dean Camera [Fri, 1 Oct 2010 12:01:54 +0000 (12:01 +0000)]
Fixed LowLevel JoystickHostWithParser demo not saving the chosen HID interface's report descriptor size.
Simplified low level Host demo configuration descriptor parser routines.
Dean Camera [Fri, 1 Oct 2010 11:22:54 +0000 (11:22 +0000)]
Oops - revert changes to the Device mode Class Driver VirtualSerial demo makefile.
Dean Camera [Fri, 1 Oct 2010 11:22:24 +0000 (11:22 +0000)]
Fix device mode for the U4 parts.
Dean Camera [Fri, 1 Oct 2010 00:11:32 +0000 (00:11 +0000)]
Whitespace corrections.
Make Printer Host mode Class driver interface descriptor search routine pre-cast the current interface descriptor to simplify the value checks.
Dean Camera [Thu, 30 Sep 2010 23:23:05 +0000 (23:23 +0000)]
Make Host mode Class drivers only set the class driver instance's state values once a compatible interface has been found within the device.
Dean Camera [Thu, 30 Sep 2010 08:07:29 +0000 (08:07 +0000)]
Fix incorrectly named configuration descriptor callback routines in the host mode class drivers.
Fix typo in MIDI low level device demo.
Dean Camera [Thu, 30 Sep 2010 07:56:47 +0000 (07:56 +0000)]
Fix low level host mode demos not correctly fetching the next endpoint when an invalid interface is discarded.
Update the pipe configuration routines in the host mode class drivers so that they use the same new code to enumerate compatible devices to increase reliability. Add support to the host mode class drivers for non-sequential (but non-overlapping with other interface) pipe numbers.
Dean Camera [Thu, 30 Sep 2010 06:23:38 +0000 (06:23 +0000)]
Reverted Endpoint/Pipe non-sequential configuration hack, placed restriction on the configuration order instead to ensure maximum reliability.
Altered all low level device and host mode demos to ensure that endpoints and pipes are configured in ascending order properly.
Rewrote all low level host mode demos' configuration descriptor parser code to ensure that pipes are enumerated in ascending order, and to ensure maximum compatibility with devices.
Incremented all device mode demo's device descriptor revision numbers to ensure that any descriptor changes are re-fetched on machines which have enumerated previous versions.
Dean Camera [Wed, 29 Sep 2010 13:56:52 +0000 (13:56 +0000)]
Changed default value for the reset polarity parameter in the AVRISP-MKII project so that it defaults to active low drive.
Fixed incorrect USB_DeviceState value when unconfiguring the device without an address set.
Dean Camera [Tue, 28 Sep 2010 14:59:16 +0000 (14:59 +0000)]
Fix up incorrect version numbers in demo/project descriptors.
Add class name prefixes to missed constants in the class drivers to give all class driver elements a consistent namespace.
Dean Camera [Tue, 28 Sep 2010 14:30:26 +0000 (14:30 +0000)]
Added board hardware driver support for the Arduino Uno development board.
Fixed incorrect LEDs_ChangeLEDs() function in the Benito board LED driver.
Dean Camera [Tue, 28 Sep 2010 13:27:19 +0000 (13:27 +0000)]
Added CDC functional descriptor structs to the Low Level CDC demos and CDC class bootloader, to improve the readability of the descriptors.
Fixed BootloaderCDC project failing on some operating systems due to removed Line Encoding options (thanks to Alexey Belyaev).
Dean Camera [Tue, 28 Sep 2010 12:14:06 +0000 (12:14 +0000)]
Move out many of the common class driver constants into grouped enums, to make them more managable.
Add new CDC descriptor structs to the CDC class driver, so that the CDC demos can use human readable field names.
Rename prefix for Still Image Host class driver functions from "SImage_" to "SI_" to remain consistent with the rest of the driver.
Dean Camera [Fri, 24 Sep 2010 06:59:28 +0000 (06:59 +0000)]
Remove dfu-programmer program switches, to ensure maximum compatibility with all dfu-programmer versions.
Dean Camera [Fri, 24 Sep 2010 06:45:11 +0000 (06:45 +0000)]
Added the --suppress-bootloader-mem option to the makefile dfu target, to ensure that writes to the bootloader section of the AVR's flash memory are ignored (thanks to Axel Rohde).
Fixed incorrect command name for EEPROM memory programming in the makefile dfu-ee target.
Makefile whitespace fixes.
Dean Camera [Fri, 24 Sep 2010 06:34:43 +0000 (06:34 +0000)]
Fixed endpoint selection within the CALLBACK_HID_Device_CreateHIDReport() callback function causing broken GET REPORT requests.
Minor whitespace fixes.
Dean Camera [Wed, 22 Sep 2010 04:20:45 +0000 (04:20 +0000)]
Reverted modifications to USBInterrupt.h that were intefering with correct host mode operation.
Fixed SUSPI interrupt not being cleared during device mode enumeration, causing accidental mis-fires on re-enumeration.
Fixed JTAG_DEBUG_POINT() and JTAG_DEBUG_BREAK() macros not compiling under pure C99 standards mode.
Dean Camera [Tue, 21 Sep 2010 14:06:39 +0000 (14:06 +0000)]
Oops - need to call USB_Attach() when reinitializing into USB Host mode, or no devices will be detected.
Dean Camera [Tue, 21 Sep 2010 10:48:38 +0000 (10:48 +0000)]
Fixed USB_Host_ClearPipeStall() incorrectly attempting to determine the endpoint's direction from the currently selected pipe.
Dean Camera [Sun, 19 Sep 2010 08:42:30 +0000 (08:42 +0000)]
Rename internal suspend and wake up USB interrupt macros so that they follow the same naming scheme as the other USB ISR macros.
Dean Camera [Sun, 19 Sep 2010 06:30:14 +0000 (06:30 +0000)]
Make device mode configure the control endpoint even before the bus has been reset, so that the device will enumerate correctly on hosts that do not reset the device before initial use.
Dean Camera [Sun, 19 Sep 2010 06:09:25 +0000 (06:09 +0000)]
More simplifications to USBController.c, fix errors and warnings when compiled for the series 2 USB AVRs.
Dean Camera [Sun, 19 Sep 2010 06:00:45 +0000 (06:00 +0000)]
Fix warning when not compiled for UID auto-selection mode.
Dean Camera [Sun, 19 Sep 2010 05:58:27 +0000 (05:58 +0000)]
Clean up USBController.c/.h to more clearly seperate out host and device setup and reset paths.
Make USBInterrupt.c process all pending USB host mode interrupts before resetting the bus, so that no interrupts are lost when in UID auto-selection mode.
Dean Camera [Sun, 19 Sep 2010 05:46:17 +0000 (05:46 +0000)]
Ensure device address latch bit is not set at the same time as the new address, as per datasheet.
Minor documentation fixes.
Fix broken USB host mode due to the USB frame counter not being updated during the early enumeration steps, causing USB_Host_DelayMS() to spinloop forever.
Dean Camera [Wed, 15 Sep 2010 13:11:28 +0000 (13:11 +0000)]
Removed the EVENT_USB_InitFailure() event, as not specifying a USB mode to USB_Init() now defaults the controller into UID selection mode.
Dean Camera [Wed, 15 Sep 2010 10:47:22 +0000 (10:47 +0000)]
Fix incorrect documentation on the Get Descriptor standard request.
Dean Camera [Wed, 15 Sep 2010 03:00:29 +0000 (03:00 +0000)]
Make project makefiles correctly clean intermeditary build files from assembly and C++ sources (thanks to Daniel Czigany).
Dean Camera [Wed, 15 Sep 2010 00:30:40 +0000 (00:30 +0000)]
Minor documentation corrections.
Dean Camera [Tue, 14 Sep 2010 22:04:38 +0000 (22:04 +0000)]
Fix board name redefinition in BoardTypes.h (thanks to Daniel Czigany).
Dean Camera [Tue, 14 Sep 2010 11:19:44 +0000 (11:19 +0000)]
Fixed incorrect signature reported in the CDC class bootloader for the ATMEGA32U2.
Dean Camera [Tue, 14 Sep 2010 11:11:54 +0000 (11:11 +0000)]
Added board hardware driver support for the BUI development board.
Dean Camera [Tue, 14 Sep 2010 10:31:27 +0000 (10:31 +0000)]
Added board hardware driver support for the UDIP development board.
Dean Camera [Mon, 13 Sep 2010 11:39:41 +0000 (11:39 +0000)]
Fixed SET FEATURE and CLEAR FEATURE control requests directed at an unconfigured endpoint causing request timeouts.
Dean Camera [Mon, 13 Sep 2010 10:07:45 +0000 (10:07 +0000)]
Remove incomplete MIDIToneGenerator project.
Dean Camera [Sun, 12 Sep 2010 12:37:16 +0000 (12:37 +0000)]
Add the "REQ_" prefix to the DFU class bootloader class-specific request constants.
Dean Camera [Sun, 12 Sep 2010 12:20:36 +0000 (12:20 +0000)]
Minor documentation phrasing changes.
Dean Camera [Sat, 11 Sep 2010 04:09:48 +0000 (04:09 +0000)]
Added PRNT_Host_SendByte() and PRNT_Host_Flush() functions to the Host mode Printer Class driver.
Modified PRNT_Host_USBTask() to flush the output pipe on each call.
Dean Camera [Sat, 11 Sep 2010 03:57:43 +0000 (03:57 +0000)]
Added new project makefile template to the library and moved board driver stub files into in a new CodeTemplates directory.
Dean Camera [Thu, 9 Sep 2010 13:39:52 +0000 (13:39 +0000)]
Fix typos in the project overview text files.
Dean Camera [Thu, 9 Sep 2010 13:33:00 +0000 (13:33 +0000)]
Whitespace corrections.
Dean Camera [Thu, 9 Sep 2010 13:05:57 +0000 (13:05 +0000)]
Added class specific descriptor type defines with standard USB-IF element naming.
Dean Camera [Thu, 9 Sep 2010 09:57:03 +0000 (09:57 +0000)]
Added LEDs_ToggleLEDs() function to several board LED drivers which were missing it (thanks to Andrei Krainev).
Simplify some of the LED driver functions to produce more compact code.
Dean Camera [Tue, 7 Sep 2010 03:38:11 +0000 (03:38 +0000)]
Added new PRNT_Host_BytesReceived() and PRNT_Host_ReceiveByte() functions to the Print Host Class driver.
Dean Camera [Tue, 7 Sep 2010 03:07:40 +0000 (03:07 +0000)]
Must save and restore the endpoint/pipe interrupt enable flags during reconfiguration of all endpoints/pipes in the Endpoint_ConfigureEndpoint() and Pipe_ConfigurePipe() routines.
Dean Camera [Sun, 5 Sep 2010 08:24:56 +0000 (08:24 +0000)]
Fix bug in Pipe_ConfigurePipe() breaking already configured pipes that was accidentally clearing the pipe's IN mode.
Dean Camera [Sun, 5 Sep 2010 07:11:53 +0000 (07:11 +0000)]
Added new USB_Device_GetFrameNumber() and USB_Host_GetFrameNumber() functions to retrieve the current USB frame number.
Added new USB_Host_EnableSOFEvents(), USB_Host_DisableSOFEvents() and EVENT_USB_Host_StartOfFrame() for the user application handling of USB Start of Frame events while in USB Host mode.
Changed over all demos, drivers and internal functions to use the current frame number over the Start of Frame flag where possible to free up the Start of Frame flag for interrupt use in the user application.
Dean Camera [Sat, 4 Sep 2010 10:17:09 +0000 (10:17 +0000)]
Reduced HOST_DEVICE_SETTLE_DELAY_MS to 1000ms down from 1500ms to improve device compatibility while in USB Host mode, as some devices will drop off the USB bus if no connection is made within a timeout period.
Dean Camera [Sat, 4 Sep 2010 09:41:08 +0000 (09:41 +0000)]
Added board hardware driver support for the USBFOO development board.
Dean Camera [Fri, 3 Sep 2010 09:57:31 +0000 (09:57 +0000)]
Added board hardware driver support for the Olimex AVR-USB-162 development board (thanks to Steve Fawcett).
Dean Camera [Tue, 31 Aug 2010 12:33:21 +0000 (12:33 +0000)]
Clarify in the project documentation files what the each of the different USB AVR device "series" comprises of.
Dean Camera [Tue, 31 Aug 2010 07:32:48 +0000 (07:32 +0000)]
Fix incorrect ADC driver documentation for the parameters of ADC_Init(), fix incorrect call to ADC_Init() in the TemperatureDatalogger project.
Dean Camera [Sun, 29 Aug 2010 14:07:31 +0000 (14:07 +0000)]
Fix up documentation - remove obsolete Scheduler Overview page, roll documentation into the documentation for the (deprecated) Simple Scheduler module.
Dean Camera [Sun, 29 Aug 2010 13:21:14 +0000 (13:21 +0000)]
Remove remaining void* descriptor casts in the projects and demos that were not removed when the GetDescriptor callback function's signature was altered.
Dean Camera [Sun, 29 Aug 2010 07:49:36 +0000 (07:49 +0000)]
Add better description of the Ultra-Lightweight Ring Buffer header files.
Dean Camera [Tue, 24 Aug 2010 13:57:55 +0000 (13:57 +0000)]
Better documentation for the Endpoint_ConfigureEndpoint() and Pipe_ConfigurePipe() functions.
Dean Camera [Tue, 24 Aug 2010 13:16:16 +0000 (13:16 +0000)]
Fixed LowLevel PrinterHost demo not sending control requests to the attached printer with the correct printer interface wIndex value.
Dean Camera [Tue, 24 Aug 2010 13:02:38 +0000 (13:02 +0000)]
Changed the signature of the CALLBACK_USB_GetDescriptor() callback function so that the descriptor pointer is const, to remove the need for extra casting inside the callback (thanks to Jonathan Kollasch).
Dean Camera [Tue, 24 Aug 2010 11:47:53 +0000 (11:47 +0000)]
Fix Doxygen typos in Device.h.
Dean Camera [Sun, 22 Aug 2010 13:54:51 +0000 (13:54 +0000)]
Optimise Endpoint_ConfigureEndpoint_Prv() function to produce smaller code when CONTROL_ONLY_DEVICE compile time token is defined.
Dean Camera [Sun, 22 Aug 2010 13:31:27 +0000 (13:31 +0000)]
Split out endpoint and pipe stream functions into new EndpointStream.c/.h and PipeStream.c/.h files.
Dean Camera [Sun, 22 Aug 2010 03:26:20 +0000 (03:26 +0000)]
Changed all Device mode LowLevel demos and Device Class drivers so that the control request is acknowledged and any data transferred as quickly as possible without any processing inbetween sections, so that long callbacks or event handlers will not break communications with the host by exceeding the maximum control request stage timeout period.
Dean Camera [Sun, 22 Aug 2010 02:45:20 +0000 (02:45 +0000)]
Moved calls to Device mode Class Driver events to after the request has been acknowledged, so that long event handlers do do skew the timing of the control requests.
Fixed USBtoSerial and Benito project SetLineEncoding calls failing if the USART is busy, due to the RX ISR delaying the control request handler.
Dean Camera [Sun, 22 Aug 2010 01:42:09 +0000 (01:42 +0000)]
Added compile time error to the AVRISP-MKII project when built for the U4 chips, as the default VTARGET detection ADC channel does not exist on these chips (thanks to Marco).
Dean Camera [Sat, 21 Aug 2010 11:38:39 +0000 (11:38 +0000)]
Clarify in the documentation that the Audio demos and driver is for the Audio 1.0 specification, not the newer (and more advanced/less supported) 2.0 specification.
Dean Camera [Sat, 21 Aug 2010 08:21:17 +0000 (08:21 +0000)]
Remove unneccesary call to USB_Device_EnableSOFEvents() in the MassStorage and MIDI Device Class demos.
Dean Camera [Fri, 20 Aug 2010 12:13:19 +0000 (12:13 +0000)]
Fixed critical pipe/endpoint memory allocation issue where the bank memory address space could be silently overlapped in the USB controller if the endpoints or pipes were allocated in anything other than ascending order (thanks to Martin Degelsegger).
Dean Camera [Fri, 20 Aug 2010 11:03:25 +0000 (11:03 +0000)]
Added new SCSI_ASENSE_NOT_READY_TO_READY_CHANGE constant to the Mass Storage class driver, to indicate when a previously not ready removable medium has now become ready for the host's use (thanks to Martin Degelsegger)
Dean Camera [Wed, 18 Aug 2010 10:33:21 +0000 (10:33 +0000)]
Fixed MassStorage based demos and projects resetting the SCSI sense values before the command is executed, leading to missed SCSI sense values when the host retrieves the sense key (thanks to Martin Degelsegger).
Added missing DataflashManager_CheckDataflashOperation() function to the MassStorageKeyboard demo, removed redundant SCSI_Codes.h file as these values are part of the MassStorage Class Driver.
Dean Camera [Tue, 10 Aug 2010 12:13:07 +0000 (12:13 +0000)]
Fixed USB_GetHIDReportItemInfo() function modifying the given report item's data when the report item does not exist within the supplied report of a multiple report HID device.
Dean Camera [Mon, 9 Aug 2010 12:04:52 +0000 (12:04 +0000)]
Tighten up the code in the delta movement detection code in the MouseHostWithParser and JoystickHostWithParser demos. Make the ClassDriver JoystickHostWithParser demo use the HID_ALIGN_DATA() macro instead of manual shifting and casting.
Dean Camera [Mon, 9 Aug 2010 10:20:10 +0000 (10:20 +0000)]
Removed complicated logic for the Endpoint_ConfigureEndpoint() function to use inlined or function called versions depending of if the given bank size is a compile time constant, as the compiler does a better job of optimizing with basic code.
Changed over all device demos to use a clearer algorithm for the configuring of the application's endpoints.
Dean Camera [Mon, 9 Aug 2010 07:21:53 +0000 (07:21 +0000)]
Add notification endpoint to the incomplete TMC demo.
Dean Camera [Mon, 9 Aug 2010 01:55:02 +0000 (01:55 +0000)]
Commit for the 100807 release.
Dean Camera [Sun, 8 Aug 2010 08:30:42 +0000 (08:30 +0000)]
Fix invocations of avr-size in all makefiles broken on unpatched *nix systems, due to the recent update to the latest WinAVR makefile template.
Dean Camera [Thu, 5 Aug 2010 09:31:51 +0000 (09:31 +0000)]
Fixed software application start command broken in the DFU class bootloader when dfu-programmer is used due to application start address corruption.
Dean Camera [Tue, 3 Aug 2010 11:13:06 +0000 (11:13 +0000)]
Ensure all demos now compile in C99 standards mode, and not GNU99 (C99 + GNU extensions).
Dean Camera [Mon, 2 Aug 2010 08:53:23 +0000 (08:53 +0000)]
Hide the PROGMEM attribute from Doxygen, as it appears to confuse the parser in some situations.
Dean Camera [Sun, 1 Aug 2010 14:03:13 +0000 (14:03 +0000)]
Fix XPLAINBridge project discarding characters from the USB interface due to a double read from the endpoint.
Make XPLAINBridge and USBtoSerial projects more reliable by forcing a flush if the UART-to-USB buffer becomes nearly full.
Reduce locking in the LightweightRingBuffer.h header files by only locking on the update of the buffer count, and require insertions and removals from each buffer to occur in only one execution thread.
Fix CDC_*_ReceiveByte() returning 0 when the interface is not configured, instead of the new -1 error value.
Fix CDC_Host_ReceiveByte() not re-freezing the pipe if no packet has been received.
Remove redundant Pipe token set commands in the CDC and RNDIS host class drivers.
Dean Camera [Sun, 1 Aug 2010 06:53:08 +0000 (06:53 +0000)]
Invert the logic for the VBUS power light in the AVRISP-MKII project for the USBTINY-MKII board target.
Dean Camera [Sat, 31 Jul 2010 08:03:23 +0000 (08:03 +0000)]
Re-add deleted linker options to the Bootloader makefiles, which was preventing the compiled application from being shifted into the bootloader section address space.
Dean Camera [Sat, 31 Jul 2010 06:55:47 +0000 (06:55 +0000)]
Fixed Serial peripheral driver not turning off the USART before reconfiguring it, which would cause incorrect operation to occur (thanks to Bob Paddock).
Dean Camera [Fri, 30 Jul 2010 10:58:16 +0000 (10:58 +0000)]
Oops - fix mixed "initialize" and "initialise" - opt for American spelling due to its wide use in technical standards.
Dean Camera [Fri, 30 Jul 2010 09:48:35 +0000 (09:48 +0000)]
More spell checking of all source files -- correct missed errors, switch to EN-GB spelling dictionary.
Dean Camera [Fri, 30 Jul 2010 08:29:53 +0000 (08:29 +0000)]
Spell check more of the third party libraries used by LUFA.
Dean Camera [Fri, 30 Jul 2010 05:13:05 +0000 (05:13 +0000)]
Add the formula used to obtain the bootloader start address to the Bootloader makefiles to help users compute the correct address for each device based on the bootloader section size.
Dean Camera [Fri, 30 Jul 2010 04:20:41 +0000 (04:20 +0000)]
Fix typo in DualVirtualSerial.c due to the changed CDC Device APIs that was preventing the demo from being compiled.
Dean Camera [Fri, 30 Jul 2010 03:52:11 +0000 (03:52 +0000)]
Altered the CDC Deivice and Host Class drivers' receive byte routines, so that no data is indicated by a negative return value.
Added auto flushing of OUT data to the CDC Host Class driver's USBTask function to automatically flush the send pipe buffer.
Dean Camera [Fri, 30 Jul 2010 01:11:04 +0000 (01:11 +0000)]
Oops - need to turn off USART via control register B before reconfiguring, fix ordering of USART control register modifications in the Benito and USBtoSerial projects.
Dean Camera [Thu, 29 Jul 2010 16:20:45 +0000 (16:20 +0000)]
Spell check all source files once again to find any typos.
Dean Camera [Thu, 29 Jul 2010 15:14:56 +0000 (15:14 +0000)]
Fixed Benito and USBtoSerial projects not turning off the USART before reconfiguring it, which could cause incorrect operation to occur (thanks to Bob Paddock).
Dean Camera [Thu, 29 Jul 2010 13:04:53 +0000 (13:04 +0000)]
Add special support to the AVRISP-MKII for the new model USBTINY-MKII's additional LED to indicate target power source.
Add support to the USBTINY-MKII's additional LED in the board's LED driver header.
Changed LED indicator masks for the AVRISP-MKII project, so that there are defined roles for each LED.
Dean Camera [Thu, 29 Jul 2010 07:20:33 +0000 (07:20 +0000)]
Remove obsolete macros and preprocessor checks from the AVRISP-MKII project's V2Protocol command handler header file.
Dean Camera [Thu, 29 Jul 2010 07:16:20 +0000 (07:16 +0000)]
Oops - remove duplicated SPI driver init mask.
Dean Camera [Thu, 29 Jul 2010 07:09:57 +0000 (07:09 +0000)]
Added support to the AVRISP-MKII project for ISP speeds slower than 125KHz via a new software SPI driver.
Added new SPI_ORDER_* data order masks to the SPI peripheral driver.