aboutsummaryrefslogtreecommitdiffstats
path: root/Projects
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 /Projects
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.
Diffstat (limited to 'Projects')
-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
7 files changed, 30 insertions, 11 deletions
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