forked from mfulz_github/qmk_firmware
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.
This commit is contained in:
parent
8d993afc53
commit
3b95b8dedc
|
@ -9,6 +9,8 @@
|
||||||
* \section Sec_ChangeLogXXXXXX Version XXXXXX
|
* \section Sec_ChangeLogXXXXXX Version XXXXXX
|
||||||
* <b>New:</b>
|
* <b>New:</b>
|
||||||
* - Added new ADC_DisableChannel() function (thanks to Mich Davis)
|
* - 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>
|
* <b>Changed:</b>
|
||||||
* - The RingBuff library code has been replaced in the XPLAINBridge, Benito and USBtoSerial projects with an ultra lightweight
|
* - 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)
|
* 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
|
* - 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)
|
* 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
|
* \section Sec_ChangeLog100513 Version 100513
|
||||||
* <b>New:</b>
|
* <b>New:</b>
|
||||||
|
|
|
@ -49,7 +49,6 @@ int main(void)
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
Process_AVRISP_Commands();
|
Process_AVRISP_Commands();
|
||||||
|
|
||||||
V2Params_UpdateParamValues();
|
V2Params_UpdateParamValues();
|
||||||
|
|
||||||
USB_USBTask();
|
USB_USBTask();
|
||||||
|
|
|
@ -262,6 +262,21 @@
|
||||||
* targets lacking an ADC.</i></td>
|
* targets lacking an ADC.</i></td>
|
||||||
* </tr>
|
* </tr>
|
||||||
* <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>LIBUSB_DRIVER_COMPAT</td>
|
||||||
* <td>Makefile CDEFS</td>
|
* <td>Makefile CDEFS</td>
|
||||||
* <td>Define to switch to a non-standard endpoint scheme, breaking compatibility with AVRStudio under Windows but making
|
* <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))
|
#if (defined(ADC) && !defined(NO_VTARGET_DETECT))
|
||||||
/* Update VTARGET parameter with the latest ADC conversion of VTARGET on supported AVR models */
|
/* 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
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -197,6 +197,8 @@ CDEFS += -DAUX_LINE_MASK="(1 << 4)"
|
||||||
CDEFS += -DVTARGET_ADC_CHANNEL=2
|
CDEFS += -DVTARGET_ADC_CHANNEL=2
|
||||||
CDEFS += -DENABLE_ISP_PROTOCOL
|
CDEFS += -DENABLE_ISP_PROTOCOL
|
||||||
CDEFS += -DENABLE_XPROG_PROTOCOL
|
CDEFS += -DENABLE_XPROG_PROTOCOL
|
||||||
|
CDEFS += -DVTARGET_REF_VOLTS=5
|
||||||
|
CDEFS += -DVTARGET_SCALE_FACTOR=1
|
||||||
#CDEFS += -DNO_VTARGET_DETECT
|
#CDEFS += -DNO_VTARGET_DETECT
|
||||||
#CDEFS += -DLIBUSB_DRIVER_COMPAT
|
#CDEFS += -DLIBUSB_DRIVER_COMPAT
|
||||||
|
|
||||||
|
|
|
@ -86,9 +86,14 @@ int main(void)
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
if (CurrentFirmwareMode == MODE_USART_BRIDGE)
|
if (CurrentFirmwareMode == MODE_USART_BRIDGE)
|
||||||
USARTBridge_Task();
|
{
|
||||||
|
USARTBridge_Task();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
AVRISP_Task();
|
{
|
||||||
|
AVRISP_Task();
|
||||||
|
V2Params_UpdateParamValues();
|
||||||
|
}
|
||||||
|
|
||||||
USB_USBTask();
|
USB_USBTask();
|
||||||
}
|
}
|
||||||
|
@ -147,7 +152,6 @@ void SetupHardware(void)
|
||||||
USB_Init();
|
USB_Init();
|
||||||
V2Protocol_Init();
|
V2Protocol_Init();
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* Disable JTAG debugging */
|
/* Disable JTAG debugging */
|
||||||
MCUCR |= (1 << JTD);
|
MCUCR |= (1 << JTD);
|
||||||
MCUCR |= (1 << JTD);
|
MCUCR |= (1 << JTD);
|
||||||
|
@ -162,9 +166,6 @@ void SetupHardware(void)
|
||||||
/* Re-enable JTAG debugging */
|
/* Re-enable JTAG debugging */
|
||||||
MCUCR &= ~(1 << JTD);
|
MCUCR &= ~(1 << JTD);
|
||||||
MCUCR &= ~(1 << JTD);
|
MCUCR &= ~(1 << JTD);
|
||||||
#endif
|
|
||||||
|
|
||||||
CurrentFirmwareMode = MODE_USART_BRIDGE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Event handler for the library USB Configuration Changed event. */
|
/** Event handler for the library USB Configuration Changed event. */
|
||||||
|
|
|
@ -74,9 +74,9 @@
|
||||||
* <td><b>Description:</b></td>
|
* <td><b>Description:</b></td>
|
||||||
* </tr>
|
* </tr>
|
||||||
* <tr>
|
* <tr>
|
||||||
* <td>BUFF_STATICSIZE</td>
|
* <td>BUFFER_SIZE</td>
|
||||||
* <td>RingBuff.h</td>
|
* <td>LightweightRingBuff.h</td>
|
||||||
* <td>Defines the maximum number of bytes which can be buffered in each Ring Buffer.</td>
|
* <td>Defines the maximum number of bytes which can be buffered in each Ring Buffer when in serial bridge mode.</td>
|
||||||
* </tr>
|
* </tr>
|
||||||
* <tr>
|
* <tr>
|
||||||
* <td>LIBUSB_DRIVER_COMPAT</td>
|
* <td>LIBUSB_DRIVER_COMPAT</td>
|
||||||
|
|
|
@ -201,6 +201,8 @@ CDEFS += -DAUX_LINE_PIN=PINB
|
||||||
CDEFS += -DAUX_LINE_DDR=DDRB
|
CDEFS += -DAUX_LINE_DDR=DDRB
|
||||||
CDEFS += -DAUX_LINE_MASK="(1 << 4)"
|
CDEFS += -DAUX_LINE_MASK="(1 << 4)"
|
||||||
CDEFS += -DVTARGET_ADC_CHANNEL=2
|
CDEFS += -DVTARGET_ADC_CHANNEL=2
|
||||||
|
CDEFS += -DVTARGET_REF_VOLTS=3.3
|
||||||
|
CDEFS += -DVTARGET_SCALE_FACTOR=2
|
||||||
#CDEFS += -DLIBUSB_DRIVER_COMPAT
|
#CDEFS += -DLIBUSB_DRIVER_COMPAT
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue