楼主大规模使用CC1310后发现CC1310存在一个致命的问题。问题如下:
CC1310的JTAG接口中的TCK接口受到干扰时,CC1310极易进入HIB模式,此时,芯片必须通过PIN-RESET和掉电才能恢复正常。并且TI官方并没有提供方法屏蔽HIB模式。
用户手册提供的接上拉电阻的方法并不能完全避免干扰,因此在使用过程中,每当CC1310进行软件复位时都有一定概率进入HIB模式,导致芯片无法正常工作。
建议TI官方提供方法,能够在一定条件下屏蔽掉HIB模式,否则外场使用中可靠性极差。
Albin Zhang:
Lixiaoji,
没有进入HIB模式,CC1310就没有这个模式。:-)
应该是JTAG检测到TCK的状态变化,进入了debug mode。
建议客户在产品级对这个模式做规避的。
BR.AZ
lixiaoji yin:
回复 Albin Zhang:
是的,应该就是debug mode ,TCK收到干扰后后就会把HIB FLAG 置高,在下次软件复位后就进入debug mode,但我们无法完全保证TCK受干扰啊,是否有办法再复位前,通过软件把HIB FLAG 清除?
Albin Zhang:
回复 lixiaoji yin:
这个需要做系统级设计规避的。比如JTAG不外露在产品之外等。
BR. AZ
lixiaoji yin:
回复 Albin Zhang:
我试了下,接上拉或者直接到电源都不行,只有把TCK从芯片管脚处割断才可以彻底避免~~软件上也没法屏蔽,这样导致TCK走线要求非常严格,稍微长一点就不行了,不知道您们TI是否能够从底层寄存器屏蔽HIB FLAG啊,不然我们系统级基本没法使用了
Albin Zhang:
回复 lixiaoji yin:
一般的长是没问题的呀。估计还是受到了esd或者其他的传导级别的干扰。
这个是非常底层的状态机的检测,寄存器没法设置的。BR.AZ
lixiaoji yin:
回复 Albin Zhang:
这个TCK貌似只要有8个上升沿和下降沿就会在下一次软件复位的时候进入debug mode。比如说我在调试的时候手碰到一下TCK的排针,有可能下次软件复位的时候就会进入DEBUG mode,而且这8个上升沿和下降沿并不要求是一次就触发8个,间隔很长时间触发一次上升沿和下降沿芯片内部也会记录,不会随着时间清除,因此产品在外场使用过程中,工作一段时间后只要进行软件复位操作几乎都会进入debug mode,这样子在外场根本没法使用。
外场使用过程中也没法保证一次干扰信号都不会出现,芯片这样子设计我们很头疼啊,现在只能从软件侧尽可能的规避软件复位操作来避免产品进入debug mode。
我看使用同样用户手册的2640产品就提供了清除HIB FLAG的办法,但1310就没有提供。建议您们芯片内部这里开放寄存器让我们可以清楚HIB FLAG ,或者把TCK的触发条件改为一次性有8个上升沿或者下降沿才会触发,这样可靠性更高。
还有您们的参考设计里面对这一块并没有特别的说明,一般人也很难详细的去读你们用户手册里面JTAG的章节,所以根本不会想到会出现这样的问题。建议您们针对这个问题应该加强说明,在datasheet管脚介绍里面注明TCK的注意事项
sean chen4:
我也遇到这个问题了,请问有办法规避么
lixiaoji yin:
回复 sean chen4:
解决不了,TI好像很回避这个问题,我问过很多次都没给解决方法,只有自己在设计的时候注意TCK的走线了。
xie wei:
回复 lixiaoji yin:
我在调试中也遇到相似问题,有外部干扰DEBUG出错,分析后怀疑jtag口的问题。你的TCK、reset脚做什么硬件处理了吗?上拉、加电容?有效果吗?
lixiaoji yin:
回复 xie wei:
我做了两个处理,一个是的TCK走线尽可能短,另一个是在TCK靠近芯片端接了一个上拉电阻。暂时还没发现新板子被干扰的情况。但这个问题坑了我将近20k的设备,TI也不出个软件解决方案,实在太坑了。