Commit 3b95b8de authored by Dean Camera's avatar Dean Camera
Browse files

Added new VTARGET_REF_VOLTS and VTARGET_SCALE_FACTOR compile time defines to...

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.
parent 8d993afc
......@@ -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>
......
......@@ -49,7 +49,6 @@ int main(void)
for (;;)
{
Process_AVRISP_Commands();
V2Params_UpdateParamValues();
USB_USBTask();
......
......@@ -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
......
......@@ -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
}
......
......@@ -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
......
......@@ -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. */
......
......@@ -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>
......
......@@ -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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment