Dean Camera
137ce280c1
Updated all host mode demos and projects to use the EVENT_USB_Host_DeviceEnumerationComplete() event callback for device configuration instead of manual host state machine manipulations in the main application task.
...
Added new USB_Host_ConfigurationNumber global variable to indicate the selected configuration in an attached device.
Renamed global state variables that are specific to a certain USB mode to clearly indicate which mode the variable relates to, by changing the USB_* prefix to USB_Device_* or USB_Host_*.
Removed the HOST_STATE_WaitForDeviceRemoval and HOST_STATE_Suspended host state machine states, as these are no longer required.
Altered the USB_Host_SetDeviceConfiguration() function to update the new USB_Host_ConfigurationNumber global as required.
Moved out the Host mode standard request convenience/helper functions from the architecture specific Host driver files to the architecture agnostic HostStandardReq.c driver file.
2011-07-08 07:25:56 +00:00
Dean Camera
4e601207a7
Tighten up the implementations of the USB_Device_SetDeviceAddress(), USB_Controller_Reset() and USB_PLL_On() functions for the AVR8 devices.
...
Minor corrections to the documentation of the USB_Control_Request_t enum.
2011-07-06 02:50:08 +00:00
Dean Camera
d784baaa3a
Fixed compile error when FIXED_CONTROL_ENDPOINT_SIZE compile time option was disabled, and a USE_*_DESCRIPTORS compile time option was not enabled on the AVR8s.
...
Add C++ compatibility to some header files currently missing extern "C" linkage.
2011-06-20 04:32:34 +00:00
Dean Camera
21a012a018
Add macro guards to the templated C files to prevent compile errors if they are mistakenly compiled as regular source files in a LUFA project.
2011-06-14 12:54:46 +00:00
Dean Camera
e5e34f91fa
Fix compile errors when both Host and Device modes are enabled.
2011-06-09 04:32:52 +00:00
Dean Camera
0bf5064aec
Pipe_BoundEndpointNumber() has been renamed to Pipe_GetBoundEndpointAddress(), and now returns the correct endpoint direction as part of the endpoint address.
...
Add Audio_GetSetEndpointProperty() function to the Host mode Audio class driver.
2011-06-08 02:45:32 +00:00
Dean Camera
7dffa15c16
Massive corrections to the project documentation and code comments, thanks to Russian translation services provided by Andrey from Microsin.ru.
2011-06-05 13:55:56 +00:00
Dean Camera
f01a05415c
Spell check library source code files.
2011-06-01 14:33:40 +00:00
Dean Camera
2a26efc691
Altered the definition of the USB_Audio_Descriptor_Format_t descriptor so that the user is now responsible for supplying the supported audio sampling rates, to allow for multiple audio interfaces with different numbers of supported rates and/or continuous sample rates.
2011-05-30 11:07:57 +00:00
Dean Camera
cc9b190919
Add new USB_Host_SetInterfaceAltSetting() convenience function.
2011-05-27 07:33:58 +00:00
Dean Camera
1ea5dae8a8
Copy out the EndpointStream and PipeStream functions to each architecture, so that each architecture can optimise the stream functions according to the available hardware (such as DMA, where available).
2011-05-26 11:27:21 +00:00
Dean Camera
049e930963
Fixed possible invalid program execution when in host mode if corrupt descriptor lengths are supplied by the attached device.
...
Minor code cleanups to add const and reformat where missing, as well as abstract out the internal device signature start address into a macro, so that it can be altered to suit particular devices within a single architecture if needed.
Add missing documentation to the USB_Device_States_t enum.
2011-05-14 02:17:58 +00:00
Dean Camera
2b0c9532a3
Fix reversed descriptions for the AVR8 USB pad regulator enable/disable masks (thanks to Omar).
2011-04-20 06:04:49 +00:00
Dean Camera
995195a2b0
Add missing function attributes to the pipe/endpoint functions for all architectures.
...
Perform endianness correction in the HID report parser for big-endian platforms.
2011-04-12 03:03:56 +00:00
Dean Camera
c263ea837a
Move global interrupt enable/disable functions out to Common.h and document them.
2011-04-08 05:40:25 +00:00
Dean Camera
de9bd767dc
Correct UC3 global interrupt functions.
...
Replace all calls and references to _delay_ms() in the code with the architecture-agnostic Delay_MS() function.
Improve code generation for the Delay_MS() function on the AVR8 architecture when called with a constant input.
2011-04-08 05:05:05 +00:00
Dean Camera
70284d390f
Add in a new common Delay_MS() function, which provides a blocking delay for all architectures.
...
Remove use of avr-libc specific ATOMIC_BLOCK, replace with a new per-architecture set of inline functions to retrieve and manipulate the global interrupt enable bit for each architecture.
Add in documentation for the USB controller common interrupt routine which must be linked to the interrupt controller in the user application on the AVR32 UC3 architecture.
2011-04-08 04:49:20 +00:00
Dean Camera
96a2da1813
Oops - fix incorrect variable name in the updated Pipe_Write_8() function.
2011-04-04 15:25:30 +00:00
Dean Camera
899df7d331
Renamed all low level Endpoint_Read_*, Endpoint_Write_* and Endpoint_Discard_* functions to use the number of bits instead of a symbolic size (Byte, Word, DWord) so that the function names are applicable and correct across all architectures.
...
Renamed all low level Pipe_Read_*, Pipe_Write_* and Pipe_Discard_* functions to use the number of bits instead of a symbolic size (Byte, Word, DWord) so that the function names are applicable and correct across all architectures.
2011-04-04 12:52:30 +00:00
Dean Camera
aba7932a5c
F_CLOCK changed to F_USB to be more descriptive, and applicable on future architecture ports.
2011-03-21 10:20:42 +00:00
Dean Camera
134e018b21
Fixed Remote Wakeup broken on the AVRs due to the mechanism only operating when the SUSPI bit is set (thanks to Holger Steinhaus).
...
Remove redundant setting of UIDE in the AVR8 and AVR32 USB controller drivers.
2011-03-15 08:07:29 +00:00
Dean Camera
b35f93a372
Implemented on-demand PLL clock generation for the U4, U6 and U7 series USB AVRs when automatic PLL mode is specified.
2011-03-15 06:39:34 +00:00
Dean Camera
0111fb515d
Oops - fix internal serial number extraction routine for the AVR8 architecture.
2011-03-14 00:24:14 +00:00
Dean Camera
02dfd7dc3d
Simplify the internal serial extraction routines for each architecture.
2011-03-13 23:32:32 +00:00
Dean Camera
a7eca42996
Add experimental support for the AVR32 UC3A4 microcontrollers.
...
Add support for the inbuilt unique serial numbers in the UC3A3 and UC3A4 models.
2011-03-13 22:42:08 +00:00
Dean Camera
1e3d892b6a
Add software FIFOs to the UC3B pipe control interfaces, to match the endpoint control interfaces. Fix incorrect endianness for the Endpoint/Pipe read and write routines.
2011-03-05 12:13:35 +00:00
Dean Camera
b763c3f33e
Porting updates for the UC3B architecture - get UC3B partially enumerating using a modified mouse demo on the EVK1101. Implement a software FIFO for the endpoint banks; datasheet hints that this can be done through hardware as on the AVR8 architecture, but the correct method to do this not discovered yet.
2011-03-05 11:34:04 +00:00
Dean Camera
c1c94fe5a0
Fixed Still Image Host class driver exiting the descriptor search routine prematurely if the data pipes (but not event pipe) is found.
...
Fixed missing call to Pipe_SetInfiniteINRequests() in the Pipe_ConfigurePipe() routine.
2011-03-03 19:32:27 +00:00
Dean Camera
8c6f26e19d
Add in USB_INT_RegisterHandlers() internal function to register the interrupt handler routines used by LUFA. Add dummy loads after clearing the interrupt lines according to the datasheet.
...
Add in temporary global interrupts enable/disable macros.
2011-02-28 22:30:40 +00:00
Dean Camera
c79f6e2586
Oops - ensure that only the relevant/available interrupts are defined and used on each architecture.
...
Make all USB driver headers include USBMode.h first, to ensure that the relevant USB mode macros are defined.
2011-02-27 20:38:47 +00:00
Dean Camera
04526d284d
Changed over the AVR8 USB controller interrupt management macros to be inlined functions instead, for better compile-time validity checking and to keep the per-architecture source files as uniform as possible.
2011-02-27 20:00:15 +00:00
Dean Camera
92b3553a07
General cleanup and more port work to the AVR32 UC3B.
2011-02-27 18:25:29 +00:00
Dean Camera
381dd0d490
Move out common architecture-independent core definitions into the appropriate core dispatch header files.
2011-02-27 14:39:49 +00:00
Dean Camera
f3f481183a
More AVR32 UC3B architecture ports - USB device mode applications can now be sucessfully compiled, although they will be currently non-functional.
2011-02-27 14:04:29 +00:00
Dean Camera
cf2411435c
Removed Pipe_ClearErrorFlags(), pipe error flags are now automatically cleared when Pipe_ClearError() is called.
...
More UC3B architecture porting.
2011-02-26 20:22:33 +00:00
Dean Camera
6f01b6afd5
More UC3B architecture port updates.
2011-02-26 15:54:11 +00:00
Dean Camera
b6a3c78fa3
Rename architecture specific driver files, to make them appear with uniquely identifying filenames in the documentation.
2011-02-20 18:21:04 +00:00
Dean Camera
cad5e9ffca
Added start of a port of the core USB driver code to the AVR32 UC3B architecture.
2011-02-20 17:53:17 +00:00
Dean Camera
28a1ee29a1
More Doxygen updates for multiple architecture support.
2011-02-20 14:07:20 +00:00
Dean Camera
5e73190582
Start update of documentation to support possible multiple architectures in the future - alter \file documentation to automatically copy in the module documentation where possible.
2011-02-20 13:08:29 +00:00
Dean Camera
1daa5e16f9
Initial restructuring of the core USB driver module to support multiple architectures in the future.
2011-02-19 22:59:27 +00:00