aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2010-05-27 10:36:21 +0000
committerDean Camera <dean@fourwalledcubicle.com>2010-05-27 10:36:21 +0000
commit3b95b8dedced6c118cfb2cd7fc72c696c076119e (patch)
tree7e1f25f5fa95b9e295d490a61ab6e040588b7649
parent8d993afc5388c5f3d0ff568c607f7fed6bb7390e (diff)
downloadlufa-3b95b8dedced6c118cfb2cd7fc72c696c076119e.tar.gz
lufa-3b95b8dedced6c118cfb2cd7fc72c696c076119e.tar.bz2
lufa-3b95b8dedced6c118cfb2cd7fc72c696c076119e.zip
Added new VTARGET_REF_VOLTS and VTARGET_SCALE_FACTOR compile time defines to the AVRISP-MKII programmer project to set the VTARGET reference voltage and scale factor.
Fixed XPLAINBridge project not correctly reading the XMEGA's supply voltage when reporting back to the host.
-rw-r--r--LUFA/ManPages/ChangeLog.txt3
-rw-r--r--Projects/AVRISP-MKII/AVRISP.c1
-rw-r--r--Projects/AVRISP-MKII/AVRISP.txt15
-rw-r--r--Projects/AVRISP-MKII/Lib/V2ProtocolParams.c2
-rw-r--r--Projects/AVRISP-MKII/makefile2
-rw-r--r--Projects/XPLAINBridge/XPLAINBridge.c13
-rw-r--r--Projects/XPLAINBridge/XPLAINBridge.txt6
-rw-r--r--Projects/XPLAINBridge/makefile2
8 files changed, 33 insertions, 11 deletions
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index aa5716336..638d8a119 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -9,6 +9,8 @@
* \section Sec_ChangeLogXXXXXX Version XXXXXX
* <b>New:</b>
* - Added new ADC_DisableChannel() function (thanks to Mich Davis)
+ * - Added new VTARGET_REF_VOLTS and VTARGET_SCALE_FACTOR compile time defines to the AVRISP-MKII programmer project to set
+ * the VTARGET reference voltage and scale factor
*
* <b>Changed:</b>
* - The RingBuff library code has been replaced in the XPLAINBridge, Benito and USBtoSerial projects with an ultra lightweight
@@ -26,6 +28,7 @@
* instead of the split write-only command (thanks to Tim Margush)
* - Fixed RNDISEthernet demos crashing when calculating checksums for Ethernet/TCP packets of more than ~500 bytes due to
* an overflow in the checksum calculation loop (thanks to Kevin Malec)
+ * - Fixed XPLAINBridge project not correctly reading the XMEGA's supply voltage when reporting back to the host
*
* \section Sec_ChangeLog100513 Version 100513
* <b>New:</b>
diff --git a/Projects/AVRISP-MKII/AVRISP.c b/Projects/AVRISP-MKII/AVRISP.c
index e26d16c4c..81c1385c9 100644
--- a/Projects/AVRISP-MKII/AVRISP.c
+++ b/Projects/AVRISP-MKII/AVRISP.c
@@ -49,7 +49,6 @@ int main(void)
for (;;)
{
Process_AVRISP_Commands();
-
V2Params_UpdateParamValues();
USB_USBTask();
diff --git a/Projects/AVRISP-MKII/AVRISP.txt b/Projects/AVRISP-MKII/AVRISP.txt
index ab4472d9c..de08d5f37 100644
--- a/Projects/AVRISP-MKII/AVRISP.txt
+++ b/Projects/AVRISP-MKII/AVRISP.txt
@@ -262,6 +262,21 @@
* targets lacking an ADC.</i></td>
* </tr>
* <tr>
+ * <td>VTARGET_REF_VOLTS</td>
+ * <td>Makefile CDEFS</td>
+ * <td>Indicates 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. <i>Ignored when compiled for targets lacking an ADC, or when NO_VTARGET_DETECT is defined.</i></td>
+ * </tr>
+ * <tr>
+ * <td>VTARGET_SCALE_FACTOR</td>
+ * <td>Makefile CDEFS</td>
+ * <td>Indicates 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. <i>Ignored when compiled for targets lacking an ADC, or when NO_VTARGET_DETECT is defined.</i></td>
+ * </tr>
+ * <tr>
* <td>LIBUSB_DRIVER_COMPAT</td>
* <td>Makefile CDEFS</td>
* <td>Define to switch to a non-standard endpoint scheme, breaking compatibility with AVRStudio under Windows but making
diff --git a/Projects/AVRISP-MKII/Lib/V2ProtocolParams.c b/Projects/AVRISP-MKII/Lib/V2ProtocolParams.c
index de21f0ff2..bc3ed18e0 100644
--- a/Projects/AVRISP-MKII/Lib/V2ProtocolParams.c
+++ b/Projects/AVRISP-MKII/Lib/V2ProtocolParams.c
@@ -98,7 +98,7 @@ void V2Params_UpdateParamValues(void)
{
#if (defined(ADC) && !defined(NO_VTARGET_DETECT))
/* Update VTARGET parameter with the latest ADC conversion of VTARGET on supported AVR models */
- V2Params_SetParameterValue(PARAM_VTARGET, ((5 * 10 * ADC_GetResult()) / 1024));
+ V2Params_GetParamFromTable(PARAM_VTARGET)->ParamValue = (((uint16_t)(VTARGET_REF_VOLTS * 10 * VTARGET_SCALE_FACTOR) * ADC_GetResult()) / 1024);
#endif
}
diff --git a/Projects/AVRISP-MKII/makefile b/Projects/AVRISP-MKII/makefile
index 9cba8730a..c6b64dfe1 100644
--- a/Projects/AVRISP-MKII/makefile
+++ b/Projects/AVRISP-MKII/makefile
@@ -197,6 +197,8 @@ CDEFS += -DAUX_LINE_MASK="(1 << 4)"
CDEFS += -DVTARGET_ADC_CHANNEL=2
CDEFS += -DENABLE_ISP_PROTOCOL
CDEFS += -DENABLE_XPROG_PROTOCOL
+CDEFS += -DVTARGET_REF_VOLTS=5
+CDEFS += -DVTARGET_SCALE_FACTOR=1
#CDEFS += -DNO_VTARGET_DETECT
#CDEFS += -DLIBUSB_DRIVER_COMPAT
diff --git a/Projects/XPLAINBridge/XPLAINBridge.c b/Projects/XPLAINBridge/XPLAINBridge.c
index 79e1ddb32..4f3583e68 100644
--- a/Projects/XPLAINBridge/XPLAINBridge.c
+++ b/Projects/XPLAINBridge/XPLAINBridge.c
@@ -86,9 +86,14 @@ int main(void)
for (;;)
{
if (CurrentFirmwareMode == MODE_USART_BRIDGE)
- USARTBridge_Task();
+ {
+ USARTBridge_Task();
+ }
else
- AVRISP_Task();
+ {
+ AVRISP_Task();
+ V2Params_UpdateParamValues();
+ }
USB_USBTask();
}
@@ -147,7 +152,6 @@ void SetupHardware(void)
USB_Init();
V2Protocol_Init();
- #if 0
/* Disable JTAG debugging */
MCUCR |= (1 << JTD);
MCUCR |= (1 << JTD);
@@ -162,9 +166,6 @@ void SetupHardware(void)
/* Re-enable JTAG debugging */
MCUCR &= ~(1 << JTD);
MCUCR &= ~(1 << JTD);
- #endif
-
- CurrentFirmwareMode = MODE_USART_BRIDGE;
}
/** Event handler for the library USB Configuration Changed event. */
diff --git a/Projects/XPLAINBridge/XPLAINBridge.txt b/Projects/XPLAINBridge/XPLAINBridge.txt
index 3f9ab8ed3..f22feca8e 100644
--- a/Projects/XPLAINBridge/XPLAINBridge.txt
+++ b/Projects/XPLAINBridge/XPLAINBridge.txt
@@ -74,9 +74,9 @@
* <td><b>Description:</b></td>
* </tr>
* <tr>
- * <td>BUFF_STATICSIZE</td>
- * <td>RingBuff.h</td>
- * <td>Defines the maximum number of bytes which can be buffered in each Ring Buffer.</td>
+ * <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>
diff --git a/Projects/XPLAINBridge/makefile b/Projects/XPLAINBridge/makefile
index c68c91da1..1aefdcad4 100644
--- a/Projects/XPLAINBridge/makefile
+++ b/Projects/XPLAINBridge/makefile
@@ -201,6 +201,8 @@ CDEFS += -DAUX_LINE_PIN=PINB
CDEFS += -DAUX_LINE_DDR=DDRB
CDEFS += -DAUX_LINE_MASK="(1 << 4)"
CDEFS += -DVTARGET_ADC_CHANNEL=2
+CDEFS += -DVTARGET_REF_VOLTS=3.3
+CDEFS += -DVTARGET_SCALE_FACTOR=2
#CDEFS += -DLIBUSB_DRIVER_COMPAT