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.
Dean Camera [Wed, 28 Jul 2010 09:17:22 +0000 (09:17 +0000)]
Add TMC header read and write functions, so that TMC data can now be exchanged in both directions.
Minor update to the LowLevel MassStorage device demo, so that the ReadInCommandBlock() performs the data OUT endpoint selection and packet arrival test.
Dean Camera [Tue, 27 Jul 2010 13:49:16 +0000 (13:49 +0000)]
Use static inline intermediatary functions in Endpoint.h to handle the masking for the private endpoint configuration routine, instead of performing the masking in the Endpoint_ConfigureEndpoint() macro.
Dean Camera [Tue, 27 Jul 2010 11:26:47 +0000 (11:26 +0000)]
Move over message ID specific header data to unions inside the standard TMC header structure, so that all header data is read in one chunk in the incomplete TMC demo.
Dean Camera [Mon, 26 Jul 2010 07:28:40 +0000 (07:28 +0000)]
Rename reserved members of all structs so that they are uniformly named across all demos/projects/bootloaders.
Added start of the Incomplete TMC demo's command parser code.
Dean Camera [Mon, 26 Jul 2010 05:02:55 +0000 (05:02 +0000)]
Add comments to the currently completed portions of the incomplete Test and Measurement Class demo.
Dean Camera [Mon, 26 Jul 2010 04:57:50 +0000 (04:57 +0000)]
Add missing INTERRUPT_CONTROL_ENDPOINT compile time option to the Mass Storage device projects/demos and incomplete Test and Measurement Class demo, which was accidentally removed during the makefile updates.
Alter Test and Measurement Class demo's request handlers to accept, process and correctly return the fields indicated in the specification.
Dean Camera [Mon, 26 Jul 2010 04:26:47 +0000 (04:26 +0000)]
Add stream callback flags and class specific control request handler code to the incomplete Test and Measurement Class device demo.
Change over the keyboard demo's manufacturer name back to the primary author of the demo.
Dean Camera [Sun, 25 Jul 2010 11:59:55 +0000 (11:59 +0000)]
Added periodic flush timer to the Benito project. Alter the serial transmission code so that sent bytes do not block the remainder of the main program code from running.
Dean Camera [Fri, 23 Jul 2010 09:12:26 +0000 (09:12 +0000)]
Add TMC device capabilities to the incomplete TMC demo.
Dean Camera [Fri, 23 Jul 2010 03:25:19 +0000 (03:25 +0000)]
Update size of compiled Mouse demo in documentation, fix indenting in Device.h.
Dean Camera [Thu, 22 Jul 2010 15:38:12 +0000 (15:38 +0000)]
Convert over internal pseudo-function macros to true inline functions for added type-safety and compile-checking.
Dean Camera [Thu, 22 Jul 2010 12:34:32 +0000 (12:34 +0000)]
Future proof the XPROG protocol of the AVRISP-MKII project, so that non PDI and TPI requests return failure.
Dean Camera [Thu, 22 Jul 2010 07:19:41 +0000 (07:19 +0000)]
Added start of a low level device Test and Measurement class demo (thanks to Peter Lawrence).
Dean Camera [Thu, 22 Jul 2010 05:00:39 +0000 (05:00 +0000)]
Fix up minor whitespace formatting errors.
Dean Camera [Wed, 21 Jul 2010 16:19:32 +0000 (16:19 +0000)]
Update all demos, projects and bootloaders to indent all function parameters, one per line, for better readability.
Add missing const qualifiers to the demos.
Dean Camera [Wed, 21 Jul 2010 14:17:18 +0000 (14:17 +0000)]
Replace internal Pipe_BytesToEPSizeMask() routine with a new version which results in smaller code.
Dean Camera [Wed, 21 Jul 2010 14:00:51 +0000 (14:00 +0000)]
Add missing const qualifiers to class drivers.
Indent core library function parameters so that there is only one parameter per line, to increase readability.
Dean Camera [Wed, 21 Jul 2010 12:20:34 +0000 (12:20 +0000)]
Move and rename DevChaper9.c/.h and HostChapter9.c/.h to the HighLevel directory, new named DeviceStandardReq.c/.h and HostStandardReq.c/.h.
Rename LowLevel.c/.h to USBController.c/.h.
Remove dependancies on the complete <avr/io.h> header in the HighLevel USB driver directory, to ensure less work is required in later (possible) ports.
Dean Camera [Wed, 21 Jul 2010 05:39:29 +0000 (05:39 +0000)]
Add missing const qualifier to the parameters of the USB_GetNextDescriptorComp() function.
Reduce spacing of the structure elements in StdDescriptors.h to make the code more readable.
Dean Camera [Tue, 20 Jul 2010 06:59:13 +0000 (06:59 +0000)]
Fixed MIDI_Device_SendEventPacket() not correctly waiting for the endpoint to become ready (thanks to Robin Green).
Dean Camera [Mon, 19 Jul 2010 14:00:44 +0000 (14:00 +0000)]
Update makefiles to use the latest WinAVR/Atmel toolchain makefile template.
Add new module source variables to the library core makefile, so that module sources can be added to a project's makefile on a per-module rather than per-file basis.
Dean Camera [Sun, 18 Jul 2010 07:31:57 +0000 (07:31 +0000)]
Change over all makefiles to use C99 standards mode, rather than C99 + GNU Extensions.
Dean Camera [Thu, 15 Jul 2010 17:13:33 +0000 (17:13 +0000)]
Disable strict aliasing explicitly in the project makefiles, as this is apparently enabled by default in newer AVR-GCC builds, and aliasing is used heavily for type-punning through the LUFA and third party library's codebase.
Dean Camera [Thu, 15 Jul 2010 16:45:26 +0000 (16:45 +0000)]
Removed the automated checking of event names in the demo, project and bootloader makefiles due to inconsistancies between the behaviour of the command line tools used to perform the check on each platform.
Removed the internal endpoint and pipe memory allocation macros, as this is already performed directly in the code. Simplify the endpoint and pipe reset procedure.
Dean Camera [Thu, 15 Jul 2010 11:01:31 +0000 (11:01 +0000)]
Added ability to set the serial baud rate via the user's terminal in the XPLAINBridge project.
Dean Camera [Thu, 15 Jul 2010 10:34:29 +0000 (10:34 +0000)]
Fix pointer aliasing warning in the Mass Storage demos.
Dean Camera [Thu, 15 Jul 2010 04:45:31 +0000 (04:45 +0000)]
Fixed possible buffer overrun in the XPLAINBridge project when in serial bridge mode.
Dean Camera [Thu, 15 Jul 2010 01:42:36 +0000 (01:42 +0000)]
Fixed HID device class driver still using PrevReportINBuffer for GetReport control requests even when it has been set to NULL by the user application (thanks to Axel Rohde).
Dean Camera [Tue, 13 Jul 2010 14:17:18 +0000 (14:17 +0000)]
Change AVRISP-MKII and XPLAINBridge descriptors to indicate that the device is bus-powered only. Add compile time options to reduce the compiled size of the firmware.
Dean Camera [Tue, 13 Jul 2010 11:26:03 +0000 (11:26 +0000)]
Remove the timeout period extension code from the AVRISP project, as no single command should ever exceed the maximum timeout period. Extend timeout period to 1 second per command, so that an accidental timeout will never occur.
Dean Camera [Tue, 13 Jul 2010 10:01:13 +0000 (10:01 +0000)]
Added const attributes to some of the class driver function parameters that were missing it.
Dean Camera [Tue, 13 Jul 2010 05:38:51 +0000 (05:38 +0000)]
Add AVRStudio 4 project files to the ClassDriver Device mode demos.
Dean Camera [Tue, 13 Jul 2010 05:20:49 +0000 (05:20 +0000)]
Add AVRStudio 4 project files to the LowLevel Device mode demos.
Dean Camera [Tue, 13 Jul 2010 05:11:23 +0000 (05:11 +0000)]
Add AVRStudio 4 project files to the ClassDriver Host mode demos.
Dean Camera [Tue, 13 Jul 2010 05:01:18 +0000 (05:01 +0000)]
Add AVRStudio 4 project files to the LowLevel Host mode demos.
Dean Camera [Tue, 13 Jul 2010 04:43:38 +0000 (04:43 +0000)]
Add AVRStudio 4 project files for the library bootloaders.
Dean Camera [Tue, 13 Jul 2010 04:39:54 +0000 (04:39 +0000)]
Add remaining AVRStudio project files to the library projects.
Dean Camera [Tue, 13 Jul 2010 04:32:33 +0000 (04:32 +0000)]
Add first lot of AVRStudio project files for some of the library projects.
Dean Camera [Tue, 13 Jul 2010 04:16:23 +0000 (04:16 +0000)]
Rename the AVRISP main source files to AVRISP-MKII so that it matches the project name. Add AVRStudio project file for the AVRISP-MKII project.
Dean Camera [Mon, 12 Jul 2010 10:20:38 +0000 (10:20 +0000)]
Add missing eol-style properties to new source files.
Dean Camera [Mon, 12 Jul 2010 10:18:18 +0000 (10:18 +0000)]
Add missing clean_doxygen phony targets to the project makefiles.
Dean Camera [Mon, 12 Jul 2010 07:11:50 +0000 (07:11 +0000)]
Reduce prescaler of the flush timer in the USBtoSerial demo, so that buffer overruns will not occur regardless of hardware and baud rate settings.
Dean Camera [Mon, 12 Jul 2010 07:04:19 +0000 (07:04 +0000)]
Alter the ring buffer library headers to have both atomic and non-atomic insertion/removal routines. Modify the existing projects so that buffer operations performed in an ISR use the shorted non-atomic versions, as they are already performed in a blocking ISR.
Alter USBtoSerial demo so that it does not enter a blocking loop to send data from the USB to the USART, as this can cause dropped bytes in the reception code if large amounts of data are sent in both directions at the same time. Added a flush timer to the USBtoSerial code for the USART to USB interface, so that multiple bytes can be sent in the same USB packet.
Dean Camera [Mon, 12 Jul 2010 02:23:11 +0000 (02:23 +0000)]
Add glitch protection to the software UART in the XPLAINBridge project code, so that very short glitches on the RX line don't cause a frame reception to occur.
Dean Camera [Sun, 11 Jul 2010 14:14:08 +0000 (14:14 +0000)]
Major changes to the XPLAINBridge software UART code for performance and reliability. New code reduces the number of missed characters and misread characters.
Dean Camera [Sun, 11 Jul 2010 08:11:25 +0000 (08:11 +0000)]
Correct misspellings in the Bluetooth demo code.
Dean Camera [Sun, 11 Jul 2010 07:59:15 +0000 (07:59 +0000)]
Add more doxygen function documentation to the RFCOMM layer.
Dean Camera [Sun, 11 Jul 2010 07:38:18 +0000 (07:38 +0000)]
Oops - ACL layer Bluetooth_SendPacket() function should check and allow NULL channels, since that indicates a control channel request.
Fix up Doxgen documentation for the Bluetooth stack code.
Dean Camera [Sun, 11 Jul 2010 07:29:27 +0000 (07:29 +0000)]
Rename Bluetooth stack function parameters to clearly indicate what sort of Bluetooth channel (ACL, RFCOMM) is required for each parameter, to make the code easier to read.
Add a new RFCOMM_ChannelSignalsReceived() Bluetooth stack callback from the RFCOMM layer for when the remote device sends new terminal control signals.
Fix RFCOMM_SendData() not aborting correctly when the requested RFCOMM channel is not found.
Dean Camera [Fri, 9 Jul 2010 07:44:08 +0000 (07:44 +0000)]
Oops - fix errors in the MassStorageKeyboard SCSI driver file due to incorrect copy/paste.
Dean Camera [Fri, 9 Jul 2010 07:24:34 +0000 (07:24 +0000)]
Rewrote the implementation of the SwapEndian_16() and SwapEndian_32() functions so that they compile down in most instances to minimal loads and stores rather than complicated shifts.
Fixed SCSI.c implementations of all the demos/projects casting the block count to a 32-bit temporary before calling SwapEndian_16().
Dean Camera [Thu, 8 Jul 2010 08:48:52 +0000 (08:48 +0000)]
Add a new RFCOMM_ChannelOpened() callback event for when logical RFCOMM channels are opened in the BluetoothHost demo. Make the demo echo back sent characters to the remote device.
Dean Camera [Thu, 8 Jul 2010 08:05:14 +0000 (08:05 +0000)]
Add a new RFCOMM service callback for when new data has been received on a valid RFCOMM channel.
Dean Camera [Thu, 8 Jul 2010 07:44:07 +0000 (07:44 +0000)]
Move out Bluetooth stack callback functions to a seperate BluetoothEvents.c/.h set of files for clarity in the Incomplete BluetoothHost demo. Add a new stack callback for opened ACL channels, make the demo save the RFCOMM channel when opened so that it does not have to search for it on each iteration of the main program loop.