Commit Graph

303 Commits

Author SHA1 Message Date
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 3ebfb998ec Added support for the Atmel XPLAIN board. 2009-10-02 09:11:37 +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 f229502d9a Fixed AVRISP programmer demo -- can now connect to a target and read/write Sig/Lock/Fuse/OSCCAL bytes successfully.
Changed SPI_Init() to allow for the clock polarity and data sample modes to be set.

Changed Dataflash_Init() to no longer call SPI_Init() automatically.
2009-08-23 08:37:11 +00:00
Dean Camera 1e8df8951a Added V2Protocol handlers to the AVRISP project to enter/exit programming mode, and read/write fuses, lockbits, OSCCAL and Signature bytes.
Added ShutDown functions for all hardware peripheral drivers, so that peripherals can be turned off after use.
2009-08-23 04:01: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