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
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
6d2f091cec
Make project makefiles correctly clean intermeditary build files from assembly and C++ sources (thanks to Daniel Czigany).
2010-09-15 03:00:29 +00:00
Dean Camera
fdcb486e22
Fix typos in the project overview text files.
2010-09-09 13:39:52 +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
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
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
b3c6599bb7
Remove remaining void* descriptor casts in the projects and demos that were not removed when the GetDescriptor callback function's signature was altered.
2010-08-29 13:21:14 +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
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
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
38d2e694ef
Remove unneccesary call to USB_Device_EnableSOFEvents() in the MassStorage and MIDI Device Class demos.
2010-08-21 08:21:17 +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
4f114e5766
Fixed MassStorage based demos and projects resetting the SCSI sense values before the command is executed, leading to missed SCSI sense values when the host retrieves the sense key (thanks to Martin Degelsegger).
...
Added missing DataflashManager_CheckDataflashOperation() function to the MassStorageKeyboard demo, removed redundant SCSI_Codes.h file as these values are part of the MassStorage Class Driver.
2010-08-18 10:33:21 +00:00
Dean Camera
eb060db71b
Tighten up the code in the delta movement detection code in the MouseHostWithParser and JoystickHostWithParser demos. Make the ClassDriver JoystickHostWithParser demo use the HID_ALIGN_DATA() macro instead of manual shifting and casting.
2010-08-09 12:04:52 +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
be520aed52
Add notification endpoint to the incomplete TMC demo.
2010-08-09 07:21:53 +00:00
Dean Camera
5f3a1b2629
Fix invocations of avr-size in all makefiles broken on unpatched *nix systems, due to the recent update to the latest WinAVR makefile template.
2010-08-08 08:30:42 +00:00
Dean Camera
98947e3750
Ensure all demos now compile in C99 standards mode, and not GNU99 (C99 + GNU extensions).
2010-08-03 11:13:06 +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
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
37c601dbf6
Fix typo in DualVirtualSerial.c due to the changed CDC Device APIs that was preventing the demo from being compiled.
2010-07-30 04:20:41 +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
7c8d16fd7a
Oops - need to turn off USART via control register B before reconfiguring, fix ordering of USART control register modifications in the Benito and USBtoSerial projects.
2010-07-30 01:11:04 +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
de5b16909a
Added support to the AVRISP-MKII project for ISP speeds slower than 125KHz via a new software SPI driver.
...
Added new SPI_ORDER_* data order masks to the SPI peripheral driver.
2010-07-29 07:09:57 +00:00
Dean Camera
9a97f16b07
Add TMC header read and write functions, so that TMC data can now be exchanged in both directions.
...
Minor update to the LowLevel MassStorage device demo, so that the ReadInCommandBlock() performs the data OUT endpoint selection and packet arrival test.
2010-07-28 09:17:22 +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
6e2920bc84
Add comments to the currently completed portions of the incomplete Test and Measurement Class demo.
2010-07-26 05:02:55 +00:00
Dean Camera
0803cf00ac
Add missing INTERRUPT_CONTROL_ENDPOINT compile time option to the Mass Storage device projects/demos and incomplete Test and Measurement Class demo, which was accidentally removed during the makefile updates.
...
Alter Test and Measurement Class demo's request handlers to accept, process and correctly return the fields indicated in the specification.
2010-07-26 04:57:50 +00:00
Dean Camera
89a32baf58
Add stream callback flags and class specific control request handler code to the incomplete Test and Measurement Class device demo.
...
Change over the keyboard demo's manufacturer name back to the primary author of the demo.
2010-07-26 04:26:47 +00:00
Dean Camera
3a79548dc2
Add TMC device capabilities to the incomplete TMC demo.
2010-07-23 09:12:26 +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
ac0ece0141
Added start of a low level device Test and Measurement class demo (thanks to Peter Lawrence).
2010-07-22 07:19:41 +00:00
Dean Camera
e6f37221fa
Fix up minor whitespace formatting errors.
2010-07-22 05:00:39 +00:00
Dean Camera
6bda628718
Update all demos, projects and bootloaders to indent all function parameters, one per line, for better readability.
...
Add missing const qualifiers to the demos.
2010-07-21 16:19:32 +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
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
42ac34b484
Change over all makefiles to use C99 standards mode, rather than C99 + GNU Extensions.
2010-07-18 07:31:57 +00:00
Dean Camera
9299735c75
Disable strict aliasing explicitly in the project makefiles, as this is apparently enabled by default in newer AVR-GCC builds, and aliasing is used heavily for type-punning through the LUFA and third party library's codebase.
2010-07-15 17:13:33 +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
40631e9fe5
Fix pointer aliasing warning in the Mass Storage demos.
2010-07-15 10:34:29 +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
3a3a4e2abf
Add AVRStudio 4 project files to the ClassDriver Device mode demos.
2010-07-13 05:38:51 +00:00
Dean Camera
f985a8c176
Add AVRStudio 4 project files to the LowLevel Device mode demos.
2010-07-13 05:20:49 +00:00
Dean Camera
658da63e6c
Add AVRStudio 4 project files to the ClassDriver Host mode demos.
2010-07-13 05:11:23 +00:00
Dean Camera
20943fa1aa
Add AVRStudio 4 project files to the LowLevel Host mode demos.
2010-07-13 05:01:18 +00:00
Dean Camera
1167b69943
Add missing eol-style properties to new source files.
2010-07-12 10:20:38 +00:00
Dean Camera
ae9dab1398
Add missing clean_doxygen phony targets to the project makefiles.
2010-07-12 10:18:18 +00:00
Dean Camera
2b0d93c129
Correct misspellings in the Bluetooth demo code.
2010-07-11 08:11:25 +00:00
Dean Camera
f6e84eabce
Add more doxygen function documentation to the RFCOMM layer.
2010-07-11 07:59:15 +00:00
Dean Camera
00fa6aa2db
Oops - ACL layer Bluetooth_SendPacket() function should check and allow NULL channels, since that indicates a control channel request.
...
Fix up Doxgen documentation for the Bluetooth stack code.
2010-07-11 07:38:18 +00:00
Dean Camera
6276d5f82a
Rename Bluetooth stack function parameters to clearly indicate what sort of Bluetooth channel (ACL, RFCOMM) is required for each parameter, to make the code easier to read.
...
Add a new RFCOMM_ChannelSignalsReceived() Bluetooth stack callback from the RFCOMM layer for when the remote device sends new terminal control signals.
Fix RFCOMM_SendData() not aborting correctly when the requested RFCOMM channel is not found.
2010-07-11 07:29:27 +00:00
Dean Camera
ba711d6759
Oops - fix errors in the MassStorageKeyboard SCSI driver file due to incorrect copy/paste.
2010-07-09 07:44:08 +00:00
Dean Camera
c326fe9605
Rewrote the implementation of the SwapEndian_16() and SwapEndian_32() functions so that they compile down in most instances to minimal loads and stores rather than complicated shifts.
...
Fixed SCSI.c implementations of all the demos/projects casting the block count to a 32-bit temporary before calling SwapEndian_16().
2010-07-09 07:24:34 +00:00
Dean Camera
2b0e86243f
Add a new RFCOMM_ChannelOpened() callback event for when logical RFCOMM channels are opened in the BluetoothHost demo. Make the demo echo back sent characters to the remote device.
2010-07-08 08:48:52 +00:00
Dean Camera
c37fd0ef91
Add a new RFCOMM service callback for when new data has been received on a valid RFCOMM channel.
2010-07-08 08:05:14 +00:00
Dean Camera
70983caea5
Move out Bluetooth stack callback functions to a seperate BluetoothEvents.c/.h set of files for clarity in the Incomplete BluetoothHost demo. Add a new stack callback for opened ACL channels, make the demo save the RFCOMM channel when opened so that it does not have to search for it on each iteration of the main program loop.
2010-07-08 07:44:07 +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
31a34154db
Move out RFCOMM channel structure init code to a seperate routine, to save on compiled code space and to prevent copy-paste errors.
2010-07-02 03:06:16 +00:00
Dean Camera
fbabecee66
Add RFCOMM service routine, to send pending configuration requests on RFCOMM channels. Add in RFCOMM channel config flags, to determine which configuration commands have been sent and received.
...
Add a new RFCOMM_SendChannelSignals() function to transmit a change in V24 terminal handshake lines to the receiving device.
Prevent SABM packets sent to the control DLCI in the RFCOMM layer from creating a new channel entry, as the control DLCI does not have connection data associated with it.
Fix up MSC control packet handling so that received responses can be acknowledged correctly, so that the RFCOMM layer can record when the receiving device has ACKed a sent change in V24 terminal handshake lines.
2010-06-29 04:40:02 +00:00
Dean Camera
b656540468
Make Bluetooth ACL channel searches skip over closed (invalid) channels. RFCOMM channels are considered invalid when the channel state is closed, not when the DLCI is zero - fix incorrect code.
2010-06-26 15:07:13 +00:00
Dean Camera
d29a408ffd
Add default "all" makefile targets to the demo tree makefiles.
2010-06-25 13:28:34 +00:00
Dean Camera
26afe5fe9e
Fix Doxygen formatting of parameters for the CALLBACK_HID_Device_CreateHIDReport() function in the ClassDriver HID device demos.
2010-06-25 09:49:46 +00:00
Dean Camera
4b952d479a
Split RFCOMM channel signals into Remote and Local pairs. Use memcpy() to copy over data from the command parameters to the RFCOMM response parameters.
...
Ensure that only the valid parameter bytes are sent back in response to MSC commands.
2010-06-23 08:10:21 +00:00
Dean Camera
2eff731ecf
Add TEST RFCOMM command handler. Remove the RFCOMM channel UseUIFrame element, as the Bluetooth adaptions to RFCOMM only allow UIH frames to be used.
2010-06-23 07:17:47 +00:00
Dean Camera
559af02204
Use a bitmask instead of an array of bools in the SDP UUID List matching algorithm to reduce the compiled code size and stack used.
2010-06-22 07:55:02 +00:00
Dean Camera
e621ab33be
Added new pgm_read_ptr() macro to Common.h for reading of pointers out of flash memory space.
...
Added new SWAPENDIAN_16() and SWAPENDIAN_32() macros to Common.h for statically initialized variables at compile time.
2010-06-22 07:06:27 +00:00
Dean Camera
69dc32c5f0
Fix compile and Doxygen errors due to the spell-check changes in the source code.
2010-06-16 11:46:42 +00:00
Dean Camera
13ea700b35
Rename RFCOMM_GetFrameDataLength() to RFCOMM_GetVariableFieldValue() as it is multi-purpose, and modify it to move the buffer pointer itself rather than relying on the caller.
...
Make RFCOMM_GetChannelData() return NULL if the required channel DLCI is found, but the channel is closed.
Add modem signals (BREAK, DCD, etc.) to the channel state array, and add in a handler for the Modem Status RFCOMM control command.
2010-06-15 11:28:15 +00:00
Dean Camera
f5d079462d
Changed the RFCOMM-specific ItemProtocolChannel_t type to a more generic ItemProtocol_8BitParam_t name, and added a new ItemProtocol_16BitParam_t to the SDP protocol type defines.
2010-06-15 10:09:42 +00:00
Dean Camera
3125fd5f4f
Add RFCOMM channel configuration parsing and channel states to the incomplete BluetoothHost demo.
...
Add missing BT_* prefix to the Bluetooth stack's channel state enum values.
2010-06-15 09:32:35 +00:00
Dean Camera
a14ece5f57
Change over Doxygen \note documentation to \pre where applicable.
2010-06-15 03:34:55 +00:00
Dean Camera
67bc625109
Split out the RFCOMM Control Channel command processing code into a seperate set of files for clarity.
2010-06-13 13:21:35 +00:00
Dean Camera
b522e35965
Rename the incomplete Bluetooth Host demo's ServiceDiscoveryProtocol.c/.h files to SDP.c/.h. Fix compile errors in RFCOMM.c/.h.
2010-06-13 12:44:20 +00:00
Dean Camera
637c7b01d0
More RFCOMM layer additions - begin to add multiplexer channel state variables.
2010-06-13 12:37:16 +00:00
Dean Camera
931ca42a6e
Minor fixes to demos to add in some missing comments, printf() formatting. Make incomplete Bluetooth demo indicate connections visually via the board LEDs.
2010-06-12 07:03:22 +00:00
Dean Camera
e930738247
Add stub RFCOMM command handlers. Move out RFCOMM frame length and data pointer calculations to the master RFCOMM frame reception routine, instead of inside each frame type handler function.
2010-06-07 13:39:34 +00:00
Dean Camera
f92229697f
More RFCOMM layer implementation - fix FCS calculation, add in start of control channel command processing.
2010-06-07 12:53:47 +00:00
Dean Camera
34e0fed4ca
Make the RFCOMM_SendFrame() function correctly generate frames from the input parameters, change addressing to use the raw DLCI address plus flags.
2010-06-07 09:07:18 +00:00
Dean Camera
361e1ec1d8
Refactor out RFCOMM packet send code into a seperate function.
2010-06-06 14:39:51 +00:00
Dean Camera
7aec6cba1a
Fix incorrect copyright attribution on the class-driver keyboard demos due to header copy-pasting.
2010-06-06 14:03:56 +00:00
Dean Camera
2dabb4e55f
Add the svn:eol-style property onto new files which where missing it to ensure uniform line endings.
2010-06-06 08:33:14 +00:00
Dean Camera
efbedcfa54
Document Bluetooth files with overall file Doxygen comments. Add more initial RFCOMM layer code to receive and respond to SABM packets.
2010-06-04 06:25:12 +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
9293de2491
Start implementation of RFCOMM decoding layer. Add new service initialize routines for each Bluetooth service - currently unused, but will eventually reset the service state of RFCOMM when a new connection is made.
2010-06-03 12:45:15 +00:00
Dean Camera
13d812a718
Delay needed in bluetooth code due to the send function not waiting for the pipe bank to become ready before writing. Add in a call to Pipe_WaitUntilReady() to fix the issue.
2010-06-03 08:42:20 +00:00
Dean Camera
a405a9bdf8
Extra protocol value in the RFCOMM protocol is the channel number, not the PSM - update typedef name and size.
...
Add delay to the Connection Request signal processing routine - without this, the host will not create the RFCOMM channel correctly. Need to investigate why this delay is needed.
2010-06-03 08:33:01 +00:00
Dean Camera
480da5aab6
Add PSM value to the RFCOMM service so that the host knows what PSM to use on channels when trying to access it.
2010-06-03 07:45:09 +00:00
Dean Camera
008e0e2e0a
Add start of RFCOMM service layer to the incomplete BluetoothHost demo.
...
Reduce the size of the attribute search list from 15 ranges to 8 to save RAM.
2010-06-03 03:58:57 +00:00
Dean Camera
23a94a7181
Fix byte ordering of UUIDs in the SDP server - host can now successfully pair to the Bluetooth device and discover the exposed Serial Port Profile RFCOMM service.
2010-06-02 14:49:06 +00:00
Dean Camera
c362709a1e
The SDP UUID lists should be searched and ALL UUIDs matched for a record to be retrieved, not partial matches. Change the SDP code so that the entire list must be matched against a service attribute table's contents before it is returned.
...
Change matching algorithm so that it recursively searches through the entire attribute table, and not just pre-specified sequence attributes.
Add browse lists and proper descriptions to the Serial Port service.
2010-06-02 07:05:34 +00:00
Dean Camera
da51c1f974
Add L2CAP service attribute table. Fix up ProtocolDescriptorList attributes, and add macros for used UUIDs to reduce typing and make the code easier to read.
2010-06-02 04:36:46 +00:00
Dean Camera
b98158bd50
Clean up the Service tables, add incomplete ProtocolDescriptorList attribute to the SDP service.
2010-06-01 14:05:47 +00:00