Embedded ICSP SendCommand头中第4位的TDO是什么意思?(PIC32MX,ICSP 2线4相)

Embedded ICSP SendCommand头中第4位的TDO是什么意思?(PIC32MX,ICSP 2线4相),embedded,pic,jtag,Embedded,Pic,Jtag,现在我正在尝试为PIC32MX实现。我正在使用PIC32MX512L和PIC32MX512H。PIC32MX512L最终必须将程序传输至PIC32MX512H的两根导线PGEC2和PGED2 现在我正在尝试执行检查设备操作。按照规定,在TDI时钟保持低位时,我通过MCLR杂耍并在TMS时钟上执行SetMode 6B01111进入编程模式。TAP控制器在每一个TDO低时回复零 之后,我必须执行send命令MTAP\u SW\u MTAP以选择MTAP控制器。要移位的顺序是 (header) 01

现在我正在尝试为PIC32MX实现。我正在使用PIC32MX512L和PIC32MX512H。PIC32MX512L最终必须将程序传输至PIC32MX512H的两根导线PGEC2和PGED2

现在我正在尝试执行检查设备操作。按照规定,在TDI时钟保持低位时,我通过MCLR杂耍并在TMS时钟上执行SetMode 6B01111进入编程模式。TAP控制器在每一个TDO低时回复零

之后,我必须执行send命令MTAP\u SW\u MTAP以选择MTAP控制器。要移位的顺序是

(header) 01 01 00 00_ | (data) 00 00 10 00 00 | (most sign. bit) 01 | (footer) 01 00 
每对的第一位是TDI,第二位是TMS。我在第一个时钟上写TDI,在第二个时钟上写TMS,在第三个和第四个时钟上读TDO。该序列从左向右馈送。移位位在每个时钟下降期间保持其值

问题 在移动前4对之后,TDO线在第三个时钟的第四对上走高,在第四个时钟的4相部分结束时走低。我在上面的顺序中用下划线标记了这个点。之后,控制器将忽略任何其他命令。在下一个SendCommand MTAP_命令中,无论我发送命令的频率有多高,TDO都将保持较低,稍后XferData MCHP_状态的TDO仍将保持较低

我用示波器做了一个小屏幕截图。蓝线是时钟,绿线是数据。我指的是右边的跳跃

问题 有人知道TAP控制器在第四阶段TDO高的情况下想告诉我什么吗


提前谢谢你

嗯,我已经修好了。通常,开场白的最后一个TDO是输出的第一个最低有效位。对于SendCommand,它没有任何意义,但对于XferData和XferFastData,它很重要


对于XferFastData,根据规范,它是PrAacc位。如果该位为零,则应重复整个操作。但是要注意:MCU的实现并没有遵循规范。如果你真的重新启动FastData的整个操作,如果PrAcc为零,它将无法工作。相反,只需忽略位并继续编写即可。通过反复试验,并将XferFastData实现与pic32prog进行比较,我最终找到了答案。

到目前为止,我在实现中发现了一些错误。现在我仍然不知道我是否完全正确地理解了规范:根据图6-4,应该编写一个命令5h0x07。LSb片段显示它写入了这五个位。之后,将写入MSb。我知道MSb必须重复。与此相反,在图6-6中,XferData在LSb和MSb中写入31位。我没看到。我的第二个错误是,在6-6中,TDO输出已经从最后一个头位开始,而在6-4中,它开始用第一个命令位写入TDO。非常感谢您修复我的帖子,Martin。我现在可以成功地擦除设备,一旦我成功地刷新了它,我将在这里发布我的经验作为完整的答案: