现在我正在尝试实现 PIC32MX 的闪存编程规范。我正在使用 PIC32MX512L 和 PIC32MX512H。PIC32MX512L 最终必须将程序传输到 PIC32MX512H 的两条线 PGEC2 和 PGED2。
现在我正在尝试执行检查设备操作。按照规定,我通过 MCLR 杂耍进入编程模式,并在 TMS 时钟上执行 SetMode (6b011111),同时 TDI 时钟保持低电平。TAP 控制器回复零(每个 TDO 为低电平)。
之后,我必须执行 SendCommand( MTAP_SW_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_COMMAND ) 上,TDO 保持低电平,然后对于 XferData( MCHP_STATUS ) TDO 仍然保持低电平,无论我多久发送一次命令。
我用我的示波器做了一个小屏幕截图。蓝线是时钟,绿线是数据。我的意思是右边的跳跃。
问题
有谁知道 TAP 控制器在第四阶段 TDO 高时试图告诉我什么?
先感谢您!