/*\r
LUFA Library\r
- Copyright (C) Dean Camera, 2009.\r
+ Copyright (C) Dean Camera, 2010.\r
\r
dean [at] fourwalledcubicle [dot] com\r
www.fourwalledcubicle.com\r
*/\r
\r
/*\r
- Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+ Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
\r
Permission to use, copy, modify, distribute, and sell this \r
software and its documentation for any purpose is hereby granted\r
XPROGTarget_SendByte(PDI_CMD_STCS | PDI_RESET_REG); \r
XPROGTarget_SendByte(PDI_RESET_KEY);\r
\r
+ /* Lower direction change guard time to 8 USART bits */\r
+ XPROGTarget_SendByte(PDI_CMD_STCS | PDI_CTRL_REG); \r
+ XPROGTarget_SendByte(0x04);\r
+\r
/* Enable access to the XPROG NVM bus by sending the documented NVM access key to the device */\r
XPROGTarget_SendByte(PDI_CMD_KEY); \r
for (uint8_t i = sizeof(PDI_NVMENABLE_KEY); i > 0; i--)\r
/* Enable TPI programming mode with the attached target */\r
XPROGTarget_EnableTargetTPI();\r
\r
+ /* Lower direction change guard time to 8 USART bits */\r
+ XPROGTarget_SendByte(TPI_CMD_SSTCS | TPI_CTRL_REG);\r
+ XPROGTarget_SendByte(0x04); \r
+ \r
/* Enable access to the XPROG NVM bus by sending the documented NVM access key to the device */\r
XPROGTarget_SendByte(TPI_CMD_SKEY); \r
for (uint8_t i = sizeof(TPI_NVMENABLE_KEY); i > 0; i--)\r
}\r
else\r
{\r
+ Serial_TxByte((uint8_t)WriteMemory_XPROG_Params.Length);\r
+ \r
/* Send write command to the TPI device, indicate timeout if occurred */\r
- if (!(TINYNVM_WriteMemory(WriteMemory_XPROG_Params.Address, WriteMemory_XPROG_Params.ProgData[0])))\r
- ReturnStatus = XPRG_ERR_TIMEOUT;\r
+ if (!(TINYNVM_WriteMemory(WriteMemory_XPROG_Params.Address, WriteMemory_XPROG_Params.ProgData,\r
+ WriteMemory_XPROG_Params.Length)))\r
+ {\r
+ ReturnStatus = XPRG_ERR_TIMEOUT;\r
+ }\r
}\r
\r
Endpoint_Write_Byte(CMD_XPROG);\r
}\r
else\r
{\r
+ Serial_TxByte((uint8_t)ReadMemory_XPROG_Params.Length);\r
+\r
/* Read the TPI target's memory, indicate timeout if occurred */\r
if (!(TINYNVM_ReadMemory(ReadMemory_XPROG_Params.Address, ReadBuffer, ReadMemory_XPROG_Params.Length)))\r
ReturnStatus = XPRG_ERR_TIMEOUT;\r