1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
/** \file
*
* This file contains special DoxyGen information for the generation of the main page and other special
* documentation pages. It is not a project source file.
*/
/** \mainpage XPLAIN UART Bridge/PDI Programmer Project
*
* \section Sec_Compat Project Compatibility:
*
* The following list indicates what microcontrollers are compatible with this project.
*
* - AT90USB1287
*
* \section Sec_Info USB Information:
*
* The following table gives a rundown of the USB utilization of this project.
*
* <table>
* <tr>
* <td><b>USB Mode:</b></td>
* <td>1) Device</td>
* <td>2) Device</td>
* </tr>
* <tr>
* <td><b>USB Class:</b></td>
* <td>1) Communications Device Class (CDC)</td>
* <td>2) Vendor Specific Class</td>
* </tr>
* <tr>
* <td><b>USB Subclass:</b></td>
* <td>1) Abstract Control Model (ACM)</td>
* <td>2) N/A</td>
* </tr>
* <tr>
* <td><b>Relevant Standards:</b></td>
* <td>1) USBIF CDC Class Standard</td>
* <td>2) Atmel AVRISP MKII Protocol Specification</td>
* </tr>
* <tr>
* <td><b>Usable Speeds:</b></td>
* <td>1) Full Speed Mode</td>
* <td>2) Full Speed Mode</td>
* </tr>
* </table>
*
* \section Sec_Description Project Description:
*
* This project serves a dual purpose. When loaded into the USB AVR on the XPLAIN board, it will act as either a USB to Serial
* converter for the XPLAIN's hardware USART (at a speed of 9600 baud), or an AVRStudio compatible PDI programmer for the XMEGA.
* This project replaces the firmware preloaded onto the XPLAIN's onboard AT90USB1287 microcontroller.
*
* When power to the board is applied, the TDI pin (pin 9) of the USB AVR's JTAG port is read. If the pin is left high, the device
* will enumerate as a regular COM port on the host, which can then be opened and data exchanged between the XMEGA and Host as if
* the XMEGA was connected directly to the host's serial port. If the pin is pulled low by shorting it to GND (pin 10), the device
* will enumerate as an AVRISP-MKII to the host, so that the XMEGA can be reprogrammed by AVRStudio or other compatible software
* such as avrdude by connecting to the board as if it was an Atmel AVRISP-MKII programmer.
*
* After running this project in serial bridge mode for the first time on a new computer, you will need to supply the .INF file
* located in this project project's directory as the device's driver when running under Windows. This will enable Windows to use
* its inbuilt CDC virtual serial drivers, negating the need for custom drivers for the device. Other Operating Systems should
* automatically use their own inbuilt CDC-ACM drivers.
*
* In serial bridge mode, the UART baud rate can be altered through the host terminal software to select a new baud rate - the default
* baud is 9600. Note that parity, data bits and stop bits are fixed at none, eight and one respectively can cannot be altered. Changes
* to the connection's parity, data bits or stop bits are ignored by the firmware. As the serial link between the controllers on the
* XPLAIN is software emulated by the USB AVR, not all baud rates will work correctly.
*
* This project relies on files from the LUFA AVRISP-MKII project for compilation.
*
* \section Sec_Options Project Options
*
* The following defines can be found in this project, which can control the project behaviour when defined, or changed in value.
*
* <table>
* <tr>
* <td><b>Define Name:</b></td>
* <td><b>Location:</b></td>
* <td><b>Description:</b></td>
* </tr>
* <tr>
* <td>BUFFER_SIZE</td>
* <td>LightweightRingBuff.h</td>
* <td>Defines the maximum number of bytes which can be buffered in each Ring Buffer when in serial bridge mode.</td>
* </tr>
* <tr>
* <td>LIBUSB_DRIVER_COMPAT</td>
* <td>Makefile LUFA_OPTS</td>
* <td>Define to switch to a non-standard endpoint scheme, breaking compatibility with AVRStudio under Windows but making
* the code compatible with software such as avrdude (all platforms) that use the libUSB driver.</td>
* </tr>
* <tr>
* <td>FIRMWARE_VERSION_MINOR</td>
* <td>Makefile LUFA_OPTS</td>
* <td>Define to set the minor firmware revision nunber reported to the host on request. By default this will use a firmware version compatible
* with the latest Atmel IDE version, however if desired the reported minor value can be adjusted here.</td>
* </tr>
* </table>
*/
|