diff options
| author | Dean Camera <dean@fourwalledcubicle.com> | 2010-11-16 13:14:27 +0000 | 
|---|---|---|
| committer | Dean Camera <dean@fourwalledcubicle.com> | 2010-11-16 13:14:27 +0000 | 
| commit | cbc00c843a3107b8c76f0b3f1e3425f924518416 (patch) | |
| tree | 00776d360607a273bcb4abafb47133a3887761a5 /Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c | |
| parent | a9f313afa9a65a692718b8609fd47ae1dcb60523 (diff) | |
| download | lufa-cbc00c843a3107b8c76f0b3f1e3425f924518416.tar.gz lufa-cbc00c843a3107b8c76f0b3f1e3425f924518416.tar.bz2 lufa-cbc00c843a3107b8c76f0b3f1e3425f924518416.zip | |
Fixed AVRISP-MKII clone project not starting the target's program automatically after exiting TPI programming mode.
Diffstat (limited to 'Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c')
| -rw-r--r-- | Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c | 62 | 
1 files changed, 4 insertions, 58 deletions
| diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c index 276f63e0e..223a73511 100644 --- a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c +++ b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c @@ -118,43 +118,9 @@ static void XPROGProtocol_EnterXPROGMode(void)  	bool NVMBusEnabled = false;  	if (XPROG_SelectedProtocol == XPRG_PROTOCOL_PDI) -	{ -		/* Enable PDI programming mode with the attached target */ -		XPROGTarget_EnableTargetPDI(); - -		/* Store the RESET key into the RESET PDI register to keep the XMEGA in reset */ -		XPROGTarget_SendByte(PDI_CMD_STCS | PDI_RESET_REG); -		XPROGTarget_SendByte(PDI_RESET_KEY); - -		/* Lower direction change guard time to 0 USART bits */ -		XPROGTarget_SendByte(PDI_CMD_STCS | PDI_CTRL_REG); -		XPROGTarget_SendByte(0x07); - -		/* Enable access to the XPROG NVM bus by sending the documented NVM access key to the device */ -		XPROGTarget_SendByte(PDI_CMD_KEY); -		for (uint8_t i = sizeof(PDI_NVMENABLE_KEY); i > 0; i--) -		  XPROGTarget_SendByte(PDI_NVMENABLE_KEY[i - 1]); - -		/* Wait until the NVM bus becomes active */ -		NVMBusEnabled = XMEGANVM_WaitWhileNVMBusBusy(); -	} +	  NVMBusEnabled = XMEGANVM_EnablePDI();  	else if (XPROG_SelectedProtocol == XPRG_PROTOCOL_TPI) -	{ -		/* Enable TPI programming mode with the attached target */ -		XPROGTarget_EnableTargetTPI(); - -		/* Lower direction change guard time to 0 USART bits */ -		XPROGTarget_SendByte(TPI_CMD_SSTCS | TPI_CTRL_REG); -		XPROGTarget_SendByte(0x07); - -		/* Enable access to the XPROG NVM bus by sending the documented NVM access key to the device */ -		XPROGTarget_SendByte(TPI_CMD_SKEY); -		for (uint8_t i = sizeof(TPI_NVMENABLE_KEY); i > 0; i--) -		  XPROGTarget_SendByte(TPI_NVMENABLE_KEY[i - 1]); - -		/* Wait until the NVM bus becomes active */ -		NVMBusEnabled = TINYNVM_WaitWhileNVMBusBusy(); -	} +	  NVMBusEnabled = TINYNVM_EnableTPI();  	Endpoint_Write_Byte(CMD_XPROG);  	Endpoint_Write_Byte(XPRG_CMD_ENTER_PROGMODE); @@ -172,29 +138,9 @@ static void XPROGProtocol_LeaveXPROGMode(void)  	Endpoint_SetEndpointDirection(ENDPOINT_DIR_IN);  	if (XPROG_SelectedProtocol == XPRG_PROTOCOL_PDI) -	{ -		XMEGANVM_WaitWhileNVMBusBusy(); - -		/* Clear the RESET key in the RESET PDI register to allow the XMEGA to run */ -		XPROGTarget_SendByte(PDI_CMD_STCS | PDI_RESET_REG); -		XPROGTarget_SendByte(0x00); - -		/* Do it twice to make sure it takes affect (silicon bug?) */ -		XPROGTarget_SendByte(PDI_CMD_STCS | PDI_RESET_REG); -		XPROGTarget_SendByte(0x00); - -		XPROGTarget_DisableTargetPDI(); -	} +	  XMEGANVM_DisablePDI();  	else -	{ -		TINYNVM_WaitWhileNVMBusBusy(); - -		/* Clear the NVMEN bit in the TPI CONTROL register to disable TPI mode */ -		XPROGTarget_SendByte(TPI_CMD_SSTCS | TPI_CTRL_REG); -		XPROGTarget_SendByte(0x00); - -		XPROGTarget_DisableTargetTPI(); -	} +	  TINYNVM_DisableTPI();  	#if defined(XCK_RESCUE_CLOCK_ENABLE) && defined(ENABLE_ISP_PROTOCOL)  	ISPTarget_ConfigureRescueClock(); | 
