ftdiJtagMPSSE: fix read/write polarity: always write on neg, read is by default on pos but may on neg with arty

This commit is contained in:
Gwenhael Goavec-Merou 2022-03-10 07:43:14 +01:00
parent 28ebc98b1b
commit 2eac30c24e
1 changed files with 5 additions and 10 deletions

View File

@ -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;
}
}