mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-16 21:01:31 +00:00
Reduced guard bit time in the AVRISP project PDI/TPI protocols to reduce the time needed to reverse the data communication direction.
This commit is contained in:
parent
b1dbd92c32
commit
f5951d1593
@ -124,6 +124,10 @@ static void XPROGProtocol_EnterXPROGMode(void)
|
|||||||
XPROGTarget_SendByte(PDI_CMD_STCS | PDI_RESET_REG);
|
XPROGTarget_SendByte(PDI_CMD_STCS | PDI_RESET_REG);
|
||||||
XPROGTarget_SendByte(PDI_RESET_KEY);
|
XPROGTarget_SendByte(PDI_RESET_KEY);
|
||||||
|
|
||||||
|
/* Lower direction change guard time to 8 USART bits */
|
||||||
|
XPROGTarget_SendByte(PDI_CMD_STCS | PDI_CTRL_REG);
|
||||||
|
XPROGTarget_SendByte(0x04);
|
||||||
|
|
||||||
/* Enable access to the XPROG NVM bus by sending the documented NVM access key to the device */
|
/* Enable access to the XPROG NVM bus by sending the documented NVM access key to the device */
|
||||||
XPROGTarget_SendByte(PDI_CMD_KEY);
|
XPROGTarget_SendByte(PDI_CMD_KEY);
|
||||||
for (uint8_t i = sizeof(PDI_NVMENABLE_KEY); i > 0; i--)
|
for (uint8_t i = sizeof(PDI_NVMENABLE_KEY); i > 0; i--)
|
||||||
@ -134,10 +138,13 @@ static void XPROGProtocol_EnterXPROGMode(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
/* Enable TPI programming mode with the attached target */
|
/* Enable TPI programming mode with the attached target */
|
||||||
XPROGTarget_EnableTargetTPI();
|
XPROGTarget_EnableTargetTPI();
|
||||||
|
|
||||||
|
/* Lower direction change guard time to 8 USART bits */
|
||||||
|
XPROGTarget_SendByte(TPI_CMD_SSTCS | TPI_CTRL_REG);
|
||||||
|
XPROGTarget_SendByte(0x04);
|
||||||
|
|
||||||
/* Enable access to the XPROG NVM bus by sending the documented NVM access key to the device */
|
/* Enable access to the XPROG NVM bus by sending the documented NVM access key to the device */
|
||||||
XPROGTarget_SendByte(TPI_CMD_SKEY);
|
XPROGTarget_SendByte(TPI_CMD_SKEY);
|
||||||
for (uint8_t i = sizeof(TPI_NVMENABLE_KEY); i > 0; i--)
|
for (uint8_t i = sizeof(TPI_NVMENABLE_KEY); i > 0; i--)
|
||||||
@ -145,8 +152,6 @@ static void XPROGProtocol_EnterXPROGMode(void)
|
|||||||
|
|
||||||
/* Wait until the NVM bus becomes active */
|
/* Wait until the NVM bus becomes active */
|
||||||
NVMBusEnabled = TINYNVM_WaitWhileNVMBusBusy();
|
NVMBusEnabled = TINYNVM_WaitWhileNVMBusBusy();
|
||||||
#endif
|
|
||||||
NVMBusEnabled = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Endpoint_Write_Byte(CMD_XPROG);
|
Endpoint_Write_Byte(CMD_XPROG);
|
||||||
|
@ -420,7 +420,7 @@ static void XPROGTarget_SetRxMode(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Wait until DATA line has been pulled up to idle by the target */
|
/* Wait until DATA line has been pulled up to idle by the target */
|
||||||
while (!(BITBANG_PDIDATA_PIN & BITBANG_PDIDATA_MASK));
|
while (!(BITBANG_PDIDATA_PIN & BITBANG_PDIDATA_MASK) && TimeoutMSRemaining);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
IsSending = false;
|
IsSending = false;
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** Number of cycles between each clock when software USART mode is used */
|
/** Number of cycles between each clock when software USART mode is used */
|
||||||
#define BITS_BETWEEN_USART_CLOCKS 100
|
#define BITS_BETWEEN_USART_CLOCKS 200
|
||||||
|
|
||||||
/** Total number of bits in a single USART frame */
|
/** Total number of bits in a single USART frame */
|
||||||
#define BITS_IN_USART_FRAME 12
|
#define BITS_IN_USART_FRAME 12
|
||||||
|
Loading…
Reference in New Issue
Block a user