Increased the speed of both software and hardware TPI/PDI programming modes of the AVRISP project.

pull/1469/head
Dean Camera 15 years ago
parent 10b9394a8b
commit 12a01ed72d

@ -14,6 +14,7 @@
* <b>Changed:</b> * <b>Changed:</b>
* - AVRISP programmer project now has a more robust timeout system, allowing for a doubling of the software USART speed * - AVRISP programmer project now has a more robust timeout system, allowing for a doubling of the software USART speed
* for PDI and TPI programming * for PDI and TPI programming
* - Increased the speed of both software and hardware TPI/PDI programming modes of the AVRISP project
* *
* <b>Fixed:</b> * <b>Fixed:</b>
* - (None) * - (None)

@ -42,6 +42,8 @@ uint32_t CurrentAddress;
/** Flag to indicate that the next read/write operation must update the device's current address */ /** Flag to indicate that the next read/write operation must update the device's current address */
bool MustSetAddress; bool MustSetAddress;
bool CommandTimedOut;
/** Initializes the hardware and software associated with the V2 protocol command handling. */ /** Initializes the hardware and software associated with the V2 protocol command handling. */
void V2Protocol_Init(void) void V2Protocol_Init(void)
{ {
@ -68,6 +70,8 @@ void V2Protocol_ProcessCommand(void)
{ {
uint8_t V2Command = Endpoint_Read_Byte(); uint8_t V2Command = Endpoint_Read_Byte();
CommandTimedOut = false;
switch (V2Command) switch (V2Command)
{ {
case CMD_SIGN_ON: case CMD_SIGN_ON:

@ -124,9 +124,9 @@ 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 */ /* Lower direction change guard time to 0 USART bits */
XPROGTarget_SendByte(PDI_CMD_STCS | PDI_CTRL_REG); XPROGTarget_SendByte(PDI_CMD_STCS | PDI_CTRL_REG);
XPROGTarget_SendByte(0x04); XPROGTarget_SendByte(0x07);
/* 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);
@ -141,9 +141,9 @@ static void XPROGProtocol_EnterXPROGMode(void)
/* 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 */ /* Lower direction change guard time to 0 USART bits */
XPROGTarget_SendByte(TPI_CMD_SSTCS | TPI_CTRL_REG); XPROGTarget_SendByte(TPI_CMD_SSTCS | TPI_CTRL_REG);
XPROGTarget_SendByte(0x04); XPROGTarget_SendByte(0x07);
/* 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);

@ -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 80
/** 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…
Cancel
Save