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
0c5afda7e8
Oops - fix misnamed function call in Pipe_Discard_Stream().
2011-04-04 15:41:26 +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
2efa79d3ec
Conditionally add available address spaces to the address space enum, for multiple address space architectures.
...
Update Doxygen configuration file for the latest Doxygen release.
Minor documentation updates.
2011-04-04 10:24:57 +00:00
Dean Camera
06d00bb99b
Ensure the library builds cleanly in device mode for architectures lacking multiple address spaces.
2011-03-27 22:17:26 +00:00
Dean Camera
fa5c8700bc
Fix corner case in the HID report descriptor Mouse/Joystick tempates at the 8/16 bit boundary.
2011-03-23 09:25:13 +00:00
Dean Camera
f595043584
Add in new architecture attribute defines to selectively remove the EEPROM and FLASH memory space functions on architectures which do not have seperate memory address spaces.
2011-03-21 11:10:02 +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
f6f4ac588c
Fix bugs in the new VirtualSerialMassStorage demo (thanks to Martin Degelsegger).
2011-03-16 22:54:31 +00:00
Dean Camera
fe62770a1e
Added new VirtualSerialMassStorage Device Class Driver demo.
2011-03-16 05:58:58 +00:00
Dean Camera
5eb1862d54
Remove redundant Doxygen guards from the internal preprocessor definitions.
2011-03-15 09:22:39 +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
ea361a0d30
Correct Endpoint/Pipe maximum constants for the AVR32 UC3 models.
2011-03-14 00:03:30 +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
81fd8d4004
Re-add accidentally deleted Host_UC3.c and Host_UC3.h files.
2011-03-13 22:02:07 +00:00
Dean Camera
944e0d2009
Rename UC3B driver files to UC3, as they are generic to all AVR32 UC3 models.
2011-03-13 21:53:19 +00:00
Dean Camera
6005a42150
Add experimental support for the UC3A0, UC3A1 and UC3A3 series AVR32 microcontrollers.
2011-03-13 21:25:05 +00:00
Dean Camera
13e2f71f15
Simplify AVR32 UC3B software FIFO, as it will only ever be accessed a byte at a time to prevent data alignment issues.
2011-03-11 07:03:34 +00:00
Dean Camera
c8a438d66c
Add structure padding to the appropriate descriptor structures to maintain correct alignments on larger architectures.
...
Fix EVK1101 swapped joystick Right/Down masks.
2011-03-11 06:47:39 +00:00
Dean Camera
e4b3e3fc65
Fix UC3B architecture compile errors and ensure the architecture can be compiled with no special makefile tokens defined.
2011-03-05 16:36:57 +00:00
Dean Camera
8b13f7f89a
Endpoint_ResetFIFO() renamed to Endpoint_ResetEndpoint(), to be consistent with the Pipe_ResetPipe() function name.
...
Fix undefined error in Pipe_UC3B.h.
Add missing migration notes.
2011-03-05 16:30:57 +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
29ba88cffd
Add code to start the USBB Generic Clock from the user-specified master clock source (OSCx or PLLx) in the AVR32 UC3B core USB driver.
2011-02-27 22:06:31 +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
4a3b70e727
Fix USB Host mode compile errors for the UC3B architecture.
2011-02-27 15:23:09 +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
86be7f9330
Fix incorrect Doxygen grouping in the incomplete AVR32 UC3B architecture port.
2011-02-20 18:27:09 +00:00
Dean Camera
3a00e41639
Make sure the peripheral driver .c files include the driver dispatch header, rather than the architecture specific header files.
2011-02-20 18:23:09 +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
f3ec62b5c6
More updates to remove architecture-specific comments from the documentation, alter USBMode.h preprocessor logic to support future architectures more easily.
2011-02-20 14:43:13 +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
Dean Camera
3d4d8e7f62
Add new ARCH option to the makefiles to (eventually) specify the target device architecture. Update non-usb peripheral drivers to reflect future multiple architecture support.
2011-02-19 18:37:22 +00:00
Dean Camera
100a197d0e
Reduced latency for executing the Start-Of-Frame events (if enabled in the user application).
2011-02-19 12:09:55 +00:00
Dean Camera
0019fbd129
Add more const-ness to the stream endpoint/pipe functions where possible.
2011-02-13 21:27:24 +00:00
Dean Camera
782614dbb5
Add static keyword to all project globals whose scope should be restricted to the same module as they are declared in.
...
Tighten up the HID class bootloader code slightly, document that it currently exceeds 2KB of bootloader space for all models other than the Series 2 USB AVRs.
2011-02-10 17:55:49 +00:00
Dean Camera
43b9d552bb
Renamed all driver termination *_ShutDown() functions to the more logical name *_Disable().
2011-01-30 23:12:06 +00:00
Dean Camera
43c4735305
Renamed the PRNT_Host_SendString(), CDC_Host_SendString() and CDC_Device_SendString() functions to *_SendData(), and added new versions of the *_SendString() routines that expect a null terminated string instead.
...
Added new Serial_SendData() function to the Serial driver.
2011-01-30 21:02:31 +00:00
Dean Camera
afd828c095
Removed SerialStream module, rolled functionality into the base USART Serial peripheral driver instead through the new Serial_CreateStream() and Serial_CreateBlockingStream() methods.
...
Renamed the Serial byte send/receive functions to remain consistent with the CDC driver's byte functions.
Altered the serial byte receive function to make it non-blocking.
2011-01-30 19:47:31 +00:00
Dean Camera
30f6d2bfd8
Oops - forgot to add in LOGICAL MINIMUM and LOGICAL MAXIMUM report items into the standard library Joystick HID report descriptor macro. Add in support for joystick resolution reporting via PHYSICAL_MINIMUM and PHYSICAL_MAXIMUM items.
2011-01-30 14:40:24 +00:00
Dean Camera
e6dc951630
Add new HID_DESCRIPTOR_VENDOR() macro, change over all projects and Device ClassDriver demos to use it.
...
Fix reversed byte ordering of multi-byte HID data.
Added support to the HID parser for extended USAGE items that contain the usage page as well as the usage index.
Removed the HID_IOF_NON_VOLATILE and HID_IOF_VOLATILE flags from HID INPUT items where the flag is invalid. Changed over HID OUTPUT items to use HID_IOF_NON_VOLATILE.
Change over MagStripe project to use HID_DESCRIPTOR_KEYBOARD() for its HID report. Change over MouseHostDevice demo to use HID_DESCRIPTOR_MOUSE() for its HID report.
2011-01-30 14:14:04 +00:00
Dean Camera
a852ea8e43
Added new KeyboardMouseMultiReport Device ClassDriver demo.
...
Fixed ReportID not being removed from the feature/out report data array in the HID class driver when Report IDs are used.
Added new MAX() and MIN() convenience macros.
2011-01-26 21:33:07 +00:00
Dean Camera
6c7ed7ecd6
Added new HID_DESCRIPTOR_MOUSE, HID_DESCRIPTOR_KEYBOARD and HID_DESCRIPTOR_JOYSTICK macros for easy automatic creation of basic USB HID device reports.
2011-01-23 20:02:51 +00:00
Dean Camera
ef44b8c036
Fixed incorrect definition of the HID_KEYBOARD_SC_RIGHT_ARROW constant in the HID class driver (thanks to Joby Taffey).
...
Add in newHID_KEYBOARD_SC_POWER keyboard scancode constant.
2011-01-17 23:11:13 +00:00
Dean Camera
efd57cfe51
Abuse the the C preprocessor so that the HID macros can automatically encode data into the array from the HID macros automagically, by specifying the bit-width of the data, and the data itself as a single integer value of that width.
2011-01-17 19:44:48 +00:00
Dean Camera
47fec03694
Fixed several functions in the Host mode Still Image Class driver returning an error code from the incorrect error code enum (thanks to Daniel Seibert).
2011-01-16 23:13:54 +00:00
Dean Camera
787869c2fd
Minor documentation corrections for the new HID report item constant defines.
2011-01-16 19:41:26 +00:00
Dean Camera
039a714ee4
New HID report item macros (with HID_RI_ prefix) to allow for easy creation and editing of HID report descriptors.
...
Changed over all project and demo HID report descriptors to use the new HID report item macros.
Moved the HIDParser.c source file to the LUFA/Drivers/USB/Class/Common/ directory from the LUFA/Drivers/USB/Class/Host/.
2011-01-16 19:34:28 +00:00
Dean Camera
32830a2b82
Added new ADC_GET_CHANNEL_MASK() convenience macro to the ADC driver.
2011-01-16 16:13:22 +00:00
Dean Camera
70d55f6e0c
Added new high level TWI packet read/write commands, altered behaviour of the TWI_StartTransmission() function.
...
Spell check source code files.
2011-01-13 22:56:49 +00:00
Dean Camera
154f934b22
Call USB_USBTask() in the Endpoint stream functions between packets if INTERRUPT_CONTROL_ENDPOINT is not set. Remove calls to USB_USBTask in the Mass Storage class driver stream read/write continuation checks, since this is now done inside the stream function.
2011-01-10 18:56:34 +00:00
Dean Camera
f555ad7ced
Altered all endpoint/pipe stream transfers so that the new BytesProcessed parameter now points to a location where the number of bytes in the transfer that have been completed can be stored (or NULL if entire transaction should be performed in one chunk).
...
Added new Endpoint_Null_Stream() and Pipe_Null_stream() functions.
Removed the NO_STREAM_CALLBACKS compile time option due to the new partial stream transfer feature replacing it.
Fixed errors in the incomplete Test and Measurement device demo preventing proper operation (thanks to Pavel Plotnikov).
2011-01-10 18:43:34 +00:00
Dean Camera
477a2047f4
Oops - fix type preventing compilation of demos using the class drivers.
2011-01-08 15:54:57 +00:00
Dean Camera
7dc3d3a68f
Minor documentation improvements.
2011-01-08 11:47:20 +00:00
Dean Camera
d126146887
The FAST_STREAM_TRANSFERS compile time option has been removed due to lack of use and low cost/benefit ratio.
...
Add GCC_FORCE_POINTER_ACCESS() macro use to the RingBuffer library header, to attempt to force GCC into producing more efficient code for manipulating the buffers.
2011-01-08 00:54:30 +00:00
Dean Camera
a49b5bfd8a
Update Doxygen documentation configuration file for the main project documentation to the latest version. Add missing data structure documentation briefs.
2011-01-03 20:13:06 +00:00
Dean Camera
1d433d4506
Update copyright year on all source files.
2011-01-01 13:00:56 +00:00
Dean Camera
b8fd4dd51c
Fixed incorrect byte ordering in the Audio_Device_WriteSample24 function (thanks to WZab).
2010-12-31 15:03:57 +00:00
Dean Camera
a8b66f318d
Documentation improvements - put driver example code into its own section, fix incorrect and missing section names.
2010-12-26 14:55:26 +00:00
Dean Camera
bfa622d27e
Much more efficient algorithm for the Endpoint/Pipe configuration routine of unordered endpoints/pipes - only reconfigure the endpoints and pipes above the newly configured endpoint/pipe, and don't cache existing endpoint/pipe configuration before use to save SRAM.
2010-12-24 18:06:55 +00:00
Dean Camera
ec537fd84d
Re-add in old Endpoint/Pipe workaround for unordered pipes - add new ORDERED_EP_CONFIG compile time option to override the workaround and use the previous behaviour that imposes correct Endpoint/Pipe ordering but produces smaller compiled code.
2010-12-24 17:05:41 +00:00
Dean Camera
0aa950c241
Fixed incorrect definition of the HID_KEYBOARD_SC_D constant in the HID class driver (thanks to Opendous Inc.).
...
Add extra comments to the ISPTarget.c source file in the AVRISP-MKII clone project.
2010-12-13 06:05:05 +00:00
Dean Camera
b20d25854d
Fixed HID hpst class driver incorrectly binding to HID devices that do not have an OUT endpoint.
2010-12-02 04:28:53 +00:00
Dean Camera
ed9d77aeee
Refactored Host mode Class Driver *_Host_ConfigurePipes() routines to be more space efficient when compiled.
...
Added new *_ENUMERROR_PipeConfigurationFailed error codes for the *_Host_ConfigurePipes() routines.
2010-12-02 01:56:06 +00:00
Dean Camera
55da77d85f
Remove internal USB_Device_NibbleToASCII() function in favour of manually inlined code to prevent compilation errors in -O0 optimisation level.
2010-11-21 10:16:44 +00:00
Dean Camera
210bd4db24
Fix documentation reference error.
2010-11-05 05:26:00 +00:00
Dean Camera
fb76acb084
Renamed the EVENT_USB_Device_UnhandledControlRequest() event to EVENT_USB_Device_ControlRequest() as it is now fired before the library request handlers, not afterwards.
2010-11-05 05:15:20 +00:00
Dean Camera
85cf202737
Fixed USBtoSerial and XPLAINBridge demos discarding data from the PC if the send buffer becomes full.
2010-11-03 11:24:34 +00:00
Dean Camera
8f9b5ae00d
Minor documentation improvements.
2010-11-03 06:50:02 +00:00
Dean Camera
ee495ca500
Fixed MIDI class driver send routines silently discarding packets if the endpoint or pipe is busy (thanks to Robin Green).
2010-11-03 03:20:08 +00:00
Dean Camera
5ce8380a7d
Fix XPLAINBridge code broken during the changes to the Rescue Clock generation in the AVRISP-MKII clone project.
...
Change over all low level host mode project's descriptor comparator routines to perform the descriptor casting in a temp variable to make the code clearer and easier to modify (despite being more verbose).
2010-11-02 11:16:36 +00:00
Dean Camera
46f2e488b0
Oops - typos in the naming of the NBUSYBK0 bits breaking the new busy bank counting functions.
2010-10-29 06:50:56 +00:00
Dean Camera
cd57e855f6
Added new Pipe_GetBusyBanks(), Endpoint_GetBusyBanks() and Endpoint_AbortPendingIN() functions.
2010-10-29 06:22:03 +00:00
Dean Camera
b8dfa976ce
Added standard keyboard HID report scancode defines (thanks to László Monda).
2010-10-28 23:11:49 +00:00
Dean Camera
2d49c09b38
Move Set Feature and Clear Feature control request feature selector values into their own enum.
2010-10-28 22:51:03 +00:00
Dean Camera
b120c4e4cd
Move RNDISConstants.h into the RNDIS class driver common definition header.
...
Add logical grouping of related #define values for better Doxygen documentation.
2010-10-28 07:52:52 +00:00
Dean Camera
cb779e3d7d
Changed over www.fourwalledcubicle.com links to the new www.lufa-lib.org redirect domain, including the new aliased links for LUFA-related pages such as the various download/source control mirrors and support lists.
2010-10-28 06:08:58 +00:00
Dean Camera
710f31c540
Added new NO_CLASS_DRIVER_AUTOFLUSH compile time option to disable automatic flushing of interfaces when the USB management tasks for each driver is called.
...
The MIDI class drivers now automatically flushes the MIDI interface when the MIDI class driver's USBTask() function is called.
2010-10-27 07:23:51 +00:00
Dean Camera
08de757811
Changed AudioInput and AudioOutput demos to reload the next sample via an interrupt rather than polling the sample timer.
2010-10-26 06:52:09 +00:00
Dean Camera
55538dcef3
Add descriptor class, subclass and protocol constants to the class drivers, modify all demos to use them where possible.
...
Move out private/internal host class driver constants to the common class driver headers, so that they can be used in the Low Level host mode demos.
Ensure all demos, projects and bootloaders use the class driver constants where possible to minimise code repetition.
2010-10-25 12:42:55 +00:00
Dean Camera
b37d77eab3
All USB class drivers are now automatically included when LUFA/Drivers/USB.h is included, and no longer need to be seperately included.
...
All LowLevel demos changed to use the constants and types defined in the USB class drivers.
2010-10-24 22:53:57 +00:00
Dean Camera
8f3bee7d86
Better algorithm to extract and convert the internal device serial number into a string descriptor (if present).
...
Fix incorrect warning text when an unsuitable F_CLOCK value is given.
2010-10-24 12:25:34 +00:00
Dean Camera
9464fa168e
Renamed ENDPOINT_DOUBLEBANK_SUPPORTED() to ENDPOINT_BANKS_SUPPORTED() and changed it to return the maximum number of supported banks for the given endpoint.
2010-10-13 21:05:55 +00:00
Dean Camera
5a4def7478
Clean up excessive whitespace at the end of each line using the wspurify tool made by Laszlo Monda
2010-10-13 14:05:35 +00:00
Dean Camera
a8871c7fba
Fixed MIDI_Host_Flush() not aborting early when the specified MIDI host interface was not configured.
...
Small documentation improvements to explicitly reference tokens in Doxygen, to ensure that they are converted to cross-reference links in the output files.
2010-10-12 13:52:06 +00:00
Dean Camera
7aaced1e8b
Remove USB_MODE_* macros, replace with a semantically linked USB_Modes_t enum.
...
Moved the USB device selection logic for ENDPOINT_TOTAL_ENDPOINTS further up in Endpoint.h to where the endpoint bank capabilities are determined, to reduce the total number of device-specific logic.
Change USB_Host_WaitMS() to test and disable the HSOFI interrupt before resuming the bus, so that it does not fire before the delay loop has run.
Add missing const qualifier to the parameter of USB_Host_ClearPipeStall().
2010-10-12 12:22:11 +00:00