Commit Graph

460 Commits

Author SHA1 Message Date
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 d3699d0261 Added new ADC_DisableChannel() function (thanks to Mich Davis). 2010-05-18 12:51:31 +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 a926053ab5 Fix up the ADC driver for the U4 parts to remove a typo on one of the register names. 2010-05-04 11:54:37 +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 cf4c510ec3 Oops, incorrectly edited the Benito buttons driver file instead of the JM-DB-U2 buttons driver file.
Fix up preprocessor guards in the new board driver files.
2010-03-30 23:39:10 +00:00
Dean Camera ead183bc53 Add missing board Buttons driver for the USBTINY MKII board target. 2010-03-30 09:51:08 +00:00
Dean Camera d4c421e380 Oops - make sure board driver dispatch headers test for the correct BOARD define values.
Add button support for the BENITO board target.
2010-03-30 09:46:31 +00:00
Dean Camera 61a799ed55 Added support for the JM-DB-U2 board hardware. 2010-03-30 09:28:45 +00:00
Dean Camera 3790907f4d Added board hardware driver support for the Benito programmer. 2010-03-30 09:08:26 +00:00
Dean Camera a8cbe3466b Added board hardware driver support for Tom's USBTINY MKII programmer. 2010-03-30 08:32:46 +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 b8db5fc1e7 Added new Relay Controller Board project (thanks to OBinou).
Added hardware board driver support for the PJRC Teensy line of USB AVR boards.
2010-03-24 08:06:23 +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 b2bdfe4377 Improve documentation for the ADC and TWI drivers. 2010-03-15 05:38:29 +00:00
Dean Camera 4f9dd142e7 Fixed ADC routines not correctly returning the last result when multiple channels were read.
Fixed ADC routines failing to read the extended channels (Channels 8 to 13, Internal Temperature Sensor) on the U4 series USB AVR parts.
2010-03-13 10:14:51 +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 634abab38a Fix TWI driver not aborting when faced with no response after attempting to address a device on the bus. 2010-02-25 02:47:42 +00:00
Dean Camera c0c982df7a Added a timeout value to the TWI_StartTransmission() function, within which the addressed device must respond.
Fixed TWI_StartTransmission() corrupting the contents of the GPIOR0 register.
2010-02-24 09:49:19 +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 e11fddfe66 Update Temperature board driver to be AVR32 compatible when the ADC peripheral driver is eventually ported. Make architecture includes explicit for both the AVR32 and the AVR8, to make way for future architecture ports.
Add SPI driver aliases for the old function names in the AVR8 driver, so that existing code will still compile against the new version.
2010-02-23 03:51:17 +00:00
Dean Camera c24027f3b5 Fixed software PDI/TPI programming mode in the AVRISP project not correctly toggling just the clock pin.
Fix broken AVR8 Serial peripheral driver.
2010-02-23 01:03:27 +00:00
Dean Camera 2590452104 Change over board hardware drivers to use the custom uintN_t and intN_t native word size types. 2010-02-22 12:58:40 +00:00
Dean Camera 99a45fa97d Add start of an AVR32 SPI driver. 2010-02-22 12:36:08 +00:00
Dean Camera ff8e0ea2d6 Rename AVRU4U6U9 peripheral driver directory to AVR8. 2010-02-22 12:05:36 +00:00
Dean Camera 1d8bb8f9bc Make SPI and USART peripheral dispatch driver headers in preparation for a set of AVR32 peripheral drivers. 2010-02-22 12:01:09 +00:00
Dean Camera aae20139b9 Add drivers for the EVK1101 - begin full port to the AVR32 UC3B line of AVRs. 2010-02-22 11:44:34 +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 a71820b259 Fixed accuracy of the SERIAL_UBBRVAL() and SERIAL_2X_UBBRVAL() macros for higher baudrates (thanks to Renaud Cerrato). 2010-02-12 05:01: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 7602566a05 Fixed SerialStream driver not setting stdin to the created serial stream. 2010-02-05 07:27:01 +00:00
Dean Camera 658234a0b0 Oops - serial stream driver should return _FDEV_EOF when no data has been received, not EOF. 2010-02-05 06:44:10 +00:00
Dean Camera 6ba0b860cc Fixed SerialStream driver blocking while waiting for characters to be received instead of returning EOF. 2010-02-05 03:59:42 +00:00
Dean Camera 15f84bb8f5 New BOARD value option BOARD_NONE (equivelent to not specifying BOARD) which will remove all board hardware drivers which do not adversely affect the code operation (currently only the LEDs driver).
Spell-check code/comments in the Webserver/AVRISP-MKII projects.
2010-02-04 02:27:09 +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 a4ebf4e920 Make board specific and device peripheral specific drivers' file documentation copy over to the module documentation, so that it is visible in the normal module view of the library documentation. 2010-02-01 10:34:07 +00:00
Dean Camera 2ae397dc2f Fixed STK525 Dataflash driver using incorrect bit-shifting for Dataflash addresses (thanks to Tim Mitchell). 2010-02-01 10:09:18 +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 cec699ac59 Clean up Webserver project - add more Doxygen documentation for the new DHCP client functions and defines. 2010-01-27 13:45:08 +00:00
Dean Camera 4bd44139b1 Move TWI.c driver into the straight LUFA/Drivers/Peripheral/ directory.
Fix TemperatureDataLogger and Webserver project builds.
2010-01-25 13:02:25 +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 857381185d ADC2 and ADC3 channels do not exist on the U4 series USB AVRs. 2010-01-25 02:15:27 +00:00
Dean Camera b68f7f1649 Added explicit ADC channel masks for the standard set of ADC channels, as the single-ended channel MUX masks are not equal to the channel number on some AVR models. Changed demos to use the new channel masks when using the ADC driver. 2010-01-25 00:52:45 +00:00
Dean Camera 60fd0ff418 Changed XPLAINBridge project to be both a USB to USART bridge and a PDI programmer, based on the state of a mode select pin. 2010-01-19 05:27:58 +00:00
Dean Camera 2746154652 Added master mode hardware TWI driver.
Fixed a bug in the incomplete Webserver project, where the packet data was not being written to and read from the correct buffer address.
2010-01-19 00:25:26 +00:00