@ -57,6 +57,7 @@ void ISPProtocol_EnterISPMode(void)
Endpoint_Read_Stream_LE ( & Enter_ISP_Params , sizeof ( Enter_ISP_Params ) , NO_STREAM_CALLBACK ) ;
Endpoint_ClearOUT ( ) ;
Endpoint_SelectEndpoint ( AVRISP_DATA_IN_EPNUM ) ;
Endpoint_SetEndpointDirection ( ENDPOINT_DIR_IN ) ;
uint8_t ResponseStatus = STATUS_CMD_FAILED ;
@ -117,6 +118,7 @@ void ISPProtocol_LeaveISPMode(void)
Endpoint_Read_Stream_LE ( & Leave_ISP_Params , sizeof ( Leave_ISP_Params ) , NO_STREAM_CALLBACK ) ;
Endpoint_ClearOUT ( ) ;
Endpoint_SelectEndpoint ( AVRISP_DATA_IN_EPNUM ) ;
Endpoint_SetEndpointDirection ( ENDPOINT_DIR_IN ) ;
/* Perform pre-exit delay, release the target /RESET, disable the SPI bus and perform the post-exit delay */
@ -163,6 +165,7 @@ void ISPProtocol_ProgramMemory(uint8_t V2Command)
if ( Write_Memory_Params . BytesToWrite > sizeof ( Write_Memory_Params . ProgData ) )
{
Endpoint_ClearOUT ( ) ;
Endpoint_SelectEndpoint ( AVRISP_DATA_IN_EPNUM ) ;
Endpoint_SetEndpointDirection ( ENDPOINT_DIR_IN ) ;
Endpoint_Write_Byte ( V2Command ) ;
@ -174,6 +177,7 @@ void ISPProtocol_ProgramMemory(uint8_t V2Command)
Endpoint_Read_Stream_LE ( & Write_Memory_Params . ProgData , Write_Memory_Params . BytesToWrite , NO_STREAM_CALLBACK ) ;
Endpoint_ClearOUT ( ) ;
Endpoint_SelectEndpoint ( AVRISP_DATA_IN_EPNUM ) ;
Endpoint_SetEndpointDirection ( ENDPOINT_DIR_IN ) ;
uint8_t ProgrammingStatus = STATUS_CMD_OK ;
@ -305,6 +309,7 @@ void ISPProtocol_ReadMemory(uint8_t V2Command)
Read_Memory_Params . BytesToRead = SwapEndian_16 ( Read_Memory_Params . BytesToRead ) ;
Endpoint_ClearOUT ( ) ;
Endpoint_SelectEndpoint ( AVRISP_DATA_IN_EPNUM ) ;
Endpoint_SetEndpointDirection ( ENDPOINT_DIR_IN ) ;
Endpoint_Write_Byte ( V2Command ) ;
@ -375,6 +380,7 @@ void ISPProtocol_ChipErase(void)
Endpoint_Read_Stream_LE ( & Erase_Chip_Params , sizeof ( Erase_Chip_Params ) , NO_STREAM_CALLBACK ) ;
Endpoint_ClearOUT ( ) ;
Endpoint_SelectEndpoint ( AVRISP_DATA_IN_EPNUM ) ;
Endpoint_SetEndpointDirection ( ENDPOINT_DIR_IN ) ;
uint8_t ResponseStatus = STATUS_CMD_OK ;
@ -410,6 +416,7 @@ void ISPProtocol_ReadFuseLockSigOSCCAL(uint8_t V2Command)
Endpoint_Read_Stream_LE ( & Read_FuseLockSigOSCCAL_Params , sizeof ( Read_FuseLockSigOSCCAL_Params ) , NO_STREAM_CALLBACK ) ;
Endpoint_ClearOUT ( ) ;
Endpoint_SelectEndpoint ( AVRISP_DATA_IN_EPNUM ) ;
Endpoint_SetEndpointDirection ( ENDPOINT_DIR_IN ) ;
uint8_t ResponseBytes [ 4 ] ;
@ -440,6 +447,7 @@ void ISPProtocol_WriteFuseLock(uint8_t V2Command)
Endpoint_Read_Stream_LE ( & Write_FuseLockSig_Params , sizeof ( Write_FuseLockSig_Params ) , NO_STREAM_CALLBACK ) ;
Endpoint_ClearOUT ( ) ;
Endpoint_SelectEndpoint ( AVRISP_DATA_IN_EPNUM ) ;
Endpoint_SetEndpointDirection ( ENDPOINT_DIR_IN ) ;
/* Send the Fuse or Lock byte program commands as given by the host to the device */
@ -467,6 +475,7 @@ void ISPProtocol_SPIMulti(void)
Endpoint_Read_Stream_LE ( & SPI_Multi_Params . TxData , SPI_Multi_Params . TxBytes , NO_STREAM_CALLBACK ) ;
Endpoint_ClearOUT ( ) ;
Endpoint_SelectEndpoint ( AVRISP_DATA_IN_EPNUM ) ;
Endpoint_SetEndpointDirection ( ENDPOINT_DIR_IN ) ;
Endpoint_Write_Byte ( CMD_SPI_MULTI ) ;