diff --git a/src/usb_ftdi/ftdimodule.cpp b/src/usb_ftdi/ftdimodule.cpp index 33bd12fbee70c181d5992a36c5b10e6d52e63495..4137d05b3569ab5672396bd50cbcd56ac585d701 100644 --- a/src/usb_ftdi/ftdimodule.cpp +++ b/src/usb_ftdi/ftdimodule.cpp @@ -104,7 +104,12 @@ void CFTDI::hard_config(void *config) /* handle exceptions */ throw CFTDIException(_HERE_,error_messages[ft_status],this->comm_id); } - usleep(100); + usleep(1000000); + if((ft_status=FT_SetBitMode(this->ft_handle,0xFF,0x40))!=FT_OK) + { + /* handle exceptions */ + throw CFTDIException(_HERE_,error_messages[ft_status],this->comm_id); + } if((ft_status=FT_SetLatencyTimer(this->ft_handle,2))!=FT_OK) { @@ -123,7 +128,7 @@ void CFTDI::hard_config(void *config) /* handle exceptions */ throw CFTDIException(_HERE_,error_messages[ft_status],this->comm_id); } - if((ft_status=FT_Purge(this->ft_handle,FT_PURGE_RX))!=FT_OK) + if((ft_status=FT_Purge(this->ft_handle,FT_PURGE_TX|FT_PURGE_RX))!=FT_OK) { /* handle exceptions */ throw CFTDIException(_HERE_,error_messages[ft_status],this->comm_id);