From 2eac30c24e8e921a91b220c60d8d82fe69a93363 Mon Sep 17 00:00:00 2001 From: Gwenhael Goavec-Merou Date: Thu, 10 Mar 2022 07:43:14 +0100 Subject: [PATCH] ftdiJtagMPSSE: fix read/write polarity: always write on neg, read is by default on pos but may on neg with arty --- src/ftdiJtagMPSSE.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) 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; } }