aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2010-11-14 06:44:57 +0000
committerDean Camera <dean@fourwalledcubicle.com>2010-11-14 06:44:57 +0000
commitf2324fc2b4a926dc2db5d3e681a019949fe23342 (patch)
treec16061ed6c1a73174144789716220ec465c59e74
parentd41cd9a41aca81eaa21e65e6c53672fe604fa3d5 (diff)
downloadlufa-f2324fc2b4a926dc2db5d3e681a019949fe23342.tar.gz
lufa-f2324fc2b4a926dc2db5d3e681a019949fe23342.tar.bz2
lufa-f2324fc2b4a926dc2db5d3e681a019949fe23342.zip
Second patch to fix incorrect PDI/TPI programming speed.
-rw-r--r--LUFA/ManPages/ChangeLog.txt2
-rw-r--r--Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.c4
-rw-r--r--Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c4
-rw-r--r--Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h4
-rw-r--r--Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h1
-rw-r--r--Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c2
6 files changed, 8 insertions, 9 deletions
diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt
index 7d4b2c1b5..1eda701ab 100644
--- a/LUFA/ManPages/ChangeLog.txt
+++ b/LUFA/ManPages/ChangeLog.txt
@@ -101,7 +101,7 @@
* - Fixed USBtoSerial and XPLAINBridge demos discarding data from the PC if the send buffer becomes full
* - Fixed broken input in the MagStripe reader project due to an incorrect HID report descriptor
* - Fixed incorrect PollingIntervalMS values in the demo/project/bootloader endpoint descriptors (thanks to MCS Electronics)
- * - Fixed PDI/TPI programming speed of ~250KHz in the AVRISP-MKII Clone project, instead of the desired 500KHz
+ * - Fixed PDI/TPI programming speed of ~250KHz in the AVRISP-MKII Clone project, instead of the desired 500KHz (thanks to Tom Light)
*
* \section Sec_ChangeLog100807 Version 100807
* <b>New:</b>
diff --git a/Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.c b/Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.c
index 9056942d2..97e0fb305 100644
--- a/Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.c
+++ b/Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.c
@@ -66,7 +66,7 @@ void ISPProtocol_EnterISPMode(void)
/* Perform execution delay, initialize SPI bus */
ISPProtocol_DelayMS(Enter_ISP_Params.ExecutionDelayMS);
- ISPTarget_Init();
+ ISPTarget_EnableTargetISP();
/* Continuously attempt to synchronize with the target until either the number of attempts specified
* by the host has exceeded, or the the device sends back the expected response values */
@@ -118,7 +118,7 @@ void ISPProtocol_LeaveISPMode(void)
/* Perform pre-exit delay, release the target /RESET, disable the SPI bus and perform the post-exit delay */
ISPProtocol_DelayMS(Leave_ISP_Params.PreDelayMS);
ISPTarget_ChangeTargetResetLine(false);
- ISPTarget_ShutDown();
+ ISPTarget_DisableTargetISP();
ISPProtocol_DelayMS(Leave_ISP_Params.PostDelayMS);
Endpoint_Write_Byte(CMD_LEAVE_PROGMODE_ISP);
diff --git a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c
index d315e9d1e..66a1c2560 100644
--- a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c
+++ b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c
@@ -142,7 +142,7 @@ ISR(TIMER1_COMPA_vect, ISR_BLOCK)
/** Initialises the appropriate SPI driver (hardware or software, depending on the selected ISP speed) ready for
* communication with the attached target.
*/
-void ISPTarget_Init(void)
+void ISPTarget_EnableTargetISP(void)
{
uint8_t SCKDuration = V2Params_GetParameterValue(PARAM_SCK_DURATION);
@@ -167,7 +167,7 @@ void ISPTarget_Init(void)
/** Shuts down the current selected SPI driver (hardware or software, depending on the selected ISP speed) so that no
* further communications can occur until the driver is re-initialized.
*/
-void ISPTarget_ShutDown(void)
+void ISPTarget_DisableTargetISP(void)
{
if (HardwareSPIMode)
{
diff --git a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h
index aae4c5b53..ba47fdde9 100644
--- a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h
+++ b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h
@@ -69,8 +69,8 @@
extern bool HardwareSPIMode;
/* Function Prototypes: */
- void ISPTarget_Init(void);
- void ISPTarget_ShutDown(void);
+ void ISPTarget_EnableTargetISP(void);
+ void ISPTarget_DisableTargetISP(void);
void ISPTarget_ConfigureRescueClock(void);
void ISPTarget_ConfigureSoftwareISP(const uint8_t SCKDuration);
uint8_t ISPTarget_TransferSoftSPIByte(const uint8_t Byte);
diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h
index 541841105..e5952a1ac 100644
--- a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h
+++ b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h
@@ -113,7 +113,6 @@
extern uint16_t XPROG_Param_EEPageSize;
extern uint8_t XPROG_Param_NVMCSRRegAddr;
extern uint8_t XPROG_Param_NVMCMDRegAddr;
- extern uint8_t XPROG_SelectedProtocol;
/* Function Prototypes: */
void XPROGProtocol_SetMode(void);
diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c b/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c
index 5d59f7f17..8760e62cb 100644
--- a/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c
+++ b/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c
@@ -55,7 +55,7 @@ void XPROGTarget_EnableTargetPDI(void)
_delay_us(1);
/* Set up the synchronous USART for XMEGA communications - 8 data bits, even parity, 2 stop bits */
- UBRR1 = (F_CPU / XPROG_HARDWARE_SPEED);
+ UBRR1 = ((F_CPU / 2 / XPROG_HARDWARE_SPEED) - 1);
UCSR1B = (1 << TXEN1);
UCSR1C = (1 << UMSEL10) | (1 << UPM11) | (1 << USBS1) | (1 << UCSZ11) | (1 << UCSZ10) | (1 << UCPOL1);