Commit Graph

479 Commits

Author SHA1 Message Date
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 e61345f872 Fixed incorrect signature reported in the CDC class bootloader for the ATMEGA32U2. 2010-09-14 11:19:44 +00:00
Dean Camera 84696c727d Added board hardware driver support for the BUI development board. 2010-09-14 11:11:54 +00:00
Dean Camera 92059fcbf9 Added board hardware driver support for the UDIP development board. 2010-09-14 10:31:27 +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 66f14d44a3 Added LEDs_ToggleLEDs() function to several board LED drivers which were missing it (thanks to Andrei Krainev).
Simplify some of the LED driver functions to produce more compact code.
2010-09-09 09:57:03 +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 21954179a4 Added board hardware driver support for the USBFOO development board. 2010-09-04 09:41:08 +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 009eebf229 Fix incorrect ADC driver documentation for the parameters of ADC_Init(), fix incorrect call to ADC_Init() in the TemperatureDatalogger project. 2010-08-31 07:32:48 +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 48c5cdced4 Hide the PROGMEM attribute from Doxygen, as it appears to confuse the parser in some situations. 2010-08-02 08:53:23 +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 9597b33c33 Fixed Serial peripheral driver not turning off the USART before reconfiguring it, which would cause incorrect operation to occur (thanks to Bob Paddock). 2010-07-31 06:55:47 +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