diff --git a/src/ftdiJtagMPSSE.cpp b/src/ftdiJtagMPSSE.cpp index 02e5efe..dfd5fd7 100644 --- a/src/ftdiJtagMPSSE.cpp +++ b/src/ftdiJtagMPSSE.cpp @@ -31,7 +31,8 @@ using namespace std; FtdiJtagMPSSE::FtdiJtagMPSSE(const FTDIpp_MPSSE::mpsse_bit_config &cable, string dev, const string &serial, uint32_t clkHZ, int8_t verbose): FTDIpp_MPSSE(cable, dev, serial, clkHZ, verbose), _ch552WA(false), - _write_mode(0), _read_mode(0) + _write_mode(MPSSE_WRITE_NEG), // always write on neg edge + _read_mode(0) { init_internal(cable); } @@ -89,16 +90,10 @@ void FtdiJtagMPSSE::config_edge() * opposite edges must be used. * Not required with classic FT2232 */ - if (!strncmp((const char *)_iproduct, "Digilent USB Device", 19)) { - if (FTDIpp_MPSSE::getClkFreq() < 15000000) { - _write_mode = MPSSE_WRITE_NEG; - _read_mode = 0; - } else { - _write_mode = 0; - _read_mode = MPSSE_READ_NEG; - } + if (FTDIpp_MPSSE::getClkFreq() >= 15000000 && + !strncmp((const char *)_iproduct, "Digilent USB Device", 19)) { + _read_mode = MPSSE_READ_NEG; } else { - _write_mode = MPSSE_WRITE_NEG; _read_mode = 0; } }