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
Dean Camera
c1cfffd8eb
Fixed random enumeration failure while in device mode due to interrupts causing the Set Address request to exceed maximum timings.
2010-10-12 11:27:15 +00:00
Dean Camera
292a631b62
Added new NO_SOF_EVENTS compile time option, enabled in the bootloaders to reduce the compiled binary size.
2010-10-07 11:55:20 +00:00
Dean Camera
3ae9e6042f
Cache the USB_DeviceState variable internally in the library core when multiple checks are required in a single loop iteration, to reduce compiled code size.
2010-10-06 10:16:02 +00:00
Dean Camera
c8942ef469
Fixed LowLevel JoystickHostWithParser demo not saving the chosen HID interface's report descriptor size.
...
Simplified low level Host demo configuration descriptor parser routines.
2010-10-01 12:01:54 +00:00
Dean Camera
d06febbb59
Fix device mode for the U4 parts.
2010-10-01 11:22:24 +00:00
Dean Camera
383d167125
Whitespace corrections.
...
Make Printer Host mode Class driver interface descriptor search routine pre-cast the current interface descriptor to simplify the value checks.
2010-10-01 00:11:32 +00:00
Dean Camera
a1e453e900
Make Host mode Class drivers only set the class driver instance's state values once a compatible interface has been found within the device.
2010-09-30 23:23:05 +00:00
Dean Camera
86367574e6
Fix incorrectly named configuration descriptor callback routines in the host mode class drivers.
...
Fix typo in MIDI low level device demo.
2010-09-30 08:07:29 +00:00
Dean Camera
7166c7ba3e
Fix low level host mode demos not correctly fetching the next endpoint when an invalid interface is discarded.
...
Update the pipe configuration routines in the host mode class drivers so that they use the same new code to enumerate compatible devices to increase reliability. Add support to the host mode class drivers for non-sequential (but non-overlapping with other interface) pipe numbers.
2010-09-30 07:56:47 +00:00
Dean Camera
158afe9109
Reverted Endpoint/Pipe non-sequential configuration hack, placed restriction on the configuration order instead to ensure maximum reliability.
...
Altered all low level device and host mode demos to ensure that endpoints and pipes are configured in ascending order properly.
Rewrote all low level host mode demos' configuration descriptor parser code to ensure that pipes are enumerated in ascending order, and to ensure maximum compatibility with devices.
Incremented all device mode demo's device descriptor revision numbers to ensure that any descriptor changes are re-fetched on machines which have enumerated previous versions.
2010-09-30 06:23:38 +00:00
Dean Camera
a509729b2d
Changed default value for the reset polarity parameter in the AVRISP-MKII project so that it defaults to active low drive.
...
Fixed incorrect USB_DeviceState value when unconfiguring the device without an address set.
2010-09-29 13:56:52 +00:00
Dean Camera
c0e4f52e8f
Fix up incorrect version numbers in demo/project descriptors.
...
Add class name prefixes to missed constants in the class drivers to give all class driver elements a consistent namespace.
2010-09-28 14:59:16 +00:00
Dean Camera
713670043a
Move out many of the common class driver constants into grouped enums, to make them more managable.
...
Add new CDC descriptor structs to the CDC class driver, so that the CDC demos can use human readable field names.
Rename prefix for Still Image Host class driver functions from "SImage_" to "SI_" to remain consistent with the rest of the driver.
2010-09-28 12:14:06 +00:00
Dean Camera
b48095c0fb
Fixed endpoint selection within the CALLBACK_HID_Device_CreateHIDReport() callback function causing broken GET REPORT requests.
...
Minor whitespace fixes.
2010-09-24 06:34:43 +00:00
Dean Camera
5f3c4cc6e0
Reverted modifications to USBInterrupt.h that were intefering with correct host mode operation.
...
Fixed SUSPI interrupt not being cleared during device mode enumeration, causing accidental mis-fires on re-enumeration.
Fixed JTAG_DEBUG_POINT() and JTAG_DEBUG_BREAK() macros not compiling under pure C99 standards mode.
2010-09-22 04:20:45 +00:00
Dean Camera
c459ef6981
Oops - need to call USB_Attach() when reinitializing into USB Host mode, or no devices will be detected.
2010-09-21 14:06:39 +00:00
Dean Camera
5faa79a7b5
Fixed USB_Host_ClearPipeStall() incorrectly attempting to determine the endpoint's direction from the currently selected pipe.
2010-09-21 10:48:38 +00:00
Dean Camera
ed7067e89f
Rename internal suspend and wake up USB interrupt macros so that they follow the same naming scheme as the other USB ISR macros.
2010-09-19 08:42:30 +00:00
Dean Camera
d66a925786
Make device mode configure the control endpoint even before the bus has been reset, so that the device will enumerate correctly on hosts that do not reset the device before initial use.
2010-09-19 06:30:14 +00:00
Dean Camera
b17e87d140
More simplifications to USBController.c, fix errors and warnings when compiled for the series 2 USB AVRs.
2010-09-19 06:09:25 +00:00
Dean Camera
1621158c62
Fix warning when not compiled for UID auto-selection mode.
2010-09-19 06:00:45 +00:00
Dean Camera
e7e1c21bc5
Clean up USBController.c/.h to more clearly seperate out host and device setup and reset paths.
...
Make USBInterrupt.c process all pending USB host mode interrupts before resetting the bus, so that no interrupts are lost when in UID auto-selection mode.
2010-09-19 05:58:27 +00:00
Dean Camera
01fecac0a7
Ensure device address latch bit is not set at the same time as the new address, as per datasheet.
...
Minor documentation fixes.
Fix broken USB host mode due to the USB frame counter not being updated during the early enumeration steps, causing USB_Host_DelayMS() to spinloop forever.
2010-09-19 05:46:17 +00:00
Dean Camera
cce8760b91
Removed the EVENT_USB_InitFailure() event, as not specifying a USB mode to USB_Init() now defaults the controller into UID selection mode.
2010-09-15 13:11:28 +00:00
Dean Camera
0d57659fa6
Fix incorrect documentation on the Get Descriptor standard request.
2010-09-15 10:47:22 +00:00
Dean Camera
58167f5d4d
Fixed SET FEATURE and CLEAR FEATURE control requests directed at an unconfigured endpoint causing request timeouts.
2010-09-13 11:39:41 +00:00
Dean Camera
6b59c9b834
Minor documentation phrasing changes.
2010-09-12 12:20:36 +00:00
Dean Camera
12fb68ea1f
Added PRNT_Host_SendByte() and PRNT_Host_Flush() functions to the Host mode Printer Class driver.
...
Modified PRNT_Host_USBTask() to flush the output pipe on each call.
2010-09-11 04:09:48 +00:00
Dean Camera
4c49ee6885
Whitespace corrections.
2010-09-09 13:33:00 +00:00
Dean Camera
c166dfc64e
Added class specific descriptor type defines with standard USB-IF element naming.
2010-09-09 13:05:57 +00:00
Dean Camera
7aaf9b2036
Added new PRNT_Host_BytesReceived() and PRNT_Host_ReceiveByte() functions to the Print Host Class driver.
2010-09-07 03:38:11 +00:00
Dean Camera
6e011f88d9
Must save and restore the endpoint/pipe interrupt enable flags during reconfiguration of all endpoints/pipes in the Endpoint_ConfigureEndpoint() and Pipe_ConfigurePipe() routines.
2010-09-07 03:07:40 +00:00
Dean Camera
ebdb1b37ca
Fix bug in Pipe_ConfigurePipe() breaking already configured pipes that was accidentally clearing the pipe's IN mode.
2010-09-05 08:24:56 +00:00
Dean Camera
18cbd31605
Added new USB_Device_GetFrameNumber() and USB_Host_GetFrameNumber() functions to retrieve the current USB frame number.
...
Added new USB_Host_EnableSOFEvents(), USB_Host_DisableSOFEvents() and EVENT_USB_Host_StartOfFrame() for the user application handling of USB Start of Frame events while in USB Host mode.
Changed over all demos, drivers and internal functions to use the current frame number over the Start of Frame flag where possible to free up the Start of Frame flag for interrupt use in the user application.
2010-09-05 07:11:53 +00:00
Dean Camera
0174d8ea70
Reduced HOST_DEVICE_SETTLE_DELAY_MS to 1000ms down from 1500ms to improve device compatibility while in USB Host mode, as some devices will drop off the USB bus if no connection is made within a timeout period.
2010-09-04 10:17:09 +00:00
Dean Camera
b369aa2cc6
Added board hardware driver support for the Olimex AVR-USB-162 development board (thanks to Steve Fawcett).
2010-09-03 09:57:31 +00:00
Dean Camera
4dece08bef
Clarify in the project documentation files what the each of the different USB AVR device "series" comprises of.
2010-08-31 12:33:21 +00:00
Dean Camera
cd4c10fefa
Better documentation for the Endpoint_ConfigureEndpoint() and Pipe_ConfigurePipe() functions.
2010-08-24 13:57:55 +00:00
Dean Camera
b7b8a9edfa
Fixed LowLevel PrinterHost demo not sending control requests to the attached printer with the correct printer interface wIndex value.
2010-08-24 13:16:16 +00:00
Dean Camera
092f82e06f
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).
2010-08-24 13:02:38 +00:00
Dean Camera
ed8ad18f26
Fix Doxygen typos in Device.h.
2010-08-24 11:47:53 +00:00
Dean Camera
f6e1eaba75
Optimise Endpoint_ConfigureEndpoint_Prv() function to produce smaller code when CONTROL_ONLY_DEVICE compile time token is defined.
2010-08-22 13:54:51 +00:00
Dean Camera
e72f424f64
Split out endpoint and pipe stream functions into new EndpointStream.c/.h and PipeStream.c/.h files.
2010-08-22 13:31:27 +00:00
Dean Camera
4cc7f5200b
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.
2010-08-22 03:26:20 +00:00
Dean Camera
1be3436e89
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.
2010-08-22 02:45:20 +00:00
Dean Camera
81998ce297
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).
2010-08-22 01:42:09 +00:00
Dean Camera
e966219834
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.
2010-08-21 11:38:39 +00:00
Dean Camera
95079868bb
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).
2010-08-20 12:13:19 +00:00
Dean Camera
ad4308b1d1
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)
2010-08-20 11:03:25 +00:00
Dean Camera
f4de17207e
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.
2010-08-10 12:13:07 +00:00
Dean Camera
508e905d8d
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.
2010-08-09 10:20:10 +00:00
Dean Camera
ff09cf9c73
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.
2010-08-01 14:03:13 +00:00
Dean Camera
612df774d9
Oops - fix mixed "initialize" and "initialise" - opt for American spelling due to its wide use in technical standards.
2010-07-30 10:58:16 +00:00
Dean Camera
0f45b9c8e0
More spell checking of all source files -- correct missed errors, switch to EN-GB spelling dictionary.
2010-07-30 09:48:35 +00:00
Dean Camera
24e621a8d8
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.
2010-07-30 03:52:11 +00:00
Dean Camera
28401f7bb7
Spell check all source files once again to find any typos.
2010-07-29 16:20:45 +00:00
Dean Camera
059307d89c
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.
2010-07-27 13:49:16 +00:00
Dean Camera
be2a7d4598
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.
2010-07-27 11:26:47 +00:00
Dean Camera
cd39c38d5f
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.
2010-07-26 07:28:40 +00:00
Dean Camera
eb8a708b53
Update size of compiled Mouse demo in documentation, fix indenting in Device.h.
2010-07-23 03:25:19 +00:00
Dean Camera
9b0e4b8356
Convert over internal pseudo-function macros to true inline functions for added type-safety and compile-checking.
2010-07-22 15:38:12 +00:00
Dean Camera
83e293a6ec
Replace internal Pipe_BytesToEPSizeMask() routine with a new version which results in smaller code.
2010-07-21 14:17:18 +00:00
Dean Camera
97143bf814
Add missing const qualifiers to class drivers.
...
Indent core library function parameters so that there is only one parameter per line, to increase readability.
2010-07-21 14:00:51 +00:00
Dean Camera
99d8a39363
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.
2010-07-21 12:20:34 +00:00
Dean Camera
5f57785404
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.
2010-07-21 05:39:29 +00:00
Dean Camera
f9bcac5e00
Fixed MIDI_Device_SendEventPacket() not correctly waiting for the endpoint to become ready (thanks to Robin Green).
2010-07-20 06:59:13 +00:00
Dean Camera
6b5e684c77
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.
2010-07-19 14:00:44 +00:00
Dean Camera
f4710f6f86
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.
2010-07-15 16:45:26 +00:00
Dean Camera
7cef08e10e
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).
2010-07-15 01:42:36 +00:00
Dean Camera
0313034245
Added const attributes to some of the class driver function parameters that were missing it.
2010-07-13 10:01:13 +00:00
Dean Camera
1167b69943
Add missing eol-style properties to new source files.
2010-07-12 10:20:38 +00:00
Dean Camera
dea897ef57
Make main readme file easier to read, and make documentation build instructions clearer.
2010-07-06 07:07:54 +00:00
Dean Camera
8b053d6ba5
Added new Drivers/USB/LowLevel/Device.c file to house Device mode specific functions that are more complicated than simple macros. Moved USB_Device_SendRemoteWakeup() to the new Device.c source file and corrected it to unfreeze and restart the USB controller clock before issuing a Remote Wakeup request.
...
Removed the USB_Device_IsRemoteWakeupSent() and USB_Device_IsUSBSuspended() macros, as they are now obsolete.
2010-07-02 03:37:19 +00:00
Dean Camera
deed746d37
Renamed SERIAL_STREAM_ASSERT() macro to STDOUT_ASSERT().
...
Minor tweaks to the library documentation.
2010-06-17 08:15:58 +00:00
Dean Camera
711542ee89
Spell check code and manual pages. Remove custom Doxygen CSS stylesheet, as the new 1.7 Doxygen's default stylesheet is much better.
2010-06-16 11:01:01 +00:00
Dean Camera
dcedde0123
Fix HID parser documentation for the default maximum report/path/etc. elements so that it matches the current code values.
2010-06-15 03:40:02 +00:00
Dean Camera
a14ece5f57
Change over Doxygen \note documentation to \pre where applicable.
2010-06-15 03:34:55 +00:00
Dean Camera
036a156ff4
Slight improvements to the reliability of the software UART in the XPLAINBridge project.
2010-06-12 08:39:12 +00:00
Dean Camera
75d440ace3
Speed up calls to Pipe_IsPipeBound() by immediately skipping unconfigured pipes, rather than performing token check first.
2010-06-12 07:01:18 +00:00
Dean Camera
5ce3f0b17b
Add missing ATTR_NON_NULL_PTR_ARG and ATTR_ALWAYS_INLINE attributes to class driver functions.
2010-06-08 11:14:07 +00:00
Dean Camera
be09f64872
Fixed incorrect function references in the Mass Storage Class driver documentation.
2010-06-03 15:58:22 +00:00
Dean Camera
6d53cdba83
More documentation fixes.
2010-06-03 15:55:28 +00:00
Dean Camera
fc92f9969c
Minor documentation cleanups.
2010-06-03 15:32:45 +00:00
Dean Camera
5144ea76f6
Oops - descriptor pointer should be assigned, not incremented with the new type-safe code.
2010-06-02 15:44:48 +00:00
Dean Camera
6d22a00e8b
Better fix to avoid void pointer arithmetic in ConfigDescriptor.h to regain C++ compatibility (thanks to Michael Hennebry).
2010-06-02 15:28:07 +00:00
Dean Camera
f606afefff
Remove void* arithmetic in the USB_GetNextDescriptor() static inline function, to make the header file C++ compatible once again. Implement workaround for an obscure GCC bug which can cause incorrect code generation under some circumstances when the void* is re-cast.
2010-05-31 06:55:23 +00:00
Dean Camera
152b2764c3
Small tweaks to ConfigDescriptor.c/.h to ensure pointers use the correct type, and to remove const attribute from the descriptor comparator callback function pointer type define, and into the function prototype instead.
2010-05-30 14:01:41 +00:00
Dean Camera
e95c96ea20
Fixed internal device serial not being accessible on the ATMEGAXXU2 AVRs (thanks to Axel Rohde).
2010-05-30 07:29:18 +00:00
Dean Camera
328ed71ce7
Fix spacing of the function parameter descriptions in the Doxygen documentation.
2010-05-29 08:08:26 +00:00
Dean Camera
670413603f
The EEPROM stream read/write functions now use eeprom_update_byte() instead of eeprom_write_byte(), so that only changed bytes are written to EEPROM to preserve its lifespan.
...
Changed over the AVRISP-MKII and TemperatureDataLogger projects to use eeprom_update_byte() when writing non-volatile parameters to EEPROM to preserve its lifespan.
2010-05-26 11:54:55 +00:00
Dean Camera
34047efc7e
Remove incorrect check for the current device state in the Set Configuration request handler of DevChapter9, which broke Set Configuration requests to the device under most circumstances.
...
Move out the SPI prescaler list to a PROGMEM module-level variable in ISPTarget.c.
2010-05-13 12:57:49 +00:00
Dean Camera
1331cce08a
Fixed possible device lockup when INTERRUPT_CONTROL_ENDPOINT is enabled and the control endpoint is not properly selected when the ISR completes.
2010-05-13 07:43:18 +00:00
Dean Camera
ee5ea4ce2b
Fix nasty bug in USBInterrupt.c which would cause a lockup if the control endpoint was not selected at the point the USB endpoint interrupt fires when INTERRUPT_CONTROL_ENDPOINT is defined.
2010-05-11 13:45:23 +00:00
Dean Camera
05ac59d0ee
Add new ReportType parameter to the HID class driver device callback and host report sending routines.
...
Renamed internal Host mode Class driver descriptor comparator callback routines so that they all start with a uniform DCOMP_{Class Abbreviation}_ prefix.
2010-05-09 06:01:01 +00:00
Dean Camera
071e02c6b6
Add svn:eol-style property to source files, so that the line endings are correctly converted to the target system's native end of line style.
2010-05-08 03:12:14 +00:00
Dean Camera
a9e0935a90
Device mode class driver callbacks are now fired before the control request status stage is sent to prevent the host from timing out if another request is immediately fired and the device has a lengthy callback routine.
...
Inlined currently unused MIDI ProcessControlRequest routine.
2010-05-07 06:54:08 +00:00
Dean Camera
27eb17cb93
Change over unix line-endings to dos line endings.
2010-05-07 06:40:47 +00:00
Dean Camera
842e219bf3
Added new EVENT_CDC_Device_BreakSent() event and CDC_Host_SendBreak() function to the Device and Host CDC Class drivers.
2010-05-06 11:56:34 +00:00
Dean Camera
cde2afc50e
Ensure that the CDC class drivers return 0 if the number of unread bytes is queried and the bank has become empty.
2010-05-06 11:13:24 +00:00
Dean Camera
708a1c6166
Fixed INTERRUPT_CONTROL_ENDPOINT compile time option preventing other interrupts from occuring while the control endpoint request is being processed, causing possible lockups if a USB interrupt occurs during a transfer.
2010-05-04 10:16:44 +00:00
Dean Camera
e652cfac67
Fixed Host mode HID class driver not sending the correct report type when HID_Host_SendReportByID() was called and the HID_HOST_BOOT_PROTOCOL_ONLY compile time option is set.
2010-05-04 10:10:41 +00:00
Dean Camera
27f0ba6fc3
Fixed device state not being reset back to the default state if the host sets the address to 0x00.
...
Fixed Set Configuration requests not being stalled until the host has set the device's address.
Fixed possibility of internal signature retrieval being corrupted if an interrupt occurs during a signature byte read (thanks to Andrei Krainev).
2010-05-04 10:07:22 +00:00
Dean Camera
eed7d4df6a
Added new ENDPOINT_*_BusSuspended error code to the Endpoint function, so that the stream functions early-abort if the bus is suspended before or during a transfer.
2010-05-03 07:41:22 +00:00
Dean Camera
9cad677ebb
The Audio_Device_IsSampleReceived() and Audio_Device_IsReadyForNextSample() functions are now inline, to reduce overhead.
2010-04-29 14:54:11 +00:00
Dean Camera
9e34144c9b
Use puts_P() and printf_P() instead of the normal variants where possible in the Host mode Class Driver demos.
2010-04-28 14:33:10 +00:00
Dean Camera
0063f72117
Oops - relocated USBInterrupt.h header file requires adjusted include paths for the other USB driver header files.
2010-04-28 08:20:15 +00:00
Dean Camera
e977774d4e
Relocate USBInterrupt.c/.h from the HighLevel USB driver directory to the LowLevel directory as it is hardware-dependent.
2010-04-28 08:15:16 +00:00
Dean Camera
59c4871f80
USB_Init() no longer calls sei() to enable global interrupts - this must now be done in the user application once all init code has run.
2010-04-28 07:48:26 +00:00
Dean Camera
8252b4febd
Fixed HID Device Class Driver not allocating a temporary buffer when the host requests a report via the control endpoint and the user has set the PrevReportINBuffer driver configuration element to NULL (thanks to Lars Noschinski).
...
Clean up incomplete BluetoothHost debugging commands to use GCC extension to avoid NULL parameters when no formatting is required.
2010-04-20 08:52:51 +00:00
Dean Camera
3eb81df998
Rename FunctionAttributes.h to Attributes.h, as some attributes are applicable to variables also. Add new ATTR_NOINIT attribute for global variables.
...
Add the beginnings of a SDP implentation to the incomplete BluetoothHost demo.
Add const attribute to the Mass Storage Host driver functions where it was applicable, but missing.
2010-04-15 11:04:24 +00:00
Dean Camera
5e14c194c9
Fixed Set/Clear Feature requests directed to a non-configured endpoint not returning a stall to the host.
...
Make TeensyHID bootloader use an 8 byte control endpoint to match the official Teensy, just in case Paul decides to authenticate on that attribute in the future.
2010-04-14 13:46:49 +00:00
Dean Camera
7b79325aa0
Removed two-step endpoint/pipe bank clear and switch sequence for smaller, faster endpoint/pipe code.
...
Added spacing between multiple paragraphs in Doxygen \note sections.
Removed call to the clock prescaler reset function in the Teensy bootloader to save space - the user application is accessed via a watchdog reset anyway, so the prescale reset would only affect the speed of the bootloader itself.
2010-04-13 23:29:11 +00:00
Dean Camera
9257f4ab8e
Add briefs for the library core structures.
2010-03-29 13:32:36 +00:00
Dean Camera
0557676013
Add file-level brief documentation.
...
Remove accidentally duplicated model-specific peripheral driver files.
2010-03-29 07:49:58 +00:00
Dean Camera
74353374c3
All Class Driver Host mode demos now correctly set the board LEDs to READY once the enumeration process has completed.
...
Fixed Still Image Host class driver not resetting the transaction ID when a new session is opened, fixed driver not sending a valid session ID to the device.
2010-03-25 06:34:38 +00:00
Dean Camera
c2de01b661
Fixed incorrect definition of HID_ALIGN_DATA() causing incorrect HID report item data alignment.
2010-03-24 05:58:20 +00:00
Dean Camera
f79f9abd28
Fixed compilation error in the AudioInput demos when MICROPHONE_BIASED_TO_HALF_RAIL is defined (thanks to C. Scott Ananian).
...
Minor documentation cleanups.
Make sure HID class driver uses properly cast pointers when writing to the report buffer.
2010-03-24 05:50:09 +00:00
Dean Camera
9a5ae36a4f
Software PDI mode breaks unless the software USART has 100 cycles between bits.
2010-03-17 11:48:39 +00:00
Dean Camera
92418433a5
Fix incorrect LED mask name in the Webserver project.
...
Fix missing text from the Host Mode States enum documentation.
2010-03-09 13:22:51 +00:00
Dean Camera
14a5a94084
Fix incorrect error when directly including the LUFA internal USB library components.
2010-02-24 07:01:59 +00:00
Dean Camera
071fd8ce53
Revert changes made for the partial port to the AVR32 architecture.
2010-02-24 06:58:23 +00:00
Dean Camera
a7aaa45ec4
More AVR32 achitecture ports.
2010-02-24 06:21:46 +00:00
Dean Camera
3702ba1fb3
More porting of the USB core to the AVR32.
2010-02-23 14:46:11 +00:00
Dean Camera
0e6d5cf5b4
Start porting the USB core to the AVR32 UC3B.
2010-02-23 07:13:29 +00:00
Dean Camera
012628f635
Turn OFF double banking in the Webserver demo - leaving it on seems to destroy the system throughput.
2010-02-18 05:10:24 +00:00
Dean Camera
67cb070810
Fix HID Host Class driver sending incorrect ReportType values to the device when issuing requests via the control pipe.
2010-02-14 22:13:11 +00:00
Dean Camera
d49cc0f783
Add more include protection macros to give the user warnings when they try to manually include private driver header files, instead of the public driver headers.
2010-02-11 04:05:02 +00:00
Dean Camera
35a0fe9384
Fixed USB_GetHIDReportSize() returning the number of bits in the specified report instead of bytes.
...
Moved the USB_GetHIDReportItemInfo() calls into the main report item passing loop in the *HostWithParser demos - it is fast enough not to effect performance, and avoids duplicate code.
Make Webserver project report the LUFA version as part of the HTTP header.
2010-02-09 12:30:51 +00:00
Dean Camera
7ae91099e9
Fix AVRISP-MKII clone project's TPI Chip Erase command processing - ensure erase location is the high byte in the given address space, check NVMBUSY for completion rather than the NVM Bus Enable bit.
...
Change If-Else chains over to switch statements in XPROGProtocol.c for clarity.
2010-02-08 03:16:09 +00:00
Dean Camera
0c5d6f5f97
Added Keyboard LED report masks (KEYBOARD_LED_*) to the HID class driver and demos.
2010-02-07 13:56:36 +00:00
Dean Camera
196724c62d
Added keyboard modifier masks (HID_KEYBOARD_MODIFER_*) to the HID class driver and Keyboard demos.
2010-02-07 07:31:53 +00:00
Dean Camera
a96d77eca7
Add documentation to the USB Class Drivers module on how to use the Host mode class drivers.
2010-02-02 14:02:18 +00:00
Dean Camera
84e1241f80
Replace the Webserver demo's uIP with the latest code ripped from the Contiki project by Adam Dunkels.
2010-02-02 12:51:05 +00:00
Dean Camera
4d246a82cb
Fixed incorrect values of USB_CONFIG_ATTR_SELFPOWERED and USB_CONFIG_ATTR_REMOTEWAKEUP tokens (thanks to Claus Christensen).
...
Mark the AVRISP-MKII project descriptors as being both Bus Powered and Device Powered.
Copy over file level documentation of the peripheral drivers to the module level documentation.
2010-02-01 12:35:48 +00:00
Dean Camera
b6a4584a19
Fixed Pipe_IsEndpointBound() function not taking the endpoint's direction into account.
...
Re-added Pipe_IsEndpointBound() calls to the CDC and RNDIS host class drivers, not that the function has the correct behaviour for devices with bidirectional endpoints.
2010-02-01 01:27:00 +00:00
Dean Camera
d26a9ed5fd
Be doubly-certain that the incomming CDC class driver's endpoint/pipe is flushed only once when the bank is empty.
2010-01-28 06:37:26 +00:00
Dean Camera
431db89b00
Fixed CDC and RNDIS host demos and class drivers - bidirectional endpoints should use two seperate pipes, not one half-duplex pipe.
2010-01-25 11:50:41 +00:00
Dean Camera
74b6993d66
Cleanup and partially fix AVRISP-MKII project's TPI programming support.
2010-01-25 04:13:44 +00:00
Dean Camera
f3d370a777
Clean up and add more comments to the AVRISP-MKII project. Make sure the SPI_MULTI command handler supports multiple packet responses. Use slightly smaller/faster repeated indirect-load commands when retrieving the PDI target's memory CRCs.
2010-01-17 04:39:33 +00:00
Dean Camera
b0ce1eab66
Fix incorrect preprocessor checks in the PLL prescaler mask determination code for the ATMEGA32U2.
2010-01-16 00:40:52 +00:00
Dean Camera
77dda302ac
Fixed invalid USB controller PLL prescaler values for the ATMEGAxxU2 controllers
...
Fixed lack of support for the ATMEGA32U2 in the DFU and CDC class bootloaders
Changed incomplete Webserver project over to using the uIP timer library.
2010-01-15 02:42:54 +00:00
Dean Camera
89e4d73289
Fixed incorrect interface values in the VirtualSerialMouse and KeyboardMouse demo class driver structures.
...
Added caveat information to the CDC device class driver.
2010-01-12 00:42:00 +00:00
Dean Camera
a56d95e8c2
Fix XPLAIN Dataflash and LED drivers.
2010-01-07 12:38:32 +00:00
Dean Camera
d97db1120b
Added support to the MIDI Class drivers for packed data, where multiple MIDI events are packed into a single USB packet. Added new MIDI Class driver flush routines to override packing behaviour.
2010-01-05 13:52:34 +00:00
Dean Camera
60e9641222
Inline USB management functions in the Class drivers which are standardized but currently unused, to prevent them from using up unneccesary cycles and flash in the user application.
2010-01-05 04:50:18 +00:00
Dean Camera
6122ba93cf
Fix MassStorageKeyboard demo USE_INTERNAL_SERIAL check being performed before the required library headers were included, causing a compilation error.
...
Added notes to the class driver functions indicating which functions require what Device/Host state machine states to function.
2010-01-04 13:34:02 +00:00
Dean Camera
1e1cf2c499
Fix CDC blocking streams in Host mode locking up when the device is removed.
2010-01-04 00:33:31 +00:00
Dean Camera
71e5bcee3d
Fixed blocking CDC streams not aborting when the host is disconnected.
2010-01-04 00:14:09 +00:00
Dean Camera
58a39c6666
Clean up MassStorageKeyboard demo.
2010-01-03 03:48:40 +00:00
Dean Camera
7f9f97c792
Update copyright year to 2010.
2009-12-30 23:49:19 +00:00
Dean Camera
d4ca7fb44c
Fix MIT license language to make its intent clearer.
2009-12-28 00:34:20 +00:00
Dean Camera
d4952265a6
Ensure that unsupported SetFeature/ClearFeature request targets cause a STALL back to the host.
2009-12-21 08:29:12 +00:00
Dean Camera
8b75659563
Added new NO_DEVICE_SELF_POWER and NO_DEVICE_REMOTE_WAKEUP compile time options.
2009-12-20 13:00:49 +00:00
Dean Camera
2cab8f0725
Fixed USB_CurrentMode not being reset to USB_MODE_NONE when the USB interface is shut down and both Host and Device modes can be used (thanks to Daniel Levy).
2009-12-18 00:32:21 +00:00
Dean Camera
c3758ac5ef
Un-inline the SendAddress function in NVMTarget.c/.h of the AVRISP project.
...
Add new HotmailNotifier project, which changes a LED's colour based on the user's unread email count as sent from Windows Live Messenger.
2009-12-17 10:02:19 +00:00
Dean Camera
108a22a66a
The SImage_Host_SendBlockHeader() and SImage_Host_ReceiveBlockHeader() Still Image Host Class driver functions are now public.
2009-12-16 04:03:08 +00:00
Dean Camera
79efd8c79e
Fix a bug in the Still Image Host Class driver where the returned block status code was being truncated.
...
Add programming support to the AVRISP project's PDI programming mode; paged memory writes are not currently functional.
2009-12-15 05:17:52 +00:00
Dean Camera
6648234157
Test with -Wextra, fix library warnings due to unused function parameters.
2009-12-13 14:43:34 +00:00
Dean Camera
32b7762325
Oops - wrong casting on the Configuration Descriptor pointer advance routine.
2009-12-13 14:16:29 +00:00
Dean Camera
3705330dd3
Use -pedantic compile time option to find and correct several minor code errors.
2009-12-13 14:09:25 +00:00
Dean Camera
9c8ed168e5
Fix inverted bit-banged USART logic in the AVRISP project for PDI programming. Add a delay to the clock toggling in the AVRISP project to ensure that the programming speed does not exceed 10MHz under any conditions to satisfy the limits in the datasheet for all target voltages. Fix incorrect pin being used as the DATA in in PDI programming mode.
2009-12-09 12:01:01 +00:00
Dean Camera
e4cfd5208f
Fix incorrect definition of Endpoint_BytesInEndpoint() for the U4 parts.
2009-12-09 07:09:52 +00:00
Dean Camera
7ace314cc1
Increase timeout of Mass Storage and Still Image host commands to 10 seconds (up from 5) to account for slow-processing devices.
...
Added brace guards to macros with parameters to prevent unintended changed evaluation of the macro expression.
Minor code cleanups (remove redundant comments, fix spacing, etc.).
2009-12-09 00:50:55 +00:00
Dean Camera
c1fa230618
Add new USB_Host_GetDeviceStringDescriptor() convenience function.
2009-12-06 13:37:30 +00:00
Dean Camera
c49bdcb7c9
Fixed Mass Storage Host Class driver and Low Level demo not clearing the error condition if an attached device returns a STALL to a GET MAX LUN request (thanks to Martin Luxen).
2009-12-04 09:08:48 +00:00
Dean Camera
7e86387958
Fix double oops -- Host mode settle delay was still being ignored due to inverted logic, HID Parser was assigning the usage Min/Max usage value to the report item's collection path rather than the report item itself.
2009-12-04 02:06:38 +00:00
Dean Camera
a925407588
Oops - fix Host mode pre-enumeration settle delay being ignored leading to failure to enumerate certain devices.
2009-12-04 01:29:20 +00:00
Dean Camera
d6e3259f8b
Fix incorrect const'ness of the ReportItem parameter in USB_SetHIDReportItemInfo().
2009-12-04 01:09:39 +00:00
Dean Camera
2919aeeaab
Fixed HID Parser not distributing the Usage Min and Usage Max values across an array of report items.
...
Added new HID_ALIGN_DATA() macro to return the pre-retrieved value of a HID report item, left-aligned to a given datatype.
Added new PreviousValue to the HID Report Parser report item structure, for easy monitoring of previous report item values.
2009-12-04 01:06:26 +00:00
Dean Camera
1b2cd16976
Added CDC_Host_Flush() function to the CDC Host Class driver to flush sent data to the attached device.
2009-11-30 02:20:26 +00:00
Dean Camera
b7f6a65c25
Fixed USB driver failing to define the PLL prescaler mask for the ATMEGA8U2 and ATMEGA16U2.
...
Simplified the USB.h master include file's target validity checks.
2009-11-29 07:41:54 +00:00
Dean Camera
414b92e812
Add to the existing CDC Class Driver's CreateStream() function documentation to explicitly state that the created streams are bidirectional.
2009-11-29 05:19:41 +00:00
Dean Camera
958d28d05d
Better checking of whether a packet is received in the RNDISEthernetHost Class driver demo - show busy LED status while packets are being printed out.
2009-11-27 06:32:26 +00:00
Dean Camera
5e46801096
Complete RNDIS Host Class driver code - add SendPacket function.
...
Correct CDC Host Class driver token handling for sending data on bidirectional data endpoints.
2009-11-26 11:40:15 +00:00
Dean Camera
f6de4db000
Remove documentation of deleted parameters from the RNDIS Host Class driver's device Initialize function.
2009-11-26 05:08:00 +00:00
Dean Camera
04e177b66e
Fix RNDIS Device Class driver - RNDISConstants.h has moved out to the Common Class driver directory.
2009-11-26 04:50:15 +00:00
Dean Camera
5aa2b26261
Added new RNDIS Host class driver and the beginnings of a RNDISEthernetHost Class Driver demo.
...
Fixed all Class drivers to ensure they have appropriate guards on each function to ensure the device is enumerated before running, fixed error codes on all guards to return "DeviceDisconnected" where possble.
Renamed HOST_SENDCONTROL_DeviceDisconnect enum value to HOST_SENDCONTROL_DeviceDisconnected to be in line with the rest of the library enum error codes.
2009-11-26 04:46:31 +00:00
Dean Camera
ab602a8b48
Fix typo in the StillImageHost LowLevel demo, and the CDC Host Class Driver.
2009-11-25 04:23:40 +00:00
Dean Camera
50f4a3b625
Fix build and Doxygen errors.
2009-11-25 03:56:51 +00:00
Dean Camera
8c6c27d88b
Added new RNDISHost Host LowLevel demo. Fixed misnamed Pipe_SetPipeToken() macro for setting a pipe's direction. Fixed CDCHost failing on devices with bidirectional endpoints.
2009-11-25 03:26:57 +00:00
Dean Camera
c05c7c7df4
Added new XPLAIN serial Bridge project (thanks to John Steggall for the software UART code).
2009-11-25 00:36:18 +00:00
Dean Camera
59ed10273c
Fixed host state machine not enabling Auto VBUS mode when HOST_DEVICE_SETTLE_DELAY_MS is set to zero.
2009-11-24 08:54:41 +00:00
Dean Camera
e4bf986bb3
Fixed broken USB_GetNextDescriptor() function causing the descriptor to jump ahead double the expected amount.
...
Fixed Pipe_IsEndpointBound() not masking the given Endpoint Address against PIPE_EPNUM_MASK.
2009-11-24 01:56:59 +00:00
Dean Camera
702bec892d
Fixed misnamed SI_Host_USBTask() and SI_Host_ConfigurePipes() functions.
2009-11-23 13:35:52 +00:00
Dean Camera
8b009bc113
Added new ReportType parameter to the HID Device Class driver CALLBACK_HID_Device_CreateHIDReport() callback to indicate the report type to generate.
2009-11-23 13:22:33 +00:00
Dean Camera
c438d01f87
Fixed incorrect values for REPORT_ITEM_TYPE_* enum values causing corrupt data in the HID Host Parser.
2009-11-23 13:01:50 +00:00
Dean Camera
aaa0bed556
The incomplete StandaloneProgrammer project now uses Host and Device Mass storage classes, so that program data can either be loaded onto the device's Dataflash storage, or read off an attached USB memory stick.
...
The USB target family and allowable USB mode tokens are now public and documented (USB_CAN_BE_*, USB_SERIES_*_AVR).
The SCSI_Request_Sense_Response_t and SCSI_Inquiry_Response_t type defines are now part of the Mass Storage Class driver common defines, rather than being defined in the Host mode Class driver section only.
The USB_MODE_HOST token is now defined even when host mode is not available.
Added missing CDC_Host_CreateBlockingStream() function code to the CDC Host Class driver.
2009-11-23 12:40:14 +00:00
Dean Camera
6c38ca2890
Fixed Endpoint_Write_Control_Stream_* functions not sending a terminating IN when the given data length is zero.
2009-11-20 06:56:43 +00:00
Dean Camera
d753512cca
Fix doxygen documentation - doxygen was getting confused on the variable-length ATTR_NON_NULL_PTR_ARG() macro used on function prototypes and was generating many return types for several functions in the documentation (thanks to David Lyons).
2009-11-17 11:28:07 +00:00
Dean Camera
9b20114555
Make RNDISHost demo validate the set Packet Filter to ensure that it is being sent correctly.
...
Add new (incomplete) StandaloneProgrammer project, using the ELM Petite FAT library to read files stored on the board's dataflash by the host.
2009-11-17 10:32:17 +00:00
Dean Camera
79e54580ae
Fixed HOST_STATE_AS_GPIOR being ignored whilst in Host mode (thanks to David Lyons).
2009-11-16 05:45:05 +00:00
Dean Camera
ea5236b3e1
Fix incorrect compiler error message when F_CLOCK is not defined by the user (thanks to Dave Lyons).
2009-11-15 13:09:02 +00:00
Dean Camera
21cc9c9e19
Cleanups to the MassStorage Device demos, and the MassStorage Device Class driver.
2009-11-15 12:50:23 +00:00
Dean Camera
588886878e
Corrections, improvements and additions to the incomplete RNDISHost demo.
...
Change device demos which use the joystick to use the natural UP, DOWN, LEFT, RIGHT ordering in all demos when checking the joystick's position.
2009-11-13 13:24:04 +00:00
Dean Camera
e625fd6df3
Corrected the name of the misnamed USB_GetDeviceConfigDescriptor() function to USB_Host_GetDeviceConfigDescriptor().
2009-11-13 10:07:25 +00:00
Dean Camera
652042111c
Add blocking versions of the CDC Class driver streams, for applications requiring blocking reads.
2009-11-12 12:47:15 +00:00
Dean Camera
6a46f0025a
Add beginnings of a RNDIS Ethernet Host demo.
2009-11-12 10:43:07 +00:00
Dean Camera
04774208b6
Minor code cleanups for clarity.
2009-11-11 09:09:39 +00:00
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.
2009-11-10 11:24:15 +00:00
Dean Camera
c1782ac024
Added new stream creation function to the CDC Class drivers, to easily make standard streams from CDC Class driver instances.
2009-11-10 06:22:03 +00:00
Dean Camera
d6edfe35c8
Spell check all source code variables, comments and strings.
2009-11-09 13:15:28 +00:00
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.
2009-11-09 08:24:01 +00:00
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.
2009-11-08 21:56:18 +00:00
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.
2009-11-07 07:23:03 +00:00
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.
2009-11-07 03:51:24 +00:00
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.
2009-11-06 14:32:01 +00:00
Dean Camera
f7ab433c67
Add optional double-banking support to the Device mode Class Drivers, on a per-endpoint, per-interface level.
2009-11-06 13:43:18 +00:00
Dean Camera
1c7aa68596
Add other missing Printer.h main class driver dispatch file.
2009-11-04 13:23:47 +00:00
Dean Camera
4563350628
Add missing Printer.h common class driver file.
2009-11-04 13:22:38 +00:00
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.
2009-11-04 13:16:53 +00:00
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.
2009-11-04 07:14:38 +00:00
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.
2009-11-04 04:17:11 +00:00
Dean Camera
5832bab02f
Rename the AT90USBXXX67 internal driver directory to AVRU4U6U7.
2009-11-03 11:11:51 +00:00
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.
2009-11-03 02:06:13 +00:00
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.
2009-10-26 11:44:36 +00:00
Dean Camera
cf610c5c91
Make HID device class driver reselect the correct endpoint after the user callbacks have fired.
2009-10-26 05:27:59 +00:00
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.
2009-10-18 05:35:48 +00:00
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.
2009-10-14 09:42:11 +00:00
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.
2009-10-08 08:46:27 +00:00
Dean Camera
09575f9607
Fix accidentally changed code breaking the HID descriptor parser.
2009-10-05 05:20:30 +00:00
Dean Camera
046fff2aff
Fix broken Endpoint/Pipe stream templates.
...
Simplify AudioOutput demos, to reduce the number of cycles needed to process each incomming sample.
2009-10-04 07:57:15 +00:00
Dean Camera
db435c4995
Minor documentation fixups.
2009-10-03 15:30:29 +00:00
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.
2009-10-03 07:59:32 +00:00
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.
2009-09-30 08:16:42 +00:00
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.
2009-09-30 07:58:17 +00:00
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.
2009-09-30 04:40:36 +00:00
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).
2009-09-28 15:56:27 +00:00
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.
2009-09-24 02:05:33 +00:00
Dean Camera
573a27d90a
Fix incorrect names for the HID Host protocol setting routines.
2009-09-24 01:52:57 +00:00
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.
2009-09-22 08:07:48 +00:00
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.
2009-09-21 12:23:09 +00:00
Dean Camera
3ffa7543a0
Finish initial draft of the Host Mode HID Class driver.
...
Add new MouseHostWithParser and KeyboardHostWithParser Host Class driver demos.
2009-09-21 10:49:06 +00:00
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.
2009-09-21 06:08:39 +00:00
Dean Camera
7478b387a9
Oops - Keyboard boot report structure should be an array of 6 keycodes.
2009-09-20 13:01:45 +00:00
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.
2009-09-20 12:34:07 +00:00
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.
2009-09-20 12:01:25 +00:00
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.
2009-09-17 23:34:16 +00:00
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.
2009-09-17 13:12:21 +00:00
Dean Camera
eee712f769
Fixed MIDI Device Class driver not sending/receiving MIDI packets of the correct size (thanks to Thomas Bleeker).
2009-09-14 05:57:17 +00:00
Dean Camera
81b618be23
Revert changed CDC_Device_Flush() prototype accidentially changed in the last commit.
2009-09-10 07:05:26 +00:00
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.
2009-09-10 06:41:57 +00:00
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.
2009-09-09 13:17:04 +00:00
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.
2009-09-09 08:34:24 +00:00
Dean Camera
d2068d878c
Finish Still Image Host class driver.
2009-09-09 04:18:37 +00:00
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.
2009-09-07 07:57:00 +00:00
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.
2009-09-06 04:15:35 +00:00
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".
2009-09-02 13:08:55 +00:00
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.
2009-09-02 07:16:52 +00:00
Dean Camera
0fdc1a2bc6
Changed HIDParser to only zero out important values in the Parsed HID Report Item Information structure to save cycles.
2009-09-01 15:46:46 +00:00
Dean Camera
0e2ffebb82
Added documentation for the constants and enums of the new StillImage Host Class driver added to the library so far.
2009-09-01 13:47:11 +00:00
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.
2009-09-01 13:35:30 +00:00
Dean Camera
dac7b046fd
Add return codes to the CDC Host Class driver String/Byte transmission functions.
2009-08-31 13:58:03 +00:00
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.
2009-08-31 12:43:28 +00:00
Dean Camera
778da9dc6d
Removed unused INCLUDE_FROM_BOARD_DRIVER internal define from the board driver dispatch headers.
2009-08-31 08:35:52 +00:00
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.
2009-08-31 07:48:32 +00:00
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.
2009-08-30 11:40:26 +00:00
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.
2009-08-30 11:36:04 +00:00
Dean Camera
0d3a3f7536
Remove skeleton Audio and MIDI Host mode Class drivers -- will not implement in next release.
2009-08-30 10:43:41 +00:00
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.
2009-08-27 22:34:41 +00:00
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).
2009-08-27 13:12:44 +00:00
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.
2009-08-27 11:43:37 +00:00
Dean Camera
f52b265090
Simplified Host mode Mass Storage Class driver to reduce compiled program size.
2009-08-27 08:17:06 +00:00
Dean Camera
754ea083d4
Fix memory corruption in Host mode Mass Storage Class driver.
2009-08-27 08:01:33 +00:00
Dean Camera
cd2dcc9163
Added better USB Class driver overviews.
2009-08-27 07:48:48 +00:00
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.
2009-08-27 07:38:40 +00:00
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.
2009-08-27 07:10:00 +00:00
Dean Camera
665fe11f12
Fixed Device mode HID Class driver always sending IN reports, even when no data is to be reported.
2009-08-27 06:36:01 +00:00
Dean Camera
8ea5c631c8
Minor documentation fixes to the completed Host mode Class drivers.
2009-08-27 06:32:12 +00:00
Dean Camera
f890592806
Completed initial Host mode Mass Storage class driver.
2009-08-27 06:28:18 +00:00
Dean Camera
559ca2ba04
Added MS_Host_TestUnitReady() and MS_Host_ReadDeviceCapacity() to the host mode Mass Storage Class driver.
2009-08-26 08:20:55 +00:00
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.
2009-08-26 07:51:40 +00:00
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.
2009-08-26 07:34:31 +00:00
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.
2009-08-26 07:01:32 +00:00
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.
2009-08-25 14:30:42 +00:00
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.
2009-08-25 08:09:49 +00:00
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.
2009-08-20 07:16:55 +00:00
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.
2009-08-18 07:42:19 +00:00
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.
2009-08-17 12:38:24 +00:00
Dean Camera
09bedd6555
Added return values to the CDC and MIDI class driver transmit functions.
2009-08-16 14:30:46 +00:00
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.
2009-08-16 08:51:54 +00:00
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.
2009-08-13 06:43:17 +00:00
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.
2009-08-11 11:19:22 +00:00
Dean Camera
a7ade9f28d
Add CDC Host class driver EVENT_CDC_Host_ControLineStateChanged() event.
...
Minor documentation fixes.
2009-08-11 10:02:50 +00:00
Dean Camera
abc7dce10c
Document CDC Host class driver functions and enums.
2009-08-11 09:54:22 +00:00
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.
2009-08-11 09:12:29 +00:00
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.
2009-08-11 08:36:25 +00:00
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.
2009-08-11 02:09:11 +00:00
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.
2009-08-11 01:52:15 +00:00
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.
2009-08-07 06:55:31 +00:00
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.
2009-08-07 00:27:11 +00:00
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.
2009-08-06 14:22:04 +00:00