Commit Graph

685 Commits

Author SHA1 Message Date
Dean Camera cad5e9ffca Added start of a port of the core USB driver code to the AVR32 UC3B architecture. 2011-02-20 17:53:17 +00:00
Dean Camera f3ec62b5c6 More updates to remove architecture-specific comments from the documentation, alter USBMode.h preprocessor logic to support future architectures more easily. 2011-02-20 14:43:13 +00:00
Dean Camera 28a1ee29a1 More Doxygen updates for multiple architecture support. 2011-02-20 14:07:20 +00:00
Dean Camera 5e73190582 Start update of documentation to support possible multiple architectures in the future - alter \file documentation to automatically copy in the module documentation where possible. 2011-02-20 13:08:29 +00:00
Dean Camera 1daa5e16f9 Initial restructuring of the core USB driver module to support multiple architectures in the future. 2011-02-19 22:59:27 +00:00
Dean Camera 3d4d8e7f62 Add new ARCH option to the makefiles to (eventually) specify the target device architecture. Update non-usb peripheral drivers to reflect future multiple architecture support. 2011-02-19 18:37:22 +00:00
Dean Camera 100a197d0e Reduced latency for executing the Start-Of-Frame events (if enabled in the user application). 2011-02-19 12:09:55 +00:00
Dean Camera 0019fbd129 Add more const-ness to the stream endpoint/pipe functions where possible. 2011-02-13 21:27:24 +00:00
Dean Camera 782614dbb5 Add static keyword to all project globals whose scope should be restricted to the same module as they are declared in.
Tighten up the HID class bootloader code slightly, document that it currently exceeds 2KB of bootloader space for all models other than the Series 2 USB AVRs.
2011-02-10 17:55:49 +00:00
Dean Camera 43b9d552bb Renamed all driver termination *_ShutDown() functions to the more logical name *_Disable(). 2011-01-30 23:12:06 +00:00
Dean Camera 43c4735305 Renamed the PRNT_Host_SendString(), CDC_Host_SendString() and CDC_Device_SendString() functions to *_SendData(), and added new versions of the *_SendString() routines that expect a null terminated string instead.
Added new Serial_SendData() function to the Serial driver.
2011-01-30 21:02:31 +00:00
Dean Camera afd828c095 Removed SerialStream module, rolled functionality into the base USART Serial peripheral driver instead through the new Serial_CreateStream() and Serial_CreateBlockingStream() methods.
Renamed the Serial byte send/receive functions to remain consistent with the CDC driver's byte functions.

Altered the serial byte receive function to make it non-blocking.
2011-01-30 19:47:31 +00:00
Dean Camera 30f6d2bfd8 Oops - forgot to add in LOGICAL MINIMUM and LOGICAL MAXIMUM report items into the standard library Joystick HID report descriptor macro. Add in support for joystick resolution reporting via PHYSICAL_MINIMUM and PHYSICAL_MAXIMUM items. 2011-01-30 14:40:24 +00:00
Dean Camera e6dc951630 Add new HID_DESCRIPTOR_VENDOR() macro, change over all projects and Device ClassDriver demos to use it.
Fix reversed byte ordering of multi-byte HID data.

Added support to the HID parser for extended USAGE items that contain the usage page as well as the usage index.

Removed the HID_IOF_NON_VOLATILE and HID_IOF_VOLATILE flags from HID INPUT items where the flag is invalid. Changed over HID OUTPUT items to use HID_IOF_NON_VOLATILE.

Change over MagStripe project to use HID_DESCRIPTOR_KEYBOARD() for its HID report. Change over MouseHostDevice demo to use HID_DESCRIPTOR_MOUSE() for its HID report.
2011-01-30 14:14:04 +00:00
Dean Camera a852ea8e43 Added new KeyboardMouseMultiReport Device ClassDriver demo.
Fixed ReportID not being removed from the feature/out report data array in the HID class driver when Report IDs are used.

Added new MAX() and MIN() convenience macros.
2011-01-26 21:33:07 +00:00
Dean Camera 6c7ed7ecd6 Added new HID_DESCRIPTOR_MOUSE, HID_DESCRIPTOR_KEYBOARD and HID_DESCRIPTOR_JOYSTICK macros for easy automatic creation of basic USB HID device reports. 2011-01-23 20:02:51 +00:00
Dean Camera ef44b8c036 Fixed incorrect definition of the HID_KEYBOARD_SC_RIGHT_ARROW constant in the HID class driver (thanks to Joby Taffey).
Add in newHID_KEYBOARD_SC_POWER keyboard scancode constant.
2011-01-17 23:11:13 +00:00
Dean Camera efd57cfe51 Abuse the the C preprocessor so that the HID macros can automatically encode data into the array from the HID macros automagically, by specifying the bit-width of the data, and the data itself as a single integer value of that width. 2011-01-17 19:44:48 +00:00
Dean Camera 47fec03694 Fixed several functions in the Host mode Still Image Class driver returning an error code from the incorrect error code enum (thanks to Daniel Seibert). 2011-01-16 23:13:54 +00:00
Dean Camera 787869c2fd Minor documentation corrections for the new HID report item constant defines. 2011-01-16 19:41:26 +00:00
Dean Camera 039a714ee4 New HID report item macros (with HID_RI_ prefix) to allow for easy creation and editing of HID report descriptors.
Changed over all project and demo HID report descriptors to use the new HID report item macros.

Moved the HIDParser.c source file to the LUFA/Drivers/USB/Class/Common/ directory from the LUFA/Drivers/USB/Class/Host/.
2011-01-16 19:34:28 +00:00
Dean Camera 32830a2b82 Added new ADC_GET_CHANNEL_MASK() convenience macro to the ADC driver. 2011-01-16 16:13:22 +00:00
Dean Camera 70d55f6e0c Added new high level TWI packet read/write commands, altered behaviour of the TWI_StartTransmission() function.
Spell check source code files.
2011-01-13 22:56:49 +00:00
Dean Camera 154f934b22 Call USB_USBTask() in the Endpoint stream functions between packets if INTERRUPT_CONTROL_ENDPOINT is not set. Remove calls to USB_USBTask in the Mass Storage class driver stream read/write continuation checks, since this is now done inside the stream function. 2011-01-10 18:56:34 +00:00
Dean Camera f555ad7ced Altered all endpoint/pipe stream transfers so that the new BytesProcessed parameter now points to a location where the number of bytes in the transfer that have been completed can be stored (or NULL if entire transaction should be performed in one chunk).
Added new Endpoint_Null_Stream() and Pipe_Null_stream() functions.

Removed the NO_STREAM_CALLBACKS compile time option due to the new partial stream transfer feature replacing it.

Fixed errors in the incomplete Test and Measurement device demo preventing proper operation (thanks to Pavel Plotnikov).
2011-01-10 18:43:34 +00:00
Dean Camera 477a2047f4 Oops - fix type preventing compilation of demos using the class drivers. 2011-01-08 15:54:57 +00:00
Dean Camera 7dc3d3a68f Minor documentation improvements. 2011-01-08 11:47:20 +00:00
Dean Camera d126146887 The FAST_STREAM_TRANSFERS compile time option has been removed due to lack of use and low cost/benefit ratio.
Add GCC_FORCE_POINTER_ACCESS() macro use to the RingBuffer library header, to attempt to force GCC into producing more efficient code for manipulating the buffers.
2011-01-08 00:54:30 +00:00
Dean Camera a49b5bfd8a Update Doxygen documentation configuration file for the main project documentation to the latest version. Add missing data structure documentation briefs. 2011-01-03 20:13:06 +00:00
Dean Camera 1d433d4506 Update copyright year on all source files. 2011-01-01 13:00:56 +00:00
Dean Camera b8fd4dd51c Fixed incorrect byte ordering in the Audio_Device_WriteSample24 function (thanks to WZab). 2010-12-31 15:03:57 +00:00
Dean Camera a8b66f318d Documentation improvements - put driver example code into its own section, fix incorrect and missing section names. 2010-12-26 14:55:26 +00:00
Dean Camera bfa622d27e Much more efficient algorithm for the Endpoint/Pipe configuration routine of unordered endpoints/pipes - only reconfigure the endpoints and pipes above the newly configured endpoint/pipe, and don't cache existing endpoint/pipe configuration before use to save SRAM. 2010-12-24 18:06:55 +00:00
Dean Camera ec537fd84d Re-add in old Endpoint/Pipe workaround for unordered pipes - add new ORDERED_EP_CONFIG compile time option to override the workaround and use the previous behaviour that imposes correct Endpoint/Pipe ordering but produces smaller compiled code. 2010-12-24 17:05:41 +00:00
Dean Camera 0aa950c241 Fixed incorrect definition of the HID_KEYBOARD_SC_D constant in the HID class driver (thanks to Opendous Inc.).
Add extra comments to the ISPTarget.c source file in the AVRISP-MKII clone project.
2010-12-13 06:05:05 +00:00
Dean Camera b20d25854d Fixed HID hpst class driver incorrectly binding to HID devices that do not have an OUT endpoint. 2010-12-02 04:28:53 +00:00
Dean Camera ed9d77aeee Refactored Host mode Class Driver *_Host_ConfigurePipes() routines to be more space efficient when compiled.
Added new *_ENUMERROR_PipeConfigurationFailed error codes for the *_Host_ConfigurePipes() routines.
2010-12-02 01:56:06 +00:00
Dean Camera 55da77d85f Remove internal USB_Device_NibbleToASCII() function in favour of manually inlined code to prevent compilation errors in -O0 optimisation level. 2010-11-21 10:16:44 +00:00
Dean Camera 210bd4db24 Fix documentation reference error. 2010-11-05 05:26:00 +00:00
Dean Camera fb76acb084 Renamed the EVENT_USB_Device_UnhandledControlRequest() event to EVENT_USB_Device_ControlRequest() as it is now fired before the library request handlers, not afterwards. 2010-11-05 05:15:20 +00:00
Dean Camera 85cf202737 Fixed USBtoSerial and XPLAINBridge demos discarding data from the PC if the send buffer becomes full. 2010-11-03 11:24:34 +00:00
Dean Camera 8f9b5ae00d Minor documentation improvements. 2010-11-03 06:50:02 +00:00
Dean Camera ee495ca500 Fixed MIDI class driver send routines silently discarding packets if the endpoint or pipe is busy (thanks to Robin Green). 2010-11-03 03:20:08 +00:00
Dean Camera 5ce8380a7d Fix XPLAINBridge code broken during the changes to the Rescue Clock generation in the AVRISP-MKII clone project.
Change over all low level host mode project's descriptor comparator routines to perform the descriptor casting in a temp variable to make the code clearer and easier to modify (despite being more verbose).
2010-11-02 11:16:36 +00:00
Dean Camera 46f2e488b0 Oops - typos in the naming of the NBUSYBK0 bits breaking the new busy bank counting functions. 2010-10-29 06:50:56 +00:00
Dean Camera cd57e855f6 Added new Pipe_GetBusyBanks(), Endpoint_GetBusyBanks() and Endpoint_AbortPendingIN() functions. 2010-10-29 06:22:03 +00:00
Dean Camera b8dfa976ce Added standard keyboard HID report scancode defines (thanks to László Monda). 2010-10-28 23:11:49 +00:00
Dean Camera 2d49c09b38 Move Set Feature and Clear Feature control request feature selector values into their own enum. 2010-10-28 22:51:03 +00:00
Dean Camera b120c4e4cd Move RNDISConstants.h into the RNDIS class driver common definition header.
Add logical grouping of related #define values for better Doxygen documentation.
2010-10-28 07:52:52 +00:00
Dean Camera cb779e3d7d Changed over www.fourwalledcubicle.com links to the new www.lufa-lib.org redirect domain, including the new aliased links for LUFA-related pages such as the various download/source control mirrors and support lists. 2010-10-28 06:08:58 +00:00
Dean Camera 710f31c540 Added new NO_CLASS_DRIVER_AUTOFLUSH compile time option to disable automatic flushing of interfaces when the USB management tasks for each driver is called.
The MIDI class drivers now automatically flushes the MIDI interface when the MIDI class driver's USBTask() function is called.
2010-10-27 07:23:51 +00:00
Dean Camera 08de757811 Changed AudioInput and AudioOutput demos to reload the next sample via an interrupt rather than polling the sample timer. 2010-10-26 06:52:09 +00:00
Dean Camera 55538dcef3 Add descriptor class, subclass and protocol constants to the class drivers, modify all demos to use them where possible.
Move out private/internal host class driver constants to the common class driver headers, so that they can be used in the Low Level host mode demos.

Ensure all demos, projects and bootloaders use the class driver constants where possible to minimise code repetition.
2010-10-25 12:42:55 +00:00
Dean Camera b37d77eab3 All USB class drivers are now automatically included when LUFA/Drivers/USB.h is included, and no longer need to be seperately included.
All LowLevel demos changed to use the constants and types defined in the USB class drivers.
2010-10-24 22:53:57 +00:00
Dean Camera 8f3bee7d86 Better algorithm to extract and convert the internal device serial number into a string descriptor (if present).
Fix incorrect warning text when an unsuitable F_CLOCK value is given.
2010-10-24 12:25:34 +00:00
Dean Camera 9464fa168e Renamed ENDPOINT_DOUBLEBANK_SUPPORTED() to ENDPOINT_BANKS_SUPPORTED() and changed it to return the maximum number of supported banks for the given endpoint. 2010-10-13 21:05:55 +00:00
Dean Camera 5a4def7478 Clean up excessive whitespace at the end of each line using the wspurify tool made by Laszlo Monda 2010-10-13 14:05:35 +00:00
Dean Camera a8871c7fba Fixed MIDI_Host_Flush() not aborting early when the specified MIDI host interface was not configured.
Small documentation improvements to explicitly reference tokens in Doxygen, to ensure that they are converted to cross-reference links in the output files.
2010-10-12 13:52:06 +00:00
Dean Camera 7aaced1e8b Remove USB_MODE_* macros, replace with a semantically linked USB_Modes_t enum.
Moved the USB device selection logic for ENDPOINT_TOTAL_ENDPOINTS further up in Endpoint.h to where the endpoint bank capabilities are determined, to reduce the total number of device-specific logic.

Change USB_Host_WaitMS() to test and disable the HSOFI interrupt before resuming the bus, so that it does not fire before the delay loop has run.

Add missing const qualifier to the parameter of USB_Host_ClearPipeStall().
2010-10-12 12:22:11 +00:00
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