From 60b30c036397cb5627fa374bb930794b225daa29 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 7 Jul 2017 11:55:23 -0400 Subject: Squashed 'lib/lufa/' content from commit 385d40300 git-subtree-dir: lib/lufa git-subtree-split: 385d4030035dbaf41591309dbde47653bd03841b --- Projects/AVRISP-MKII/AVRISP-MKII.c | 164 + Projects/AVRISP-MKII/AVRISP-MKII.h | 90 + Projects/AVRISP-MKII/AVRISP-MKII.txt | 346 ++ Projects/AVRISP-MKII/AVRISPDescriptors.c | 203 + Projects/AVRISP-MKII/AVRISPDescriptors.h | 100 + Projects/AVRISP-MKII/Config/AppConfig.h | 68 + Projects/AVRISP-MKII/Config/LUFAConfig.h | 93 + Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.c | 531 +++ Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.h | 81 + Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c | 370 ++ Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h | 147 + Projects/AVRISP-MKII/Lib/V2Protocol.c | 267 ++ Projects/AVRISP-MKII/Lib/V2Protocol.h | 105 + Projects/AVRISP-MKII/Lib/V2ProtocolConstants.h | 90 + Projects/AVRISP-MKII/Lib/V2ProtocolParams.c | 207 + Projects/AVRISP-MKII/Lib/V2ProtocolParams.h | 91 + Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c | 274 ++ Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.h | 86 + Projects/AVRISP-MKII/Lib/XPROG/XMEGANVM.c | 468 +++ Projects/AVRISP-MKII/Lib/XPROG/XMEGANVM.h | 140 + Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c | 480 +++ Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h | 136 + Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c | 209 + Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.h | 136 + Projects/AVRISP-MKII/WindowsDriver/AVRISP_mkII.inf | Bin 0 -> 8070 bytes .../AVRISP-MKII/WindowsDriver/amd64/libusb0.dll | Bin 0 -> 76384 bytes .../AVRISP-MKII/WindowsDriver/amd64/libusb0.sys | Bin 0 -> 52832 bytes Projects/AVRISP-MKII/WindowsDriver/avrisp_mkii.cat | Bin 0 -> 9610 bytes .../AVRISP-MKII/WindowsDriver/ia64/libusb0.dll | Bin 0 -> 157792 bytes .../AVRISP-MKII/WindowsDriver/ia64/libusb0.sys | Bin 0 -> 110176 bytes .../AVRISP-MKII/WindowsDriver/installer_x64.exe | Bin 0 -> 25088 bytes .../AVRISP-MKII/WindowsDriver/installer_x86.exe | Bin 0 -> 23552 bytes .../license/libusb0/installer_license.txt | 851 ++++ Projects/AVRISP-MKII/WindowsDriver/x86/libusb0.sys | Bin 0 -> 42592 bytes .../AVRISP-MKII/WindowsDriver/x86/libusb0_x86.dll | Bin 0 -> 67680 bytes Projects/AVRISP-MKII/asf.xml | 91 + Projects/AVRISP-MKII/doxyfile | 2396 +++++++++++ Projects/AVRISP-MKII/makefile | 44 + Projects/Benito/Benito.c | 311 ++ Projects/Benito/Benito.h | 79 + Projects/Benito/Benito.txt | 106 + Projects/Benito/Config/AppConfig.h | 57 + Projects/Benito/Config/LUFAConfig.h | 93 + Projects/Benito/Descriptors.c | 244 ++ Projects/Benito/Descriptors.h | 112 + Projects/Benito/LUFA Benito Programmer.inf | 66 + Projects/Benito/asf.xml | 53 + Projects/Benito/doxyfile | 2395 +++++++++++ Projects/Benito/makefile | 43 + Projects/HIDReportViewer/Config/LUFAConfig.h | 93 + Projects/HIDReportViewer/HIDReportViewer.c | 325 ++ Projects/HIDReportViewer/HIDReportViewer.h | 87 + Projects/HIDReportViewer/HIDReportViewer.txt | 64 + Projects/HIDReportViewer/asf.xml | 48 + Projects/HIDReportViewer/doxyfile | 2395 +++++++++++ Projects/HIDReportViewer/makefile | 43 + .../LEDNotifier/CPUUsageApp/CPUMonitor.Designer.cs | 131 + Projects/LEDNotifier/CPUUsageApp/CPUMonitor.cs | 115 + Projects/LEDNotifier/CPUUsageApp/CPUMonitor.csproj | 95 + Projects/LEDNotifier/CPUUsageApp/CPUMonitor.resx | 132 + Projects/LEDNotifier/CPUUsageApp/Program.cs | 21 + .../CPUUsageApp/Properties/AssemblyInfo.cs | 36 + .../CPUUsageApp/Properties/Resources.Designer.cs | 63 + .../CPUUsageApp/Properties/Resources.resx | 117 + .../CPUUsageApp/Properties/Settings.Designer.cs | 26 + .../CPUUsageApp/Properties/Settings.settings | 7 + Projects/LEDNotifier/Config/LUFAConfig.h | 93 + Projects/LEDNotifier/Descriptors.c | 245 ++ Projects/LEDNotifier/Descriptors.h | 110 + .../LEDNotifier/LEDMixerApp/LEDMixer.Designer.cs | 149 + Projects/LEDNotifier/LEDMixerApp/LEDMixer.cs | 75 + Projects/LEDNotifier/LEDMixerApp/LEDMixer.csproj | 95 + Projects/LEDNotifier/LEDMixerApp/LEDMixer.resx | 123 + Projects/LEDNotifier/LEDMixerApp/Program.cs | 21 + .../LEDMixerApp/Properties/AssemblyInfo.cs | 36 + .../LEDMixerApp/Properties/Resources.Designer.cs | 63 + .../LEDMixerApp/Properties/Resources.resx | 117 + .../LEDMixerApp/Properties/Settings.Designer.cs | 26 + .../LEDMixerApp/Properties/Settings.settings | 7 + Projects/LEDNotifier/LEDNotifier.c | 178 + Projects/LEDNotifier/LEDNotifier.h | 60 + Projects/LEDNotifier/LEDNotifier.txt | 63 + Projects/LEDNotifier/LUFA LED Notifier.inf | 66 + Projects/LEDNotifier/asf.xml | 51 + Projects/LEDNotifier/doxyfile | 2397 ++++++++++++ Projects/LEDNotifier/makefile | 43 + Projects/MIDIToneGenerator/Config/AppConfig.h | 48 + Projects/MIDIToneGenerator/Config/LUFAConfig.h | 93 + Projects/MIDIToneGenerator/Descriptors.c | 314 ++ Projects/MIDIToneGenerator/Descriptors.h | 110 + Projects/MIDIToneGenerator/MIDIToneGenerator.c | 252 ++ Projects/MIDIToneGenerator/MIDIToneGenerator.h | 105 + Projects/MIDIToneGenerator/MIDIToneGenerator.txt | 73 + Projects/MIDIToneGenerator/asf.xml | 50 + Projects/MIDIToneGenerator/doxyfile | 2395 +++++++++++ Projects/MIDIToneGenerator/makefile | 43 + Projects/Magstripe/Config/AppConfig.h | 58 + Projects/Magstripe/Config/LUFAConfig.h | 93 + Projects/Magstripe/Descriptors.c | 216 + Projects/Magstripe/Descriptors.h | 96 + Projects/Magstripe/Lib/CircularBitBuffer.c | 115 + Projects/Magstripe/Lib/CircularBitBuffer.h | 97 + Projects/Magstripe/Lib/MagstripeHW.h | 102 + Projects/Magstripe/Magstripe.c | 228 ++ Projects/Magstripe/Magstripe.h | 90 + Projects/Magstripe/Magstripe.txt | 163 + Projects/Magstripe/asf.xml | 52 + Projects/Magstripe/doxyfile | 2395 +++++++++++ Projects/Magstripe/makefile | 43 + Projects/MediaController/Config/LUFAConfig.h | 93 + Projects/MediaController/Descriptors.c | 234 ++ Projects/MediaController/Descriptors.h | 93 + Projects/MediaController/MediaController.c | 184 + Projects/MediaController/MediaController.h | 110 + Projects/MediaController/MediaController.txt | 66 + Projects/MediaController/asf.xml | 50 + Projects/MediaController/doxyfile | 2395 +++++++++++ Projects/MediaController/makefile | 43 + Projects/MissileLauncher/Config/LUFAConfig.h | 93 + Projects/MissileLauncher/ConfigDescriptor.c | 185 + Projects/MissileLauncher/ConfigDescriptor.h | 72 + Projects/MissileLauncher/MissileLauncher.c | 323 ++ Projects/MissileLauncher/MissileLauncher.h | 92 + Projects/MissileLauncher/MissileLauncher.txt | 60 + Projects/MissileLauncher/asf.xml | 49 + Projects/MissileLauncher/doxyfile | 2395 +++++++++++ Projects/MissileLauncher/makefile | 43 + Projects/RelayBoard/Config/LUFAConfig.h | 93 + Projects/RelayBoard/Descriptors.c | 188 + Projects/RelayBoard/Descriptors.h | 84 + Projects/RelayBoard/RelayBoard.c | 145 + Projects/RelayBoard/RelayBoard.h | 65 + Projects/RelayBoard/RelayBoard.txt | 106 + Projects/RelayBoard/asf.xml | 47 + Projects/RelayBoard/doxyfile | 2395 +++++++++++ Projects/RelayBoard/makefile | 43 + Projects/SerialToLCD/Config/LUFAConfig.h | 93 + Projects/SerialToLCD/Descriptors.c | 257 ++ Projects/SerialToLCD/Descriptors.h | 111 + Projects/SerialToLCD/LUFA SerialToLCD.inf | 66 + Projects/SerialToLCD/Lib/HD44780.c | 127 + Projects/SerialToLCD/Lib/HD44780.h | 64 + Projects/SerialToLCD/SerialToLCD.c | 170 + Projects/SerialToLCD/SerialToLCD.h | 64 + Projects/SerialToLCD/SerialToLCD.txt | 109 + Projects/SerialToLCD/asf.xml | 51 + Projects/SerialToLCD/doxyfile | 2395 +++++++++++ Projects/SerialToLCD/makefile | 43 + Projects/TempDataLogger/Config/AppConfig.h | 48 + Projects/TempDataLogger/Config/LUFAConfig.h | 93 + Projects/TempDataLogger/Descriptors.c | 257 ++ Projects/TempDataLogger/Descriptors.h | 87 + Projects/TempDataLogger/Lib/DataflashManager.c | 534 +++ Projects/TempDataLogger/Lib/DataflashManager.h | 86 + Projects/TempDataLogger/Lib/FATFs/00readme.txt | 135 + Projects/TempDataLogger/Lib/FATFs/diskio.c | 98 + Projects/TempDataLogger/Lib/FATFs/diskio.h | 55 + Projects/TempDataLogger/Lib/FATFs/ff.c | 4139 ++++++++++++++++++++ Projects/TempDataLogger/Lib/FATFs/ff.h | 337 ++ Projects/TempDataLogger/Lib/FATFs/ffconf.h | 191 + Projects/TempDataLogger/Lib/FATFs/integer.h | 38 + Projects/TempDataLogger/Lib/RTC.c | 159 + Projects/TempDataLogger/Lib/RTC.h | 126 + Projects/TempDataLogger/Lib/SCSI.c | 344 ++ Projects/TempDataLogger/Lib/SCSI.h | 89 + Projects/TempDataLogger/TempDataLogger.c | 331 ++ Projects/TempDataLogger/TempDataLogger.h | 112 + .../TempLogHostApp/COPYING.LESSER.txt | 166 + Projects/TempDataLogger/TempLogHostApp/COPYING.txt | 675 ++++ .../TempLogHostApp/DataLoggerSettings.Designer.cs | 181 + .../TempLogHostApp/DataLoggerSettings.cs | 179 + .../TempLogHostApp/DataLoggerSettings.resx | 120 + .../TempDataLogger/TempLogHostApp/Hid.Linux.dll | Bin 0 -> 9216 bytes Projects/TempDataLogger/TempLogHostApp/Hid.Net.dll | Bin 0 -> 24576 bytes .../TempDataLogger/TempLogHostApp/Hid.Win32.dll | Bin 0 -> 94208 bytes Projects/TempDataLogger/TempLogHostApp/Program.cs | 21 + .../TempLogHostApp/Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 63 + .../TempLogHostApp/Properties/Resources.resx | 117 + .../TempLogHostApp/Properties/Settings.Designer.cs | 26 + .../TempLogHostApp/Properties/Settings.settings | 7 + Projects/TempDataLogger/TempLogHostApp/README.txt | 24 + .../TempLogHostApp/TempLoggerHostApp.csproj | 99 + .../TempLogHostApp_Python/temp_log_config.py | 99 + Projects/TempDataLogger/TemperatureDataLogger.txt | 86 + Projects/TempDataLogger/asf.xml | 72 + Projects/TempDataLogger/doxyfile | 2397 ++++++++++++ Projects/TempDataLogger/makefile | 44 + Projects/USBtoSerial/Config/LUFAConfig.h | 93 + Projects/USBtoSerial/Descriptors.c | 245 ++ Projects/USBtoSerial/Descriptors.h | 110 + Projects/USBtoSerial/LUFA USBtoSerial.inf | 66 + Projects/USBtoSerial/USBtoSerial.c | 254 ++ Projects/USBtoSerial/USBtoSerial.h | 77 + Projects/USBtoSerial/USBtoSerial.txt | 78 + Projects/USBtoSerial/asf.xml | 51 + Projects/USBtoSerial/doxyfile | 2395 +++++++++++ Projects/USBtoSerial/makefile | 43 + Projects/Webserver/Config/AppConfig.h | 73 + Projects/Webserver/Config/LUFAConfig.h | 93 + Projects/Webserver/Descriptors.c | 295 ++ Projects/Webserver/Descriptors.h | 128 + Projects/Webserver/LUFA Webserver RNDIS.inf | 59 + Projects/Webserver/Lib/DHCPClientApp.c | 208 + Projects/Webserver/Lib/DHCPClientApp.h | 69 + Projects/Webserver/Lib/DHCPCommon.c | 103 + Projects/Webserver/Lib/DHCPCommon.h | 159 + Projects/Webserver/Lib/DHCPServerApp.c | 265 ++ Projects/Webserver/Lib/DHCPServerApp.h | 64 + Projects/Webserver/Lib/DataflashManager.c | 534 +++ Projects/Webserver/Lib/DataflashManager.h | 87 + Projects/Webserver/Lib/FATFs/00readme.txt | 135 + Projects/Webserver/Lib/FATFs/diskio.c | 65 + Projects/Webserver/Lib/FATFs/diskio.h | 52 + Projects/Webserver/Lib/FATFs/ff.c | 4139 ++++++++++++++++++++ Projects/Webserver/Lib/FATFs/ff.h | 337 ++ Projects/Webserver/Lib/FATFs/ffconf.h | 190 + Projects/Webserver/Lib/FATFs/integer.h | 38 + Projects/Webserver/Lib/HTTPServerApp.c | 284 ++ Projects/Webserver/Lib/HTTPServerApp.h | 84 + Projects/Webserver/Lib/SCSI.c | 344 ++ Projects/Webserver/Lib/SCSI.h | 87 + Projects/Webserver/Lib/TELNETServerApp.c | 163 + Projects/Webserver/Lib/TELNETServerApp.h | 71 + Projects/Webserver/Lib/uIPManagement.c | 298 ++ Projects/Webserver/Lib/uIPManagement.h | 69 + Projects/Webserver/Lib/uip/clock.c | 37 + Projects/Webserver/Lib/uip/clock.h | 13 + Projects/Webserver/Lib/uip/timer.c | 128 + Projects/Webserver/Lib/uip/timer.h | 87 + Projects/Webserver/Lib/uip/uip-split.c | 151 + Projects/Webserver/Lib/uip/uip-split.h | 104 + Projects/Webserver/Lib/uip/uip.c | 1941 +++++++++ Projects/Webserver/Lib/uip/uip.h | 2130 ++++++++++ Projects/Webserver/Lib/uip/uip_arp.c | 432 ++ Projects/Webserver/Lib/uip/uip_arp.h | 146 + Projects/Webserver/Lib/uip/uipopt.h | 740 ++++ Projects/Webserver/USBDeviceMode.c | 162 + Projects/Webserver/USBDeviceMode.h | 62 + Projects/Webserver/USBHostMode.c | 172 + Projects/Webserver/USBHostMode.h | 60 + Projects/Webserver/Webserver.c | 77 + Projects/Webserver/Webserver.h | 76 + Projects/Webserver/Webserver.txt | 126 + Projects/Webserver/asf.xml | 96 + Projects/Webserver/doxyfile | 2396 +++++++++++ Projects/Webserver/makefile | 46 + Projects/XPLAINBridge/Config/AppConfig.h | 64 + Projects/XPLAINBridge/Config/LUFAConfig.h | 93 + Projects/XPLAINBridge/LUFA XPLAIN Bridge.inf | 66 + Projects/XPLAINBridge/Lib/SoftUART.c | 156 + Projects/XPLAINBridge/Lib/SoftUART.h | 71 + Projects/XPLAINBridge/USARTDescriptors.c | 242 ++ Projects/XPLAINBridge/USARTDescriptors.h | 111 + Projects/XPLAINBridge/XPLAINBridge.c | 292 ++ Projects/XPLAINBridge/XPLAINBridge.h | 103 + Projects/XPLAINBridge/XPLAINBridge.txt | 89 + Projects/XPLAINBridge/asf.xml | 57 + Projects/XPLAINBridge/doxyfile | 2395 +++++++++++ Projects/XPLAINBridge/makefile | 54 + Projects/makefile | 47 + 261 files changed, 76764 insertions(+) create mode 100644 Projects/AVRISP-MKII/AVRISP-MKII.c create mode 100644 Projects/AVRISP-MKII/AVRISP-MKII.h create mode 100644 Projects/AVRISP-MKII/AVRISP-MKII.txt create mode 100644 Projects/AVRISP-MKII/AVRISPDescriptors.c create mode 100644 Projects/AVRISP-MKII/AVRISPDescriptors.h create mode 100644 Projects/AVRISP-MKII/Config/AppConfig.h create mode 100644 Projects/AVRISP-MKII/Config/LUFAConfig.h create mode 100644 Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.c create mode 100644 Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.h create mode 100644 Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c create mode 100644 Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h create mode 100644 Projects/AVRISP-MKII/Lib/V2Protocol.c create mode 100644 Projects/AVRISP-MKII/Lib/V2Protocol.h create mode 100644 Projects/AVRISP-MKII/Lib/V2ProtocolConstants.h create mode 100644 Projects/AVRISP-MKII/Lib/V2ProtocolParams.c create mode 100644 Projects/AVRISP-MKII/Lib/V2ProtocolParams.h create mode 100644 Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c create mode 100644 Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.h create mode 100644 Projects/AVRISP-MKII/Lib/XPROG/XMEGANVM.c create mode 100644 Projects/AVRISP-MKII/Lib/XPROG/XMEGANVM.h create mode 100644 Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c create mode 100644 Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h create mode 100644 Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c create mode 100644 Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.h create mode 100644 Projects/AVRISP-MKII/WindowsDriver/AVRISP_mkII.inf create mode 100644 Projects/AVRISP-MKII/WindowsDriver/amd64/libusb0.dll create mode 100644 Projects/AVRISP-MKII/WindowsDriver/amd64/libusb0.sys create mode 100644 Projects/AVRISP-MKII/WindowsDriver/avrisp_mkii.cat create mode 100644 Projects/AVRISP-MKII/WindowsDriver/ia64/libusb0.dll create mode 100644 Projects/AVRISP-MKII/WindowsDriver/ia64/libusb0.sys create mode 100644 Projects/AVRISP-MKII/WindowsDriver/installer_x64.exe create mode 100644 Projects/AVRISP-MKII/WindowsDriver/installer_x86.exe create mode 100644 Projects/AVRISP-MKII/WindowsDriver/license/libusb0/installer_license.txt create mode 100644 Projects/AVRISP-MKII/WindowsDriver/x86/libusb0.sys create mode 100644 Projects/AVRISP-MKII/WindowsDriver/x86/libusb0_x86.dll create mode 100644 Projects/AVRISP-MKII/asf.xml create mode 100644 Projects/AVRISP-MKII/doxyfile create mode 100644 Projects/AVRISP-MKII/makefile create mode 100644 Projects/Benito/Benito.c create mode 100644 Projects/Benito/Benito.h create mode 100644 Projects/Benito/Benito.txt create mode 100644 Projects/Benito/Config/AppConfig.h create mode 100644 Projects/Benito/Config/LUFAConfig.h create mode 100644 Projects/Benito/Descriptors.c create mode 100644 Projects/Benito/Descriptors.h create mode 100644 Projects/Benito/LUFA Benito Programmer.inf create mode 100644 Projects/Benito/asf.xml create mode 100644 Projects/Benito/doxyfile create mode 100644 Projects/Benito/makefile create mode 100644 Projects/HIDReportViewer/Config/LUFAConfig.h create mode 100644 Projects/HIDReportViewer/HIDReportViewer.c create mode 100644 Projects/HIDReportViewer/HIDReportViewer.h create mode 100644 Projects/HIDReportViewer/HIDReportViewer.txt create mode 100644 Projects/HIDReportViewer/asf.xml create mode 100644 Projects/HIDReportViewer/doxyfile create mode 100644 Projects/HIDReportViewer/makefile create mode 100644 Projects/LEDNotifier/CPUUsageApp/CPUMonitor.Designer.cs create mode 100644 Projects/LEDNotifier/CPUUsageApp/CPUMonitor.cs create mode 100644 Projects/LEDNotifier/CPUUsageApp/CPUMonitor.csproj create mode 100644 Projects/LEDNotifier/CPUUsageApp/CPUMonitor.resx create mode 100644 Projects/LEDNotifier/CPUUsageApp/Program.cs create mode 100644 Projects/LEDNotifier/CPUUsageApp/Properties/AssemblyInfo.cs create mode 100644 Projects/LEDNotifier/CPUUsageApp/Properties/Resources.Designer.cs create mode 100644 Projects/LEDNotifier/CPUUsageApp/Properties/Resources.resx create mode 100644 Projects/LEDNotifier/CPUUsageApp/Properties/Settings.Designer.cs create mode 100644 Projects/LEDNotifier/CPUUsageApp/Properties/Settings.settings create mode 100644 Projects/LEDNotifier/Config/LUFAConfig.h create mode 100644 Projects/LEDNotifier/Descriptors.c create mode 100644 Projects/LEDNotifier/Descriptors.h create mode 100644 Projects/LEDNotifier/LEDMixerApp/LEDMixer.Designer.cs create mode 100644 Projects/LEDNotifier/LEDMixerApp/LEDMixer.cs create mode 100644 Projects/LEDNotifier/LEDMixerApp/LEDMixer.csproj create mode 100644 Projects/LEDNotifier/LEDMixerApp/LEDMixer.resx create mode 100644 Projects/LEDNotifier/LEDMixerApp/Program.cs create mode 100644 Projects/LEDNotifier/LEDMixerApp/Properties/AssemblyInfo.cs create mode 100644 Projects/LEDNotifier/LEDMixerApp/Properties/Resources.Designer.cs create mode 100644 Projects/LEDNotifier/LEDMixerApp/Properties/Resources.resx create mode 100644 Projects/LEDNotifier/LEDMixerApp/Properties/Settings.Designer.cs create mode 100644 Projects/LEDNotifier/LEDMixerApp/Properties/Settings.settings create mode 100644 Projects/LEDNotifier/LEDNotifier.c create mode 100644 Projects/LEDNotifier/LEDNotifier.h create mode 100644 Projects/LEDNotifier/LEDNotifier.txt create mode 100644 Projects/LEDNotifier/LUFA LED Notifier.inf create mode 100644 Projects/LEDNotifier/asf.xml create mode 100644 Projects/LEDNotifier/doxyfile create mode 100644 Projects/LEDNotifier/makefile create mode 100644 Projects/MIDIToneGenerator/Config/AppConfig.h create mode 100644 Projects/MIDIToneGenerator/Config/LUFAConfig.h create mode 100644 Projects/MIDIToneGenerator/Descriptors.c create mode 100644 Projects/MIDIToneGenerator/Descriptors.h create mode 100644 Projects/MIDIToneGenerator/MIDIToneGenerator.c create mode 100644 Projects/MIDIToneGenerator/MIDIToneGenerator.h create mode 100644 Projects/MIDIToneGenerator/MIDIToneGenerator.txt create mode 100644 Projects/MIDIToneGenerator/asf.xml create mode 100644 Projects/MIDIToneGenerator/doxyfile create mode 100644 Projects/MIDIToneGenerator/makefile create mode 100644 Projects/Magstripe/Config/AppConfig.h create mode 100644 Projects/Magstripe/Config/LUFAConfig.h create mode 100644 Projects/Magstripe/Descriptors.c create mode 100644 Projects/Magstripe/Descriptors.h create mode 100644 Projects/Magstripe/Lib/CircularBitBuffer.c create mode 100644 Projects/Magstripe/Lib/CircularBitBuffer.h create mode 100644 Projects/Magstripe/Lib/MagstripeHW.h create mode 100644 Projects/Magstripe/Magstripe.c create mode 100644 Projects/Magstripe/Magstripe.h create mode 100644 Projects/Magstripe/Magstripe.txt create mode 100644 Projects/Magstripe/asf.xml create mode 100644 Projects/Magstripe/doxyfile create mode 100644 Projects/Magstripe/makefile create mode 100644 Projects/MediaController/Config/LUFAConfig.h create mode 100644 Projects/MediaController/Descriptors.c create mode 100644 Projects/MediaController/Descriptors.h create mode 100644 Projects/MediaController/MediaController.c create mode 100644 Projects/MediaController/MediaController.h create mode 100644 Projects/MediaController/MediaController.txt create mode 100644 Projects/MediaController/asf.xml create mode 100644 Projects/MediaController/doxyfile create mode 100644 Projects/MediaController/makefile create mode 100644 Projects/MissileLauncher/Config/LUFAConfig.h create mode 100644 Projects/MissileLauncher/ConfigDescriptor.c create mode 100644 Projects/MissileLauncher/ConfigDescriptor.h create mode 100644 Projects/MissileLauncher/MissileLauncher.c create mode 100644 Projects/MissileLauncher/MissileLauncher.h create mode 100644 Projects/MissileLauncher/MissileLauncher.txt create mode 100644 Projects/MissileLauncher/asf.xml create mode 100644 Projects/MissileLauncher/doxyfile create mode 100644 Projects/MissileLauncher/makefile create mode 100644 Projects/RelayBoard/Config/LUFAConfig.h create mode 100644 Projects/RelayBoard/Descriptors.c create mode 100644 Projects/RelayBoard/Descriptors.h create mode 100644 Projects/RelayBoard/RelayBoard.c create mode 100644 Projects/RelayBoard/RelayBoard.h create mode 100644 Projects/RelayBoard/RelayBoard.txt create mode 100644 Projects/RelayBoard/asf.xml create mode 100644 Projects/RelayBoard/doxyfile create mode 100644 Projects/RelayBoard/makefile create mode 100644 Projects/SerialToLCD/Config/LUFAConfig.h create mode 100644 Projects/SerialToLCD/Descriptors.c create mode 100644 Projects/SerialToLCD/Descriptors.h create mode 100644 Projects/SerialToLCD/LUFA SerialToLCD.inf create mode 100644 Projects/SerialToLCD/Lib/HD44780.c create mode 100644 Projects/SerialToLCD/Lib/HD44780.h create mode 100644 Projects/SerialToLCD/SerialToLCD.c create mode 100644 Projects/SerialToLCD/SerialToLCD.h create mode 100644 Projects/SerialToLCD/SerialToLCD.txt create mode 100644 Projects/SerialToLCD/asf.xml create mode 100644 Projects/SerialToLCD/doxyfile create mode 100644 Projects/SerialToLCD/makefile create mode 100644 Projects/TempDataLogger/Config/AppConfig.h create mode 100644 Projects/TempDataLogger/Config/LUFAConfig.h create mode 100644 Projects/TempDataLogger/Descriptors.c create mode 100644 Projects/TempDataLogger/Descriptors.h create mode 100644 Projects/TempDataLogger/Lib/DataflashManager.c create mode 100644 Projects/TempDataLogger/Lib/DataflashManager.h create mode 100644 Projects/TempDataLogger/Lib/FATFs/00readme.txt create mode 100644 Projects/TempDataLogger/Lib/FATFs/diskio.c create mode 100644 Projects/TempDataLogger/Lib/FATFs/diskio.h create mode 100644 Projects/TempDataLogger/Lib/FATFs/ff.c create mode 100644 Projects/TempDataLogger/Lib/FATFs/ff.h create mode 100644 Projects/TempDataLogger/Lib/FATFs/ffconf.h create mode 100644 Projects/TempDataLogger/Lib/FATFs/integer.h create mode 100644 Projects/TempDataLogger/Lib/RTC.c create mode 100644 Projects/TempDataLogger/Lib/RTC.h create mode 100644 Projects/TempDataLogger/Lib/SCSI.c create mode 100644 Projects/TempDataLogger/Lib/SCSI.h create mode 100644 Projects/TempDataLogger/TempDataLogger.c create mode 100644 Projects/TempDataLogger/TempDataLogger.h create mode 100644 Projects/TempDataLogger/TempLogHostApp/COPYING.LESSER.txt create mode 100644 Projects/TempDataLogger/TempLogHostApp/COPYING.txt create mode 100644 Projects/TempDataLogger/TempLogHostApp/DataLoggerSettings.Designer.cs create mode 100644 Projects/TempDataLogger/TempLogHostApp/DataLoggerSettings.cs create mode 100644 Projects/TempDataLogger/TempLogHostApp/DataLoggerSettings.resx create mode 100644 Projects/TempDataLogger/TempLogHostApp/Hid.Linux.dll create mode 100644 Projects/TempDataLogger/TempLogHostApp/Hid.Net.dll create mode 100644 Projects/TempDataLogger/TempLogHostApp/Hid.Win32.dll create mode 100644 Projects/TempDataLogger/TempLogHostApp/Program.cs create mode 100644 Projects/TempDataLogger/TempLogHostApp/Properties/AssemblyInfo.cs create mode 100644 Projects/TempDataLogger/TempLogHostApp/Properties/Resources.Designer.cs create mode 100644 Projects/TempDataLogger/TempLogHostApp/Properties/Resources.resx create mode 100644 Projects/TempDataLogger/TempLogHostApp/Properties/Settings.Designer.cs create mode 100644 Projects/TempDataLogger/TempLogHostApp/Properties/Settings.settings create mode 100644 Projects/TempDataLogger/TempLogHostApp/README.txt create mode 100644 Projects/TempDataLogger/TempLogHostApp/TempLoggerHostApp.csproj create mode 100644 Projects/TempDataLogger/TempLogHostApp_Python/temp_log_config.py create mode 100644 Projects/TempDataLogger/TemperatureDataLogger.txt create mode 100644 Projects/TempDataLogger/asf.xml create mode 100644 Projects/TempDataLogger/doxyfile create mode 100644 Projects/TempDataLogger/makefile create mode 100644 Projects/USBtoSerial/Config/LUFAConfig.h create mode 100644 Projects/USBtoSerial/Descriptors.c create mode 100644 Projects/USBtoSerial/Descriptors.h create mode 100644 Projects/USBtoSerial/LUFA USBtoSerial.inf create mode 100644 Projects/USBtoSerial/USBtoSerial.c create mode 100644 Projects/USBtoSerial/USBtoSerial.h create mode 100644 Projects/USBtoSerial/USBtoSerial.txt create mode 100644 Projects/USBtoSerial/asf.xml create mode 100644 Projects/USBtoSerial/doxyfile create mode 100644 Projects/USBtoSerial/makefile create mode 100644 Projects/Webserver/Config/AppConfig.h create mode 100644 Projects/Webserver/Config/LUFAConfig.h create mode 100644 Projects/Webserver/Descriptors.c create mode 100644 Projects/Webserver/Descriptors.h create mode 100644 Projects/Webserver/LUFA Webserver RNDIS.inf create mode 100644 Projects/Webserver/Lib/DHCPClientApp.c create mode 100644 Projects/Webserver/Lib/DHCPClientApp.h create mode 100644 Projects/Webserver/Lib/DHCPCommon.c create mode 100644 Projects/Webserver/Lib/DHCPCommon.h create mode 100644 Projects/Webserver/Lib/DHCPServerApp.c create mode 100644 Projects/Webserver/Lib/DHCPServerApp.h create mode 100644 Projects/Webserver/Lib/DataflashManager.c create mode 100644 Projects/Webserver/Lib/DataflashManager.h create mode 100644 Projects/Webserver/Lib/FATFs/00readme.txt create mode 100644 Projects/Webserver/Lib/FATFs/diskio.c create mode 100644 Projects/Webserver/Lib/FATFs/diskio.h create mode 100644 Projects/Webserver/Lib/FATFs/ff.c create mode 100644 Projects/Webserver/Lib/FATFs/ff.h create mode 100644 Projects/Webserver/Lib/FATFs/ffconf.h create mode 100644 Projects/Webserver/Lib/FATFs/integer.h create mode 100644 Projects/Webserver/Lib/HTTPServerApp.c create mode 100644 Projects/Webserver/Lib/HTTPServerApp.h create mode 100644 Projects/Webserver/Lib/SCSI.c create mode 100644 Projects/Webserver/Lib/SCSI.h create mode 100644 Projects/Webserver/Lib/TELNETServerApp.c create mode 100644 Projects/Webserver/Lib/TELNETServerApp.h create mode 100644 Projects/Webserver/Lib/uIPManagement.c create mode 100644 Projects/Webserver/Lib/uIPManagement.h create mode 100644 Projects/Webserver/Lib/uip/clock.c create mode 100644 Projects/Webserver/Lib/uip/clock.h create mode 100644 Projects/Webserver/Lib/uip/timer.c create mode 100644 Projects/Webserver/Lib/uip/timer.h create mode 100644 Projects/Webserver/Lib/uip/uip-split.c create mode 100644 Projects/Webserver/Lib/uip/uip-split.h create mode 100644 Projects/Webserver/Lib/uip/uip.c create mode 100644 Projects/Webserver/Lib/uip/uip.h create mode 100644 Projects/Webserver/Lib/uip/uip_arp.c create mode 100644 Projects/Webserver/Lib/uip/uip_arp.h create mode 100644 Projects/Webserver/Lib/uip/uipopt.h create mode 100644 Projects/Webserver/USBDeviceMode.c create mode 100644 Projects/Webserver/USBDeviceMode.h create mode 100644 Projects/Webserver/USBHostMode.c create mode 100644 Projects/Webserver/USBHostMode.h create mode 100644 Projects/Webserver/Webserver.c create mode 100644 Projects/Webserver/Webserver.h create mode 100644 Projects/Webserver/Webserver.txt create mode 100644 Projects/Webserver/asf.xml create mode 100644 Projects/Webserver/doxyfile create mode 100644 Projects/Webserver/makefile create mode 100644 Projects/XPLAINBridge/Config/AppConfig.h create mode 100644 Projects/XPLAINBridge/Config/LUFAConfig.h create mode 100644 Projects/XPLAINBridge/LUFA XPLAIN Bridge.inf create mode 100644 Projects/XPLAINBridge/Lib/SoftUART.c create mode 100644 Projects/XPLAINBridge/Lib/SoftUART.h create mode 100644 Projects/XPLAINBridge/USARTDescriptors.c create mode 100644 Projects/XPLAINBridge/USARTDescriptors.h create mode 100644 Projects/XPLAINBridge/XPLAINBridge.c create mode 100644 Projects/XPLAINBridge/XPLAINBridge.h create mode 100644 Projects/XPLAINBridge/XPLAINBridge.txt create mode 100644 Projects/XPLAINBridge/asf.xml create mode 100644 Projects/XPLAINBridge/doxyfile create mode 100644 Projects/XPLAINBridge/makefile create mode 100644 Projects/makefile (limited to 'Projects') diff --git a/Projects/AVRISP-MKII/AVRISP-MKII.c b/Projects/AVRISP-MKII/AVRISP-MKII.c new file mode 100644 index 0000000000..a734d960ba --- /dev/null +++ b/Projects/AVRISP-MKII/AVRISP-MKII.c @@ -0,0 +1,164 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +/** \file + * + * Main source file for the AVRISP project. This file contains the main tasks of + * the project and is responsible for the initial application hardware configuration. + */ + +#include "AVRISP-MKII.h" + +#if (BOARD != BOARD_NONE) + /* Some board hardware definitions (e.g. the Arduino Micro) have their LEDs defined on the same pins + as the ISP, PDI or TPI interfaces (see the accompanying project documentation). If a board other + than NONE is selected (to enable the LED driver with the programmer) you should double-check that + no conflicts will occur. If there is a conflict, turn off the LEDs (set BOARD to NONE in the makefile) + or define a custom board driver (see the LUFA manual) with alternative LED mappings. + */ + #warning Board specific drivers have been selected; make sure the board LED driver does not conflict with the programmer ISP/PDI/TPI interfaces. +#endif + +/** Main program entry point. This routine contains the overall program flow, including initial + * setup of all components and the main program loop. + */ +int main(void) +{ + SetupHardware(); + V2Protocol_Init(); + + LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); + GlobalInterruptEnable(); + + for (;;) + { + #if (BOARD == BOARD_USBTINYMKII) + /* On the USBTINY-MKII target, there is a secondary LED which indicates the current selected power + mode - either VBUS, or sourced from the VTARGET pin of the programming connectors */ + LEDs_ChangeLEDs(LEDMASK_VBUSPOWER, (PIND & (1 << 0)) ? 0 : LEDMASK_VBUSPOWER); + #endif + + AVRISP_Task(); + USB_USBTask(); + } +} + +/** Configures the board hardware and chip peripherals for the demo's functionality. */ +void SetupHardware(void) +{ +#if (ARCH == ARCH_AVR8) + /* Disable watchdog if enabled by bootloader/fuses */ + MCUSR &= ~(1 << WDRF); + wdt_disable(); + + /* Disable clock division */ + clock_prescale_set(clock_div_1); +#endif + + /* Hardware Initialization */ + LEDs_Init(); + #if defined(RESET_TOGGLES_LIBUSB_COMPAT) + UpdateCurrentCompatibilityMode(); + #endif + + /* USB Stack Initialization */ + USB_Init(); +} + +/** Event handler for the library USB Connection event. */ +void EVENT_USB_Device_Connect(void) +{ + LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING); +} + +/** Event handler for the library USB Disconnection event. */ +void EVENT_USB_Device_Disconnect(void) +{ + LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); +} + +/** Event handler for the library USB Configuration Changed event. */ +void EVENT_USB_Device_ConfigurationChanged(void) +{ + bool ConfigSuccess = true; + + /* Setup AVRISP Data OUT endpoint */ + ConfigSuccess &= Endpoint_ConfigureEndpoint(AVRISP_DATA_OUT_EPADDR, EP_TYPE_BULK, AVRISP_DATA_EPSIZE, 1); + + /* Setup AVRISP Data IN endpoint if it is using a physically different endpoint */ + if ((AVRISP_DATA_IN_EPADDR & ENDPOINT_EPNUM_MASK) != (AVRISP_DATA_OUT_EPADDR & ENDPOINT_EPNUM_MASK)) + ConfigSuccess &= Endpoint_ConfigureEndpoint(AVRISP_DATA_IN_EPADDR, EP_TYPE_BULK, AVRISP_DATA_EPSIZE, 1); + + /* Indicate endpoint configuration success or failure */ + LEDs_SetAllLEDs(ConfigSuccess ? LEDMASK_USB_READY : LEDMASK_USB_ERROR); +} + +/** Processes incoming V2 Protocol commands from the host, returning a response when required. */ +void AVRISP_Task(void) +{ + /* Device must be connected and configured for the task to run */ + if (USB_DeviceState != DEVICE_STATE_Configured) + return; + + V2Params_UpdateParamValues(); + + Endpoint_SelectEndpoint(AVRISP_DATA_OUT_EPADDR); + + /* Check to see if a V2 Protocol command has been received */ + if (Endpoint_IsOUTReceived()) + { + LEDs_SetAllLEDs(LEDMASK_BUSY); + + /* Pass off processing of the V2 Protocol command to the V2 Protocol handler */ + V2Protocol_ProcessCommand(); + + LEDs_SetAllLEDs(LEDMASK_USB_READY); + } +} + +/** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors" + * documentation) by the application code so that the address and size of a requested descriptor can be given + * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function + * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the + * USB host. + * + * \param[in] wValue Descriptor type and index to retrieve + * \param[in] wIndex Sub-index to retrieve (such as a localized string language) + * \param[out] DescriptorAddress Address of the retrieved descriptor + * + * \return Length of the retrieved descriptor in bytes, or NO_DESCRIPTOR if the descriptor was not found + */ +uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, + const uint16_t wIndex, + const void** const DescriptorAddress) +{ + return AVRISP_GetDescriptor(wValue, wIndex, DescriptorAddress); +} + diff --git a/Projects/AVRISP-MKII/AVRISP-MKII.h b/Projects/AVRISP-MKII/AVRISP-MKII.h new file mode 100644 index 0000000000..ae2d041484 --- /dev/null +++ b/Projects/AVRISP-MKII/AVRISP-MKII.h @@ -0,0 +1,90 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +/** \file + * + * Header file for AVRISP.c. + */ + +#ifndef _AVRISP_H_ +#define _AVRISP_H_ + + /* Includes: */ + #include + #include + #include + #include + + #include + #include + #include + + #if defined(ADC) + #include + #endif + + #include "AVRISPDescriptors.h" + #include "Lib/V2Protocol.h" + #include "Config/AppConfig.h" + + /* Macros: */ + /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */ + #define LEDMASK_USB_NOTREADY LEDS_LED1 + + /** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */ + #define LEDMASK_USB_ENUMERATING (LEDS_LED1 | LEDS_LED2) + + /** LED mask for the library LED driver, to indicate that the USB interface is ready. */ + #define LEDMASK_USB_READY LEDS_LED2 + + /** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */ + #define LEDMASK_USB_ERROR LEDS_LED1 + + /** LED mask for the library LED driver, to indicate that the USB interface is busy. */ + #define LEDMASK_BUSY (LEDS_LED1 | LEDS_LED2) + + /** LED mask for the library LED driver, to indicate that the target is being powered by VBUS. */ + #define LEDMASK_VBUSPOWER LEDS_LED3 + + /* Function Prototypes: */ + void SetupHardware(void); + void AVRISP_Task(void); + + void EVENT_USB_Device_Connect(void); + void EVENT_USB_Device_Disconnect(void); + void EVENT_USB_Device_ConfigurationChanged(void); + + uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, + const uint16_t wIndex, + const void** const DescriptorAddress) + ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); + +#endif + diff --git a/Projects/AVRISP-MKII/AVRISP-MKII.txt b/Projects/AVRISP-MKII/AVRISP-MKII.txt new file mode 100644 index 0000000000..76d612ec05 --- /dev/null +++ b/Projects/AVRISP-MKII/AVRISP-MKII.txt @@ -0,0 +1,346 @@ +/** \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 AVRISP MKII Programmer Project + * + * \section Sec_Compat Project Compatibility + * + * The following list indicates what microcontrollers are compatible with this project. + * + * \li Series 7 USB AVRs (AT90USBxxx7) + * \li Series 6 USB AVRs (AT90USBxxx6) + * \li Series 4 USB AVRs (ATMEGAxxU4) + * \li Series 2 USB AVRs (AT90USBxx2, ATMEGAxxU2) - 8KB versions with reduced features only + * + * \section Sec_Info USB Information + * + * The following table gives a rundown of the USB utilization of this project. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
USB Mode:Device
USB Class:Vendor Specific Class
USB Subclass:N/A
Relevant Standards:Atmel AVRISP MKII Protocol Specification
Supported USB Speeds:Full Speed Mode
+ * + * \section Sec_Description Project Description + * + * Firmware for an Atmel Studio compatible AVRISP-MKII clone programmer. This project will enable the USB + * AVR series of microcontrollers to act as a clone of the official Atmel AVRISP-MKII programmer, usable within + * Atmel Studio or with any software capable of driving a real Atmel AVRISP-MKII programmer. In its most + * basic form, it allows for the programming of AVR TINY, MEGA and XMEGA devices at the programmer's VCC voltage from + * within Atmel Studio with no special hardware other than the USB AVR and the parts needed for the USB + * interface. If the user desires, more advanced circuits incorporating level conversion can be made to allow for the + * programming of target AVRs running at a different voltage to the programmer. + * + * This device spoofs Atmel's official AVRISP-MKII device PID so that it remains compatible with Atmel's AVRISP-MKII + * drivers. It is currently tested working under the following configurations: + * + * - Windows: Atmel Studio 7, with alternative driver + * - Windows: AVRDUDE 6.2, with alternative driver + * - Linux: AVRDUDE 6.1 + * + * Note that this clone requires a libUSB based driver under Windows, due to an incompatible change in the official + * Jungo based driver. The alternative driver given here will function with both real and clone AVRISP devices in Atmel + * Studio 7 onwards under Windows - and as a bonus, also provides AVRDude access to the programmer. + * + * As of Atmel Studio version 7.0.1417 the legacy Jungo driver has been deprecated in favor of an official libUSB based + * driver, making the driver packaged here superfluous. Use the driver packaged here only if you are still using an earlier + * Atmel Studio 7 build, otherwise the official Atmel libUSB driver should be used. + * + * Note that this design currently has the following limitations: + * - No reversed/shorted target connector detection and notification + * - A separate header is required for each of the ISP, PDI and TPI programming protocols that the user wishes to use + * + * On AVR models with an ADC converter, the USB AVR's AVCC pin should be tied to 5V (e.g. VBUS) and the + * \c VTARGET_ADC_CHANNEL token should be set to an appropriate ADC channel number in the project makefile for VTARGET + * detection to operate correctly. On models without an ADC converter, VTARGET will report a fixed 3.3V level at all times + * which should allow the programmer to remain compatible at the protocol level with all AVR devices. + * + * While this application can be compiled for USB AVRs with as little as 8KB of FLASH, for full functionality 16KB or more + * of FLASH is required. On 8KB devices, ISP or PDI/TPI protocol programming support can be disabled to reduce program size. + * + * \section Sec_KnownIssues Known Issues: + * + * \par XMEGA EEPROM programming fails in some cases. + * Several users have reported that XMEGA EEPROM programming fails unless the chip is erased first. If a non-blank EEPROM + * is present, writing further EEPROM data causes corruption. + * LUFA issue tracker entry. + * + * \section Sec_Installation Installation + * The programmer supports multiple platforms, both Windows and Linux. + * + * \subsection SSec_LinuxInstallation Linux Installation + * On Linux systems, the programmer should be usable out of the box with no special setup other than (on some systems) + * editing of the system permissions to allow the programmer to be used from a non-elevated (root) context. The programmer + * is compatible with the free open source AVRDude programming software project. + * + * \subsection SSec_WindowsInstallation Windows Installation + * On Windows systems, due to an unfortunate limitation of the USB AVR devices and the Atmel Studio platform, the programmer + * requires an alternative libUSB based driver. Uninstall the existing Jungo driver for the device (if installed) and replace + * it with the driver that ships with this project, to enable access to the programmer in Atmel Studio and AVRDUDE. + * + * \section Sec_ISP ISP Connections + * Connections to the device for SPI programming (when enabled): + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Programmer Pin:Target Device Pin:ISP 6 Pin Layout:
MISOPDO1
ADCx 1VTARGET2
SCLKSCLK3
MOSIPDI4
PORTx.y 2/RESET5
GNDGND6
+ * + * In addition, the AVR's OCR1A pin will generate a 4MHz clock, to act as an external rescue device clock if the + * fuses have been mis-set. To use the recovery clock, connect the OCR1A pin of the USB AVR to the target AVR's + * XTAL1 pin, and set the ISP programming speed to 125KHz (note: other ISP speeds will not work correctly). + * + * 1 Optional, see \ref Sec_Options section - for USB AVRs with ADC modules only \n + * 2 See AUX line related tokens in the \ref Sec_Options section + * + * \section Sec_PDI PDI Connections + * Connections to the device for PDI programming (when enabled): + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Programmer Pin:Target Device Pin:PDI 6 Pin Layout:
Tx/Rx 2DATA1
ADCx 1VTARGET2
N/AN/A3
N/AN/A4
XCKCLOCK5
GNDGND6
+ * + * 1 Optional, see \ref Sec_Options section - for USB AVRs with ADC modules only \n + * 2 The AVR's Tx and Rx become the DATA line when connected together via a pair of 220 ohm resistors \n + * + * \section Sec_TPI TPI Connections + * Connections to the device for TPI programming (when enabled): + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Programmer Pin:Target Device Pin:TPI 6 Pin Layout:
Tx/Rx 2DATA1
ADCx 1VTARGET2
XCK 2CLOCK3
N/AN/A4
PORTx.y 3/RESET5
GNDGND6
+ * + * 1 Optional, see \ref Sec_Options section - for USB AVRs with ADC modules only \n + * 2 The AVR's Tx and Rx become the DATA line when connected together via a pair of 220 ohm resistors \n + * 3 See AUX line related tokens in the \ref Sec_Options section + * + * \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. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Define Name:Location:Description:
AUX_LINE_PORTAppConfig.hPORT register for the programmer's AUX target line. The use of this line varies between the programming protocols, + * but is generally used for the target's /RESET line. + * \n \n Ignored when compiled for the XPLAIN board.
AUX_LINE_PINAppConfig.hPIN register for the programmer's AUX target line. The use of this line varies between the programming protocols, + * but is generally used for the target's /RESET line. + * \n \n Ignored when compiled for the XPLAIN board.
AUX_LINE_DDRAppConfig.hDDR register for the programmer's AUX target line. The use of this line varies between the programming protocols, + * but is generally used for the target's /RESET line. + * \n \n Ignored when compiled for the XPLAIN board.
AUX_LINE_MASKAppConfig.hMask for the programmer's AUX target line. The use of this line varies between the programming protocols, + * but is generally used for the target's /RESET line. Must not be the AVR's /SS pin. + * \n \n Ignored when compiled for the XPLAIN board.
VTARGET_ADC_CHANNELAppConfig.hADC channel number (on supported AVRs) to use for VTARGET level detection, if NO_VTARGET_DETECT is not defined. + * \n \n Ignored when compiled for targets lacking an ADC.
ENABLE_ISP_PROTOCOLAppConfig.hDefine to enable SPI programming protocol support. + * \n \n Ignored when compiled for the XPLAIN board.
ENABLE_XPROG_PROTOCOLAppConfig.hDefine to enable PDI and TPI programming protocol support. + * \n \n Ignored when compiled for the XPLAIN board.
NO_VTARGET_DETECTAppConfig.hDefine to disable VTARGET sampling and reporting on AVR models with an ADC converter. This will cause the programmer + * to report a fixed 3.3V target voltage to the host regardless of the real target voltage. + * \n \n Ignored when compiled for targets lacking an ADC.
VTARGET_REF_VOLTSAppConfig.hIndicates the programmer AVR's AVCC reference voltage when measuring the target's supply voltage. Note that the supply + * voltage should never exceed the reference voltage on the programmer AVR without some form of protection to prevent damage + * to the ADC. + * \n \n Ignored when compiled for targets lacking an ADC, or when NO_VTARGET_DETECT is defined.
VTARGET_USE_INTERNAL_REFAppConfig.hSelects the internal 2.56V ADC reference voltage, instead of using the AVR's VREF pin. When enabled, this option will + * override the VTARGET_REF_VOLTS configuration option. + * \n \n Ignored when compiled for targets lacking an ADC, or when NO_VTARGET_DETECT is defined.
VTARGET_SCALE_FACTORAppConfig.hIndicates the target's supply voltage scale factor when applied to the ADC. A simple resistive divider can be used on the + * ADC pin for measuring the target's supply voltage, so that voltages above the programmer AVR's AVCC reference voltage can be + * measured. This should be the reciprocal of the division performed - e.g. if the VTARGET voltage is halved, this should be set + * to 2. + * \n \n Ignored when compiled for targets lacking an ADC, or when NO_VTARGET_DETECT is defined.
XCK_RESCUE_CLOCK_ENABLEAppConfig.hDefine to move the ISP rescue clock to the AVR's XCK pin instead of the OCR1A output pin. This is useful for existing programming + * hardware that does not expose the OCR1A pin of the AVR, but may cause some issues with PDI programming mode.
INVERTED_ISP_MISOAppConfig.hDefine to invert the received data on the ISP MISO line. This is sometimes needed depending on the level translation hardware used, + * if the translator hardware inverts the received logic level.
FIRMWARE_VERSION_MINORAppConfig.hDefine 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.
+ */ + diff --git a/Projects/AVRISP-MKII/AVRISPDescriptors.c b/Projects/AVRISP-MKII/AVRISPDescriptors.c new file mode 100644 index 0000000000..f4210fbbbf --- /dev/null +++ b/Projects/AVRISP-MKII/AVRISPDescriptors.c @@ -0,0 +1,203 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +/** \file + * + * USB Device Descriptors, for library use when in USB device mode. Descriptors are special + * computer-readable structures which the host requests upon device enumeration, to determine + * the device's capabilities and functions. + */ + +#include "AVRISPDescriptors.h" + +/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall + * device characteristics, including the supported USB version, control endpoint size and the + * number of device configurations. The descriptor is read out by the USB host when the enumeration + * process begins. + */ +const USB_Descriptor_Device_t PROGMEM AVRISP_DeviceDescriptor = +{ + .Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device}, + + .USBSpecification = VERSION_BCD(1,1,0), + .Class = USB_CSCP_VendorSpecificClass, + .SubClass = USB_CSCP_NoDeviceSubclass, + .Protocol = USB_CSCP_NoDeviceProtocol, + + .Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE, + + .VendorID = 0x03EB, + .ProductID = 0x2104, + .ReleaseNumber = VERSION_BCD(2,0,0), + + .ManufacturerStrIndex = AVRISP_STRING_ID_Manufacturer, + .ProductStrIndex = AVRISP_STRING_ID_Product, + .SerialNumStrIndex = AVRISP_STRING_ID_Serial, + + .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS +}; + +/** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage + * of the device in one of its supported configurations, including information about any device interfaces + * and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting + * a configuration so that the host may correctly communicate with the USB device. + */ +const AVRISP_USB_Descriptor_Configuration_t PROGMEM AVRISP_ConfigurationDescriptor = +{ + .Config = + { + .Header = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration}, + + .TotalConfigurationSize = sizeof(AVRISP_USB_Descriptor_Configuration_t), + .TotalInterfaces = 1, + + .ConfigurationNumber = 1, + .ConfigurationStrIndex = NO_DESCRIPTOR, + + .ConfigAttributes = (USB_CONFIG_ATTR_RESERVED | USB_CONFIG_ATTR_SELFPOWERED), + + .MaxPowerConsumption = USB_CONFIG_POWER_MA(100) + }, + + .AVRISP_Interface = + { + .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, + + .InterfaceNumber = INTERFACE_ID_AVRISP, + .AlternateSetting = 0, + + .TotalEndpoints = 2, + + .Class = USB_CSCP_VendorSpecificClass, + .SubClass = USB_CSCP_NoDeviceSubclass, + .Protocol = USB_CSCP_NoDeviceProtocol, + + .InterfaceStrIndex = NO_DESCRIPTOR + }, + + .AVRISP_DataInEndpoint = + { + .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, + + .EndpointAddress = AVRISP_DATA_IN_EPADDR, + .Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), + .EndpointSize = AVRISP_DATA_EPSIZE, + .PollingIntervalMS = 0x0A + }, + + .AVRISP_DataOutEndpoint = + { + .Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, + + .EndpointAddress = AVRISP_DATA_OUT_EPADDR, + .Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), + .EndpointSize = AVRISP_DATA_EPSIZE, + .PollingIntervalMS = 0x0A + }, +}; + +/** Language descriptor structure. This descriptor, located in FLASH memory, is returned when the host requests + * the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate + * via the language ID table available at USB.org what languages the device supports for its string descriptors. + */ +const USB_Descriptor_String_t PROGMEM AVRISP_LanguageString = USB_STRING_DESCRIPTOR_ARRAY(LANGUAGE_ID_ENG); + +/** Manufacturer descriptor string. This is a Unicode string containing the manufacturer's details in human readable + * form, and is read out upon request by the host when the appropriate string ID is requested, listed in the Device + * Descriptor. + */ +const USB_Descriptor_String_t PROGMEM AVRISP_ManufacturerString = USB_STRING_DESCRIPTOR(L"ATMEL"); + +/** Product descriptor string. This is a Unicode string containing the product's details in human readable form, + * and is read out upon request by the host when the appropriate string ID is requested, listed in the Device + * Descriptor. + */ +const USB_Descriptor_String_t PROGMEM AVRISP_ProductString = USB_STRING_DESCRIPTOR(L"AVRISP mkII"); + +/** Serial number string. This is a Unicode string containing the device's unique serial number, expressed as a + * series of uppercase hexadecimal digits. + */ +const USB_Descriptor_String_t PROGMEM AVRISP_SerialString = USB_STRING_DESCRIPTOR(L"000200012345\0" + // Note: Real AVRISP-MKII has the embedded NUL byte, bug in firmware? +); + +/** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors" + * documentation) by the application code so that the address and size of a requested descriptor can be given + * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function + * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the + * USB host. + */ +uint16_t AVRISP_GetDescriptor(const uint16_t wValue, + const uint16_t wIndex, + const void** const DescriptorAddress) +{ + const uint8_t DescriptorType = (wValue >> 8); + const uint8_t DescriptorNumber = (wValue & 0xFF); + + const void* Address = NULL; + uint16_t Size = NO_DESCRIPTOR; + + switch (DescriptorType) + { + case DTYPE_Device: + Address = &AVRISP_DeviceDescriptor; + Size = sizeof(USB_Descriptor_Device_t); + break; + case DTYPE_Configuration: + Address = &AVRISP_ConfigurationDescriptor; + Size = sizeof(AVRISP_USB_Descriptor_Configuration_t); + break; + case DTYPE_String: + switch (DescriptorNumber) + { + case AVRISP_STRING_ID_Language: + Address = &AVRISP_LanguageString; + Size = pgm_read_byte(&AVRISP_LanguageString.Header.Size); + break; + case AVRISP_STRING_ID_Manufacturer: + Address = &AVRISP_ManufacturerString; + Size = pgm_read_byte(&AVRISP_ManufacturerString.Header.Size); + break; + case AVRISP_STRING_ID_Product: + Address = &AVRISP_ProductString; + Size = pgm_read_byte(&AVRISP_ProductString.Header.Size); + break; + case AVRISP_STRING_ID_Serial: +