From: Hynek S. <ec...@ce...> - 2017-04-26 13:23:58
|
Hi, I prepared CC1310's JTAG test using MCU connected to JTAG generating JTAG sequences and finally I have an idea what could be wrong between openOCD and CC1310. I took two sets of JTAG signals/sequences: one from openOCD (not always reliable connection), another from J-Link (reliable connection). J-Link sequence main differencies: - it begins always with TAP reset (it is missing with openOCD at the very beginning of communication) - in case of 'irscan' it uses short path from Exit1IR directly to UpdateIR (openOCD uses path through PauseIR and Exit2IR) - writing of CP1=9 is at once (in openOCD, ti-cjtag.cfg divides this sequence to more passes through ShiftDR-PauseDR, i.e. CP1=2+2+2+2+1) - some minor differences on TDI signal in ShiftDR... - there are not any gaps in communication (openOCD/FTDI adapter has lot of gaps there; usually between every config line...) It seems that the main problem here is the first irscan command (see ti-cjtag.cfg). When it ends with Exit1IR-UpdateIR (J-Link method), it works always fine. When it ends with Exit1IR-PauseIR-Exit2IR-UpdateIR (openOCD method), it sometimes fails. (and because openOCD does this connection sequence always three times, it often fails) - I can demonstrate it on my testing circuit where adding or removing these two states leads to unreliable or reliable communication. Other differencies seem to be not important and I haven't noticed any influence on communication reliability. My question is: is there any way how to instruct 'irscan' not to go through -PauseIR-Exit2IR- but to use short way Exit1IR-UpdateIR? I tried to look for it in source files: I have found command 'tms_sequence', but it is set to 'short' by default. So it must be somewhere else that irscan automatically ends in PauseIR or Exit2IR state... I think that changing the first 'irscan' beahviour would help to get reliable switch from cJTAG to JTAG on CC1310... but I don't know how to verify in on real openOCD... Best regards, Hynek |