clkHZ: be more generic

This commit is contained in:
Gwenhael Goavec-Merou 2021-06-12 08:40:40 +02:00
parent 6c3fb2559d
commit b5f2506fd1
6 changed files with 11 additions and 2 deletions

View File

@ -145,6 +145,8 @@ int AnlogicCable::setClkFreq(uint32_t clkHZ)
printWarn("Jtag frequency : requested " + std::to_string(req_freq) + printWarn("Jtag frequency : requested " + std::to_string(req_freq) +
"Hz -> real " + std::to_string(clkHZ) + "Hz"); "Hz -> real " + std::to_string(clkHZ) + "Hz");
_clkHZ = clkHZ;
return clkHZ; return clkHZ;
} }

View File

@ -76,7 +76,7 @@ FtdiJtagBitBang::FtdiJtagBitBang(const FTDIpp_MPSSE::mpsse_bit_config &cable,
throw std::runtime_error("_buffer realloc failed\n"); throw std::runtime_error("_buffer realloc failed\n");
_buffer = ptr; _buffer = ptr;
setClkFreq(_clkHZ); setClkFreq(clkHZ);
init(1, _tck_pin | _tms_pin | _tdi_pin, BITMODE_BITBANG); init(1, _tck_pin | _tms_pin | _tdi_pin, BITMODE_BITBANG);
setBitmode(BITMODE_BITBANG); setBitmode(BITMODE_BITBANG);

View File

@ -42,6 +42,8 @@ class FtdiJtagMPSSE : public JtagInterface, private FTDIpp_MPSSE {
return FTDIpp_MPSSE::setClkFreq(clkHZ); return FTDIpp_MPSSE::setClkFreq(clkHZ);
} }
uint32_t getClkFreq() override {return FTDIpp_MPSSE::getClkFreq();}
/* TMS */ /* TMS */
int writeTMS(uint8_t *tms, int len, bool flush_buffer) override; int writeTMS(uint8_t *tms, int len, bool flush_buffer) override;
/* clock */ /* clock */

View File

@ -294,6 +294,8 @@ int FTDIpp_MPSSE::setClkFreq(uint32_t clkHZ)
ftdi_tcioflush(_ftdi); ftdi_tcioflush(_ftdi);
#endif #endif
_clkHZ = real_freq;
return real_freq; return real_freq;
} }

View File

@ -22,6 +22,7 @@ class FTDIpp_MPSSE {
int init(unsigned char latency, unsigned char bitmask_mode, int init(unsigned char latency, unsigned char bitmask_mode,
unsigned char mode); unsigned char mode);
int setClkFreq(uint32_t clkHZ); int setClkFreq(uint32_t clkHZ);
uint32_t getClkFreq() { return _clkHZ;}
int vid() {return _vid;} int vid() {return _vid;}
int pid() {return _pid;} int pid() {return _pid;}

View File

@ -33,7 +33,7 @@ class JtagInterface {
virtual ~JtagInterface() {} virtual ~JtagInterface() {}
virtual int setClkFreq(uint32_t clkHZ) = 0; virtual int setClkFreq(uint32_t clkHZ) = 0;
virtual uint32_t getClkFreq() { return 0;} virtual uint32_t getClkFreq() {return _clkHZ;}
/*! /*!
* \brief flush TMS internal buffer (ie. transmit to converter) * \brief flush TMS internal buffer (ie. transmit to converter)
@ -80,5 +80,7 @@ class JtagInterface {
* \return 1 if success, 0 if nothing to write, -1 is something wrong * \return 1 if success, 0 if nothing to write, -1 is something wrong
*/ */
virtual int flush() = 0; virtual int flush() = 0;
protected:
uint32_t _clkHZ; /*!< current clk frequency */
}; };
#endif // _JTAGINTERFACE_H_ #endif // _JTAGINTERFACE_H_