Dean Camera
5de364163f
Update CDC Class Driver character stream functions to use the correct avr-libc return codes for errors and EOF.
...
Fix pointer arithmetic on void byte buffers by explicitly typecasting the buffer pointers to uint8_t* before altering them.
15 years ago
Dean Camera
c1782ac024
Added new stream creation function to the CDC Class drivers, to easily make standard streams from CDC Class driver instances.
15 years ago
Dean Camera
d6edfe35c8
Spell check all source code variables, comments and strings.
15 years ago
Dean Camera
8bb007f80b
Fixed HID host Class driver report send/receive report broken when issued through the control pipe.
...
Make Mass Storage device Class driver accept resets at any time, rather than just after a command block has been processed.
Remove the HID device parser from the boot protocol Keyboard/Mouse demos.
15 years ago
Dean Camera
4dde844e9f
Remove dependancies from the LowLevel demos to the ClassDriver demos, since the use of ClassDriver headers now outputs an error when NO_STREAM_CALLBACKS is used.
15 years ago
Dean Camera
34dc7f241f
Make Low Level host demos use void pointers for the configuration descriptor, to prevent warnings when passed to the altered configuration descriptor parsing routines.
...
Added preprocessor checks to give a human readable error when the class drivers are used when the incompatible NO_STREAM_CALLBACKS compile time option is used.
15 years ago
Dean Camera
64e5c4084f
Add optional pipe double banking support to the Host mode Class drivers.
...
Descriptor processing routines now pass around void pointers rather than uint8_t pointers, as their destination datatype is know well known -- they are just streams of bytes until they are cast to the correct destination type by DESCRIPTOR_CAST.
15 years ago
Dean Camera
f29fc1abc4
Add double banking property to LUFA powered projects in the Projects directory. Add guards to macro parameters to ensure that formulas passed as parameters don't mess up the internal macro structure.
15 years ago
Dean Camera
f7ab433c67
Add optional double-banking support to the Device mode Class Drivers, on a per-endpoint, per-interface level.
15 years ago
Dean Camera
1c7aa68596
Add other missing Printer.h main class driver dispatch file.
15 years ago
Dean Camera
4563350628
Add missing Printer.h common class driver file.
15 years ago
Dean Camera
8ba51f090f
Added new Printer Host mode Class driver.
...
Added new Printer Host mode ClassDriver demo.
Added table of supported classes and modes to the main USB Class Driver documentation.
15 years ago
Dean Camera
4670b39070
Fixed HID report parser collection paths invalid due to misplaced semicolon in the free path item search loop. Increased the default number of collection paths allowable by the parser.
15 years ago
Dean Camera
f93f732108
Update DevChapter9.c - use the Endpoint_ClearStatusStage() function where possible to reduce code size and (potentially) allow for centralized status stage timeouts.
...
Fix Joystick device demo HID descriptors - buttons should be placed outside the Pointer collection.
15 years ago
Dean Camera
5832bab02f
Rename the AT90USBXXX67 internal driver directory to AVRU4U6U7.
15 years ago
Dean Camera
870591983c
Add const attribute to class driver APIs.
...
Add new manual pages detailing the advantages of LUFA over the official Atmel USB AVR stack, and reasons why LUFA should be used over a built-from-scratch USB stack.
15 years ago
Dean Camera
de8c9445d4
Make HID device class driver ignore the previous HID report comparison buffer when the user sets it to NULL, disabling automatic report comparisons. Update HID device class driver documentation giving previous report buffer limitations.
15 years ago
Dean Camera
cf610c5c91
Make HID device class driver reselect the correct endpoint after the user callbacks have fired.
15 years ago
Dean Camera
de70f0f1cf
Moved USBtoSerial demo the Projects directory, as it is simply an expanded CDC demo. Added const qualifier to Endpoint/Pipe stream write routines.
15 years ago
Dean Camera
e53c120a22
Fix AudioOutput and AudioInput class driver demos' descriptors -- incorrect value was being supplied in the audio descritors field giving the number of discrete audio formats the device supports.
15 years ago
Dean Camera
c7bc3ec391
Add new MIDI Host Class driver to the library, and new MIDIHost ClassDriver demo.
...
Make MouseHost and KeyboardHost ClassDriver demos use the HID Class driver's structures for the boot protocol Mouse/Keyboard report data, rather than rolling their own.
15 years ago
Dean Camera
09575f9607
Fix accidentally changed code breaking the HID descriptor parser.
16 years ago
Dean Camera
046fff2aff
Fix broken Endpoint/Pipe stream templates.
...
Simplify AudioOutput demos, to reduce the number of cycles needed to process each incomming sample.
16 years ago
Dean Camera
db435c4995
Minor documentation fixups.
16 years ago
Dean Camera
433399b05d
Changed Audio Class driver sample read/write functions to be inline, to reduce the number of cycles needed to transfer samples to and from the device (allowing more time for processing and output).
...
Fixed ClassDriver AudioOutput demo not selecting an audio output mode.
16 years ago
Dean Camera
3ebfb998ec
Added support for the Atmel XPLAIN board.
16 years ago
Dean Camera
2f643f6143
Added new HID_HOST_BOOT_PROTOCOL_ONLY compile time token to reduce the size of the HID Host Class driver when Report protocol is not needed.
16 years ago
Dean Camera
baa1b22654
Fixed issue in the HID Host class driver's HID_Host_SendReportByID() routine using the incorrect mode (control/pipe) to send report to the attached device.
16 years ago
Dean Camera
89c837ee34
Removed mostly useless "TestApp" demo, as it was mainly useful only for checking for sytax errors in the library.
...
MIDI device demos now receive MIDI events from the host and display note ON messages via the board LEDs.
Added beginnings of a MIDI class bootloader.
16 years ago
Dean Camera
e57e08c672
Fixed PrinterHost demo returning invalid Device ID data when the attached device does not have a device ID (thanks to Andrei Krainev).
16 years ago
Dean Camera
409c49f057
Doxygen fixes to \param directives to give data direction in all projects. Make HID item filtering routines clearer in the HID WithParser demos.
16 years ago
Dean Camera
573a27d90a
Fix incorrect names for the HID Host protocol setting routines.
16 years ago
Dean Camera
849b9535e7
Add new error condition to the HID Report Parser for when a report is parsed but no unfiltered items are encountered (i.e. nothing of interest in the device report). Make all host HID "WithParser" demos print the new error condition.
16 years ago
Dean Camera
242303c160
Add new attributes to the HID Report Parser and HID Host Mode Class driver to keep track of the largest report the device can send for buffer allocation purposes. Change MouseHostWithParser and KeyboardHostWithParser demos to only allocate the needed number of bytes.
16 years ago
Dean Camera
3ffa7543a0
Finish initial draft of the Host Mode HID Class driver.
...
Add new MouseHostWithParser and KeyboardHostWithParser Host Class driver demos.
16 years ago
Dean Camera
9d6a373cb6
Add const qualifiers to Host mode Class drivers.
...
Fix KeyboardHost ClassDriver demo; boot protocol keyboard report structure in the Host Mode HID Class driver uses the full keycode array from the attached device.
16 years ago
Dean Camera
7478b387a9
Oops - Keyboard boot report structure should be an array of 6 keycodes.
16 years ago
Dean Camera
aa640330a1
Finish Class Driver MouseHost demo. Update HID Host Class driver; boot protocol now works, still need to finish and test report protocol mode.
16 years ago
Dean Camera
51566d1a81
Added new Pipe_IsFrozen() macro to determine if the currently selected pipe is frozen.
...
Added new USB_GetHIDReportSize() function to the HID report parser to retrieve the size of a given report by its ID.
More additions to the unfinished HID Host Class Driver.
16 years ago
Dean Camera
cd0adb7574
Added support for the officially recommended layout of the external peripherals connected to the BUMBLEB board.
...
Added flag to the HID Host Class driver to indicate the currently selected reporting protocol.
16 years ago
Dean Camera
7c6b2019a3
Fix Mass Storage Host Class driver GetMaxLUN command - incorrect function return codes used in comparison to check for success.
...
Add HID Host Class driver functions to set the report protocol, add more class driver documentation.
16 years ago
Dean Camera
eee712f769
Fixed MIDI Device Class driver not sending/receiving MIDI packets of the correct size (thanks to Thomas Bleeker).
16 years ago
Dean Camera
81b618be23
Revert changed CDC_Device_Flush() prototype accidentially changed in the last commit.
16 years ago
Dean Camera
e918d977b1
Prevent the CDC Device Class driver from sending empty IN packets on every service task call - only send termination packets when data is in the endpoint.
16 years ago
Dean Camera
b221e7d175
Remove USE_NONSTANDARD_DESCRIPTOR_NAMES compile time token, split out standard descriptors into seperate USB_Descriptor_* and USB_StdDescriptor_* structures so that both can be used within the one project.
...
Add guard to the HID Host Class driver SetProtocol command, to ensure that the device supports boot protocol mode before issuing the request.
16 years ago
Dean Camera
524decdeb3
Change HID report parser so that it can calculate and record the sizes (IN, OUT and FEATURE) of each report within the device, by report ID. This will be required in host mode, so that the host can determine how many bytes of data must be read in for each report.
...
Add to MouseHostWithParser and KeyboardHostWithParser demos to print out the report sizes when a valid device is connected.
16 years ago
Dean Camera
d2068d878c
Finish Still Image Host class driver.
16 years ago
Dean Camera
c8b72f955f
Corrected incorrect signature bytes for the AT90USB82 and added support for the ATMEGAXX2 variant AVRs to the DFU bootloader.
...
Added warning to the EVENT_USB_Device_Connect() and EVENT_USB_Device_Disconnect() events that they may be fired multiple times during device enumeration on the series 2 AVRs.
16 years ago
Dean Camera
064e6a2f32
Changed Still Image Host class driver to auto-fill TransactionID element of sent headers depending on the current session state.
...
CDC based demos and project now work under 64 bit versions of Windows (thanks to Ronny Hanson, Thomas Bleeker).
The Benito Programmer project now has its own unique VID/PID pair allocated from the Atmel donated LUFA VID/PID pool.
16 years ago
Dean Camera
6783bc4594
Add StillImage Host Class Driver functions for opening and closing sessions. Ensure IsActive is set on the interface to allow device functions to run.
...
Fix spelling of "Received" in all source files where it is misspelt "Recieved".
16 years ago
Dean Camera
205b35d131
Add user-filtering to the HID report parser, so that the user code can decide which items are to be stored into the HID_ReportInfo_t structure and which should be discarded to save on RAM usage.
16 years ago
Dean Camera
0fdc1a2bc6
Changed HIDParser to only zero out important values in the Parsed HID Report Item Information structure to save cycles.
16 years ago
Dean Camera
0e2ffebb82
Added documentation for the constants and enums of the new StillImage Host Class driver added to the library so far.
16 years ago
Dean Camera
5908e28e8d
Fixed StillImageHost not correctly freezing and unfreezing data pipes while waiting for a response block header.
...
Added basic PIMA commands to the StillImage Host Class driver - need to extend to PIMA specific command functions.
16 years ago
Dean Camera
dac7b046fd
Add return codes to the CDC Host Class driver String/Byte transmission functions.
16 years ago
Dean Camera
cf2776531c
Add extra check for OUT ZLP in the CDC Device Class driver service task to quickly clear zero-length termination packets from the host.
16 years ago
Dean Camera
778da9dc6d
Removed unused INCLUDE_FROM_BOARD_DRIVER internal define from the board driver dispatch headers.
16 years ago
Dean Camera
7fbb759287
Changed the parameters and behaviour of the USB_GetDeviceConfigDescriptor() function so that it now performs size checks and data validations internally, to simplify user code.
16 years ago
Dean Camera
e2822fb30d
Remove deleted source files from the LUFA library makefile.
...
Renamed parameters of SI_Host_ConfigurePipes() to match other Host mode Class drivers.
16 years ago
Dean Camera
3dce79d68c
Added start of the Still Image Host Class driver demo and driver code.
...
Re-enabled building of the Host mode demos ClassDriver directory.
16 years ago
Dean Camera
0d3a3f7536
Remove skeleton Audio and MIDI Host mode Class drivers -- will not implement in next release.
16 years ago
Dean Camera
94c899d7b7
Fixed Device mode HID Class driver not explicitly initializing the ReportSize parameter to zero before calling callback routine, so that ignored callbacks don't cause incorrect data to be sent.
16 years ago
Dean Camera
922e60192d
Condensed SCSI command functions in the LowLevel Mass Storage Host demo, to save on FLASH space.
...
Fixed issue in AVRISP project where the target RESET line was being toggled before it was tristated, causing problems synchronising to some targets (thanks to Mike Alex).
16 years ago
Dean Camera
023838fe4a
Add check to Pipe_IsEndpointBound() in the Mass Storage Host mode Class driver to ensure that multiple instances of the driver can be used on a single device with multiple Mass Storage interfaces.
16 years ago
Dean Camera
f52b265090
Simplified Host mode Mass Storage Class driver to reduce compiled program size.
16 years ago
Dean Camera
754ea083d4
Fix memory corruption in Host mode Mass Storage Class driver.
16 years ago
Dean Camera
cd2dcc9163
Added better USB Class driver overviews.
16 years ago
Dean Camera
d297ea12b7
Added new "Common" section to the class drivers, to hold all mode-independant definitions for clarity.
...
Moved SCSI command/sense constants into the Mass Storage Class driver, instead of the user-code.
16 years ago
Dean Camera
f7cde02b80
Added extra note about missing OUT endpoint configuration to the HID Device mode Class driver.
...
Added pinout information to the AVRISP project.
16 years ago
Dean Camera
665fe11f12
Fixed Device mode HID Class driver always sending IN reports, even when no data is to be reported.
16 years ago
Dean Camera
8ea5c631c8
Minor documentation fixes to the completed Host mode Class drivers.
16 years ago
Dean Camera
f890592806
Completed initial Host mode Mass Storage class driver.
16 years ago
Dean Camera
559ca2ba04
Added MS_Host_TestUnitReady() and MS_Host_ReadDeviceCapacity() to the host mode Mass Storage Class driver.
16 years ago
Dean Camera
a765f71727
Add SCSICodes.h to the Class Driver Common folder, and automatically include it in both the Host and Device Mass Storage Class drivers. Delete existing version from the ClassDriver MassStorage device demo's /Lib/ folder.
16 years ago
Dean Camera
31d8ebebc0
Oops: Really disable building of Projects/Host/ClassDriver directory in the Projects/Host/ makefile.
...
Add more skeleton functions and definitions to the Mass Storage Host mode Class driver.
Made Endpoint_Write_DWord_* functions echo the structure of the matching Endpoint routines for clarity.
16 years ago
Dean Camera
ee744abb7e
More work on the Mass Storage Host mode Class driver.
...
Added ATTR_NON_NULL_PTR_ARG() attributes to the class drivers to improve user code reliability by disallowing explicit NULL pointers as pointer parameters in function calls where the parameter must not be NULL.
Disabled building of the Demos/Host/ClassDriver directory until Host Mode Class drivers are complete to prevent build errors in the meantime.
16 years ago
Dean Camera
f547eb3608
Optimized Endpoint_Read_Word_* and Pipe_Read_Word_* macros to reduce compiled size.
...
Fixed Programmer's Notepad project file to reflect new location of AVRISP project.
16 years ago
Dean Camera
6d1adf7339
Updated Benito project -- added hardware interrupt and software buffering for serial data reception to prevent missed characters, condensed pulse generation counters into a struct for clarity.
...
Added check to CDC_Device_BytesReceived() to ensure 0 is returned when device is not enumerated to a host.
Move AVRISP project's V2Protocol_DelayMS() function to be static inline, as it is now very minimal. Added extra project doxygen documentation.
16 years ago
Dean Camera
f229502d9a
Fixed AVRISP programmer demo -- can now connect to a target and read/write Sig/Lock/Fuse/OSCCAL bytes successfully.
...
Changed SPI_Init() to allow for the clock polarity and data sample modes to be set.
Changed Dataflash_Init() to no longer call SPI_Init() automatically.
16 years ago
Dean Camera
1e8df8951a
Added V2Protocol handlers to the AVRISP project to enter/exit programming mode, and read/write fuses, lockbits, OSCCAL and Signature bytes.
...
Added ShutDown functions for all hardware peripheral drivers, so that peripherals can be turned off after use.
16 years ago
Dean Camera
2f95eea146
Add LOAD ADDRESS command parsing to the V2 Protocol hander in the AVRISP project.
...
Fix up references to functions in the Endpoint/Pipe documentation.
16 years ago
Dean Camera
6d99486791
Fixed invalid data being returned when a GetStatus request is issued in Device mode with an unhandled data recipient.
...
Fix up Programmers Notepad Project file to show new Projects directory layout. Remove now moved AVRISP project from the Projects directory makefile.
16 years ago
Dean Camera
ecd82778cf
Added beginnings of a new AVRISP-MKII clone project.
...
Added new Endpoint_SetEndpointDirection() macro to set the current endpoint direction for bidirectional endpoints.
Renamed internal USB_INT_ENDPOINT_SETUP macro to USB_INT_RXSTPI to fit in with the rest of the interrupt vector macros.
16 years ago
Dean Camera
09bedd6555
Added return values to the CDC and MIDI class driver transmit functions.
16 years ago
Dean Camera
b71ff7c8cd
Added new EVENT_USB_Device_StartOfFrame() event, controlled by the new USB_Device_EnableSOFEvents() and USB_Device_DisableSOFEvents() macros to give bus-synchronised millisecond interrupts when in USB device mode.
16 years ago
Dean Camera
df5500e81c
Added CDC_Device_Flush() command to the CDC Device mode class driver.
...
Minor updates to the unfinished SideShow demo for clarity.
Added unfinished MassStorageHost class driver demo.
16 years ago
Dean Camera
df29aa37c0
Added flag to the HID report parser to indicate if a device has multiple reports.
...
SetIdle requests to the HID device driver with a 0 idle period (send changes only) now only affect the requested HID interface within the device, not all HID interfaces.
Apply correct fix to the HID report parser for PUSH items - current HID item attribute stack was being copied in the wrong direction.
Fixed HID report parser not resetting the FEATURE item count when a REPORT ID item is encountered.
16 years ago
Dean Camera
a7ade9f28d
Add CDC Host class driver EVENT_CDC_Host_ControLineStateChanged() event.
...
Minor documentation fixes.
16 years ago
Dean Camera
abc7dce10c
Document CDC Host class driver functions and enums.
16 years ago
Dean Camera
c86491af8b
Add new functions to the HID host class driver, refine HID interface protocol matching.
...
Remove stray state variable from the CDC host class driver.
16 years ago
Dean Camera
a2001ac1cc
Fixed swapped paremeters in the HID state memory copy call while processing a HID PUSH item in the HID report parser.
...
Fixed memory corruption HID report parser when too many COLLECTION or PUSH items were processed.
Make RNDIS device class driver include the CDC device class driver header, so that it can inherrit the required CDC functional descriptor macro.
Make HID host class driver include the HID report parser.
16 years ago
Dean Camera
f4814771d2
Completion of initial CDC host mode class driver.
...
Adjustments to the CDC and MIDI device class drivers to use sizeof() on the actual variable being transmitted or received rather than its datatype to reduce possible mistakes.
16 years ago
Dean Camera
8711dc7ced
Fix issue in CDC device class driver where received data the size of the data endpoint could lock up the driver.
...
Further work on the new CDC and HID host mode class drivers.
Reset changelog et. al. to reset development information for the new version currently under development.
16 years ago
Dean Camera
d423090b26
Cleanups to RNDIS device demos. Fix issue in RNDIS demos where the memory would become corrupted due to an incorrect bounds check when iterating over the port state table, causing random resets.
...
Revert change to Template_Endpoint_Control_R.c, which broke control stream reads.
Remove uneeded ADC.h include in the class driver AudioOutput demo.
16 years ago
Dean Camera
85c2716f2d
Make Benito ping-pong LED code more explicit, using masks of the TX and RX LED masks for ping-pong toggle rather than the ambiguous LED "Busy" mask.
...
Fix incorrect event name in MassStorageHost.c.
16 years ago
Dean Camera
c830fcb0e1
Make Endpoint control transfers more reliable; early-abort when an incomplete packet is sent from the host (indicating end of transfer), add check for control reads to ensure that no more than wLength bytes are read from the interface.
...
Condense sequential printf_P/puts_P calls to single printf_P calls for size and clarity.
16 years ago
Dean Camera
4421782b7f
Make Control Endpoint stream transfers more reliable by adding in early aborts for unexpected new SETUP tokens, or unexpected status stage during control stream writes.
...
Fix corruption in Device RNDIS demos TCP stack when too many connections attempted simultaneously, freezing the device when a page was re-fetched before the first connection was closed.
Fix incorrect model compatibility information in the Host LowLevel demo overview text files.
16 years ago
Dean Camera
a9d5e129b7
Changed over manual loops waiting for endpoints to be ready to use the library Endpoint_WaitUntilReady() function for robustness. Fixes issues with terminated transfers on the host locking up USB devices.
16 years ago
Dean Camera
4b35dd1670
Commit for 090810rc1 release.
16 years ago
Dean Camera
042d3288ad
Fix incorrect Event call name in USBInterrupt.c.
16 years ago
Dean Camera
c5038f1bf4
Renamed all library events to properly seperate out Device and Host mode events. Changed the firing conditions for some events to ensure that events are fired by their own USB mode only.
...
Remove VBUS events - not needed as the library takes care of VBUS detection and feedback on supported AVRs via the USB_Device_Connected and USB_Device_Disconnected events.
Fixed incorrect Host state assignment in the incomplete BluetoothHost demo.
16 years ago
Dean Camera
eff07bb877
Fix issue with CDC device demos causing broken communications when the device tries to send data before the host has set the line encoding.
16 years ago
Dean Camera
840d386deb
Cleanup and optimization of the internal serial retrieval routines.
...
Renamed ATTR_NOINLINE to ATTR_NO_INLINE to fit with the rest of the library function attribute names.
16 years ago
Dean Camera
6f4cc344ab
Rename TOTAL_NUM_CONFIGURATIONS to FIXED_NUM_CONFIGURATIONS, to match the existing FIXED_CONTROL_ENDPOINT_SIZE compile time option. Add FIXED_NUM_CONFIGURATIONS to the descriptors of each project using the option.
16 years ago
Dean Camera
c5eeedd522
Removed interrupt disable/enable from the Device mode control request processing routines, as they can cause problems with user code and can cause infinite spinlocks under some circumstances.
...
Added new LUFA logo from EDIGMA.COM.
16 years ago
Dean Camera
eb41086947
Fix demos based on the device mode HID class driver, as well as the driver itself. Changed HID device class driver to require the user to give a buffer and size to hold the previously generated report, for comparison purposes, and altered the prototype of the CALLBACK_HID_Device_CreateHIDReport() function so that reports can be sent to the host even if there are no apparent changes (useful for relative movements in mice, etc.).
16 years ago
Dean Camera
a789619fbe
Renamed USB_Device_SetHighSpeed() to USB_Device_SetFullSpeed() so that the correct terminology is used (thanks to Brian Dickman).
...
Fix USB_PLL_Off() call in the series 4, 6 and 7 microcontroller disconnect interrupt handler code, which wasn't guarded by a test of USB_Options to check if the user has specified manual PLL control (thanks to Brian Dickman).
16 years ago
Dean Camera
7df6b9563c
Add new HID_Device_MillisecondElapsed() function to the HID device Class driver, to move the burden of managing the Idle period of each instance to the library and not the user application.
16 years ago
Dean Camera
7227e133a9
Ensure that the previous HID reports in the HID device class driver are kept per-instance, rather than per-device.
16 years ago
Dean Camera
72932e2780
Fix to HID device mode Class driver, so that new reports are compared against the old, and updated reports made within the idle period are sent immediately to the host.
16 years ago
Dean Camera
41babf1cb7
Fix incorrect configuration in the ClassDriver AudioOutput demo.
...
Make all audio device Class Driver functions require a reference to the Audio class instance, so that the endpoint size can be checked (and to standardize the APIs).
Make LEDs more responsive in the AudioOutput device demos.
16 years ago
Dean Camera
ce3ea6fb25
Added standard stream example to the ClassDriver CDC device demo.
...
Fix incorrect HWB button mask in the STK526 Buttons driver.
16 years ago
Dean Camera
5ca1d7bf8f
Fix redefinition warning when USB_DEVICE_ONLY is set on an AVR which does not support USB host mode.
16 years ago
Dean Camera
fef185a409
Cleanup USBMode.h to simplify preprocessor logic.
16 years ago
Dean Camera
6928f17b64
Extend the automatic serial number descriptor code to read out and send all 10 bytes (20 characters) of the internal serial number on supported AVRs, rather than just the first 6 bytes (12 characters).
16 years ago
Dean Camera
7f3f39b575
Fixed report data alignment issues in the MouseHostWithParser demo when X and Y movement data size is not a multiple of 8 bits.
...
Fixed HID Report Descriptor Parser not correctly resetting internal states when a REPORT ID element is encountered.
16 years ago
Dean Camera
e426463355
Better solution - change compile time token names to DEVICE_STATE_AS_GPIOR and HOST_STATE_AS_GPIOR and allow the user to set them to the index of the GPIOR register within the device to use.
16 years ago
Dean Camera
c1be307393
Added HOST_STATE_AS_GPIOR1 and DEVICE_STATE_AS_GPIOR0 compile time options, the latter of which is used in the bootloaders, to reduce code size.
16 years ago
Dean Camera
864196c884
State information for class drivers is now zeroed out during enumeration (both in device and host mode) to ensure sane values after each enumeration. User code should no longer explicitly set state information as this is no longer preserved.
16 years ago
Dean Camera
b9dd51cd63
Collapse configuration descriptor size retrieval and size testing into a single if statement within the new host mode class driver demos for clarity.
16 years ago
Dean Camera
84c3c4a3d9
Change Host mode class driver Pipe configuration routines -- better to let the application fetch the configuration descriptors once, and then pass them to each class driver in turn.
16 years ago
Dean Camera
5251bc6e4e
Add new MouseHost Class Driver demo, unfinished, to allow for better testing of the new prototype Host Mode Class Driver framework. Flesh out start of a HID class Host mode class driver.
16 years ago
Dean Camera
05fa6e0c43
Corrected new Pipe_IsEndpointBound() function.
...
Completed host CDC class driver enumeration code.
16 years ago
Dean Camera
cbbd3d746a
Added new Pipe_BoundEndpointNumber() and Pipe_IsEndpointBound() functions.
16 years ago
Dean Camera
200821fe82
Added new LEDs_ToggleLEDs() function to the Board LEDs driver.
16 years ago
Dean Camera
5dbfdaa17d
Ensure that the USB_DeviceState variable is properly set upon wakeup events, to the Addressed or Configured state as needed.
...
Add explicit support for the AT90USB646 to the Teensy bootloader now that PJRC have released the Teensy++ board.
Ensure unfinished SideShow demo uses an unallocated PID value within the LUFA range.
16 years ago
Dean Camera
7a5d045987
Slight changes to TeensyHID bootloader to ensure it builds under the 2KB boundary.
...
Changed USB_Init() and USB_Shutdown() so that they are no longer dependant on oneanother for possible code savings when the interface is never explicitly shut down.
16 years ago
Dean Camera
e071f3897a
Added new USB_DeviceState variable to keep track of the current Device mode USB state.
...
Added new Endpoint_ClearStatusStage() convenience function to assist with the status stages of control transfers.
Removed vague USB_IsConnected global - test USB_DeviceState or USB_HostState explicitly to gain previous functionality.
Removed USB_IsSuspended global - test USB_DeviceState against DEVICE_STATE_Suspended instead.
Fixed possible enumeration errors from spinloops which may fail to exit if the USB connection is severed before the exit condition becomes true.
16 years ago
Dean Camera
d0db78432f
Add extra tests to the MassStorage device demo and class driver for validating command blocks from the host.
16 years ago
Dean Camera
67f390fe74
Add explicit guards to all device mode tasks to ensure the device is connected and configured before running the task, to prevent any user tasks from locking up the main USB task if the device has not been properly configured.
16 years ago
Dean Camera
292fc9b65e
Move unfinished SideShow source files to nested Lib directory for clarity.
16 years ago
Dean Camera
f3c061d5c8
Fixed PrinterHost demo Printer_GetDeviceID() routine not removing the Device ID string length from the start of the returned array (thanks to John Andrews).
...
Fixed error in new pipe stream function template system not setting the right device token for R/W operations (also thanks to John Andrews).
16 years ago
Dean Camera
9d2613d908
Fixed incorrect PIPE_EPNUM_MASK mask causing pipe failures on devices with endpoint addresses of 8 and above (thanks to John Andrews).
16 years ago
Dean Camera
c619e21fa7
Added support for the new ATMEGA32U2, ATMEGA16U2 and ATMEGA8U2 AVR models.
16 years ago
Dean Camera
32086e4f14
Fix small error in last commit preventing compilation in some circumstances.
16 years ago
Dean Camera
37f8a84f35
Added new TOTAL_NUM_CONFIGURATIONS option, removed USE_SINGLE_DEVICE_CONFIGURATION compile time option (but silently convert it to USE_SINGLE_DEVICE_CONFIGURATION internally for compatibility).
...
Added new USE_FLASH_DESCRIPTORS compile time option. By default, descriptors can now lie in mixed memory spaces (specified by a new parameter to the CALLBACK_USB_GetDescriptor() function) unless one of the USE_*_DESCRIPTORS compile time option is specified.
16 years ago
Dean Camera
f85a53a31b
Fix HID class device driver -- if a SetIDle request is issued with the LSB of wValue set to zero, the idle period must be set for all HID interfaces.
...
Fix Keyboard and Mouse demos, Idle period is now multiplied by 4 as the period is read into and sent out of the device to ensure it is always stored as a multiple of 1ms. Fixes Keyboard demo using an initial Idle period of 2s rather than 500ms (thanks to Brian Dickman).
Move out the internal device serial descriptor reading routine into a seperate static function, rather than being part of USB_Device_GetDescriptor.
16 years ago
Dean Camera
da138684e4
Added module file dependancy information to the USB class drivers.
16 years ago
Dean Camera
312748702a
Added better module summaries.
16 years ago
Dean Camera
e9215b4b36
Fix broken Pipe stream function templates due to mixed const/no const use in prototypes.
16 years ago
Dean Camera
73d9fafc0f
Added new EEPROM and FLASH buffer versions of the Endpoint and Pipe stream functions. Changed Endpoint.c and Pipe.c to use a templated system to build the seperate functions, rather than duplicating each function's code many times.
16 years ago
Dean Camera
0fcbe22c9e
Added new HOST_STATE_WaitForDeviceRemoval host state machine state for non-blocking disabling of device communications until the device has been removed (for use when an error occurs or communications with the device have completed). Changed over all host mode demos to use the new state.
...
Added verbose documentation for each of the USB Host state machine states.
16 years ago
Dean Camera
a54ed0085b
Seperated out parts of the PrinterHost incomplete demo into a seperate Lib subdirectory.
...
Fixed Host mode to Device mode UID change not causing a USB Disconnect event when a device was connected.
16 years ago
Dean Camera
86e6ed7f31
Dataflash_WaitWhileBusy() now always ensures that the dataflash is ready for the next command immediately after returning, no need to call Dataflash_ToggleSelectedChipCS() afterwards.
...
Added new DATAFLASH_CHIP_MASK() macro to the Dataflash driver, which returns the Dataflash select mask for the given chip index.
Updated MassStorage device block write routines to use ping-pong Dataflash buffering to increase throughput by around 30%.
16 years ago
Dean Camera
f1076ac4d6
Added const modifiers to device mode class drivers.
...
Added parameter directions to function parameter documentation.
Added new experimental FAST_STREAM_FUNCTIONS compile time option to speed up stream transfers at the expense of a higher FLASH consumption (needs testing to verify improved throughput).
16 years ago
Dean Camera
3cbdcd3686
Reduce struct name pollution - group typedef struct names by class driver name where appropriate.
16 years ago
Dean Camera
1756087c3e
Optimize vendor/product description string display code in MassStorageHost.
...
Remove all Host mode class demos other than the CDCHost class driver demo, so that they can be re-added as they are made once the host mode class framework is designed.
Fixed USB_Host_SendControlRequest() not re-suspending the USB bus when initial device ready-wait fails.
Fixed USB Pad regulator not being disabled on some AVR models when the USB_OPT_REG_DISABLED option is used.
16 years ago
Dean Camera
bb23e55f11
Fixed MassStorage demo not clearing the reset flag when a Mass Storage Reset is issued while not processing a command.
16 years ago
Dean Camera
a3a04aa671
Pipe_ConfigurePipe() now automatically defaults IN pipes to accepting infinite IN requests, this can still be changed by calling the existing \ref Pipe_SetFiniteINRequests() function.
16 years ago
Dean Camera
7f81803aaa
Fixed CDCHost demo unfreezing IN pipes during configuration, rather than during use.
...
Changed Pipe stream functions to automatically set the pipe token, allowing them to be used on bidirectional pipes without having to explicitly call Pipe_SetPipeToken() beforehand.
16 years ago
Dean Camera
7d7573e4e5
Corrected the ADC driver for the ATMEGA16U4 and ATMEGA32U4 (thanks to Opendous Inc.).
16 years ago
Dean Camera
a34cccf099
Optimize unique serial number reading code for size -- remove atoi/toupper references, replace with hand-rolled code as the input has known size constraints.
16 years ago
Dean Camera
730624f745
Added new USE_INTERNAL_SERIAL define for using the unique serial numbers in some AVR models as the USB device's serial number, added NO_INTERNAL_SERIAL compile time option to turn off new serial number reading code. Updated Mass Storage and CDC based demos to use the new device serial number if the device it is compiled for supports it.
16 years ago
Dean Camera
9d506553aa
Trim unique serial number created by the USE_INTERNAL_SERIAL option to 12 characters rather than 20 - apparently Windows will implode if a serial number is too long.
16 years ago
Dean Camera
00d0883507
Added USE_INTERNAL_SERIAL compile time option to automatically read out the internal unique serial number as the device's serial number descriptor on supported AVR models.
16 years ago
Dean Camera
35bdada24b
Clean up RNDIS demo type define names.
16 years ago
Dean Camera
feabfd12ce
Fix makefiles -- the auto-addition of -D switches to each LUFA compile time option was faulty, due to GNUMake becomming confused by the spaces in the USE_STATIC_OPTIONS lines. Make user add in the switches explicitly instead.
16 years ago
Dean Camera
dfa547164a
Extend USB_GetDeviceConfigDescriptor() routine to require the configuration number within the device to fetch, to add support for multi-configuration devices.
16 years ago
Dean Camera
0d8679cf6b
Re-add in simple scheduler for compatibility with legacy code, mark all scheduler related files as deprecated.
16 years ago
Dean Camera
f896c00c48
Break device mode class driver interfaces into seperate config and state structs which are then combined, for clarity. Move device mode class driver interfaces back into the device mode class driver headers from the common class headers to make room for host class interfaces.
16 years ago
Dean Camera
e338cb6f32
Added new USB_Host_ClearPipeStall() convenience function to clear a stall condition on an attached device's endpoint.
...
Added new USB_Host_GetDeviceDescriptor() convenience function to retrieve the attached device's Device descriptor.
Make Pipe_ConfigurePipe() mask the given endpoint number against PIPE_EPNUM_MASK to ensure the endpoint IN direction bit is cleared to prevent endpoint type corruption.
Fix documentation mentioning Pipe_GetCurrentToken() function when real name is Pipe_GetPipeToken().
16 years ago
Dean Camera
dcf303762a
Pipe_GetErrorFlags() now returns additional error flags for overflow and underflow errors.
...
Change MIDI demos to use real MIDI command values, and shift for the USB wrapper, rather than shift for the MIDI bytes. This is a little confusing for the MIDI USB wrapper, but allows for the use of real standardized MIDI command values.
16 years ago
Dean Camera
39d07c3da0
Added USB Missle Launcher project, submitted by Dave Fletcher.
16 years ago
Dean Camera
b5ca3990c2
Added new USB_Host_SetDeviceConfiguration() convenience function. Change over Low Level host demos to use the new routine.
16 years ago
Dean Camera
84d7783350
Remove ConfigDescriptor.c/.h files from the ClassDriver Host demos, as they will be obsoleted when the Host mode class drivers are complete. Add new StillImage stub class driver common header.
16 years ago
Dean Camera
b61049f722
Fixed broken HIDReportParser.c.
16 years ago
Dean Camera
c75f8bf223
More Doxygen fixes - ensure no undocumented function parameters.
16 years ago
Dean Camera
b7049da11b
Enhanced class drivers to use the same public/private section seperations as other portions of the library.
16 years ago
Dean Camera
afe6ae1402
Add host mode USB Class driver stubs, add beginnings of a CDC host class driver.
...
Split out common defines/types from class drivers into a seperate common class driver directory.
Make central USB Class driver dispatch headers, used for both device and host modes.
16 years ago
Dean Camera
9fdc53d765
Fix errors from last commit.
16 years ago
Dean Camera
4d3a594f3e
Changed per-device controller preprocessor checks over to per-device series for better device control.
...
Fixed error in Endpoint.c using HSOFI rather than SOFI for counting elapsed milliseconds.
16 years ago
Dean Camera
9798440ca4
Changed to new device mode Class Driver function name prefixes to make way for similar host mode Class drivers.
16 years ago
Dean Camera
34f6e0dd33
Deleted Host ClassDriver demos -- not yet started, faster to rebase new ClassDriver demos from the newly schedulerless LowLevel host demos rather than re-convert each demo from the previous scheduler-based implementations.
...
Fixes to MassStorageHost demo to improve compatibility with more USB drives.
16 years ago
Dean Camera
ccf5bd19f2
Finished basic documentation of all device mode class drivers.
16 years ago
Dean Camera
1c12341cd7
Completed documentation of the HID device class driver.
16 years ago
Dean Camera
bde64666fb
Finished CDC device class driver documentation.
16 years ago
Dean Camera
ac70ddd0a1
Converted Host mode demos to schedulerless. Fixed host mode broken due to earlier Start-of-frame event experiments.
16 years ago
Dean Camera
6a7c298c0f
Synchronise with the 090605 release.
16 years ago
Dean Camera
3d1baa6f95
Added multiple Report ID support to the HID class driver. Removed OUT endpoint support from HID driver (all OUT reports are now processed through control requests) as a seperate endpoint had issues with determining the exact output report length.
16 years ago
Dean Camera
7665bf323e
Fixed EVENT_USB_CDC_ControLineStateChanged() event not taking the CDC interface structure as a parameter.
...
Converted TestApp demo over to the new demo structure.
More class driver documentation improvements.
16 years ago
Dean Camera
dc42c5eb6b
Added Doxygen documentation to the Audio class driver. Added new modules for each of the new device class drivers to the library documentation.
16 years ago
Dean Camera
4897ef8972
Ensure all USB device class drivers have the same three main functions as their interface for consistency.
16 years ago
Dean Camera
a67bd74e3e
Minor documentation page updates.
...
Redocumented all device demos, now that they have changed over to the new USB class drivers.
Added C linkage to class drivers for C++ support.
Added prefixes to most of the class driver constants to prevent name clashes.
16 years ago
Dean Camera
7c5444b89a
Removed new Start of Frame event from the library; performance suffered far too much and it was only useful in one of the standard classes (HID). Altered HID demos to use the previous method of tracking millisecond periods via a hardware timer rather than the SOF events.
...
Fixed MIDI class driver blocking on unread events to the host.
16 years ago
Dean Camera
74b7c07e96
Add MIDI class driver, update MIDI device demo to use the new USB class driver. All device demos/projects have now been converted to the new library class drivers, although documentation is yet to be completed.
16 years ago
Dean Camera
d1e5266036
Commit of new class abstraction APIs for all device demos other than the MIDI demo - not documented yet.
...
Removed scheduler and memory allocation libraries.
Added new EVENT_USB_StartOfFrame event in the library to indicate the start of each USB frame (when generated).
Removed Tx interrupt from the USBtoSerial demo; now sends characters via polling to ensure more time for the Rx interrupt.
16 years ago
Dean Camera
2440ca268a
Fix broken Host mode, from the recent API changes.
16 years ago
Dean Camera
7eb4eb7cdd
Fix all device mode demos broken in the recent API changes.
...
Change USBtoSerial Tx to polling-driven rather than interrupt driven, to ensure more time for the Rx interrupt to be serviced.
16 years ago
Dean Camera
d0806c817c
Deleted StdDescriptors.c, renamed USB_GetDescriptor() to CALLBACK_USB_GetDescriptor, moved ConfigDescriptor.c/.h from the LUFA/Drivers/USB/Class/ directory to LUFA/Drivers/USB/HighLevel/ in preperation for the new USB class APIs.
16 years ago
Dean Camera
b3a4d8512b
Fixed incorrect PID value being used in the USBtoSerial project (thanks to Phill).
16 years ago
Dean Camera
59becad82f
Fix broken doxygen reference in last commit.
16 years ago
Dean Camera
4a8ac5e474
USB_IsConnected is now cleared before the USB_Disconnect() event is fired in response to VBUS being removed.
...
Minor documentation improvements.
16 years ago
Dean Camera
2ee9fc7077
Rewritten event system to remove all macros, to make user code clearer.
...
Fixed incorrect ENDPOINT_EPNUM_MASK mask preventing endpoints above EP3 from being selected (thanks to Jonathan Oakley).
Removed STREAM_CALLBACK() macro - callbacks now use regular function definitions to clarify user code.
Removed DESCRIPTOR_COMPARATOR() macro - comparators should now use regular function definitions to clarify user code.
16 years ago
Dean Camera
72c2922e38
Removed DESCRIPTOR_ADDRESS() macro as it was largely supurflous and only served to obfuscate code.
16 years ago
Dean Camera
eeba38e343
Create a new function pointer type in StreamCallbacks.h for endpoint/pipe stream callbacks, to make stream function prototypes clearer.
16 years ago
Dean Camera
32f0f605ef
Removed all user pipe/endpoint interrupt APIs, added internal library support for interrupt driven control endpoints when in device mode by defining INTERRUPT_CONTROL_ENDPOINT token and passing it to the compiler via the -D switch.
16 years ago
Dean Camera
0d5baf9bb3
Fixed Device Mode not handling Set Feature and Clear Feature Chapter 9 requests that are addressed to the device (thanks to Brian Dickman).
16 years ago
Dean Camera
4904b10ef6
Moved USB Host state machine code out from USBTask.c and into Host.c, where it more properly belongs.
16 years ago
Dean Camera
958a1b4e2b
Fixed Mouse and Keyboard device demos not acting in accordance with the HID specification for idle periods (thanks to Brian Dickman).
...
Removed support for endpoint/pipe non-control interrupts; these did not act in the way users expected, and had many subtle issues.
16 years ago
Dean Camera
3f48497874
Fix broken Set Feature/Clear Feature chapter 9 request (incorrect status stage clearing).
...
Commit for the 090510 release.
16 years ago