专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

关于Fatal error: Could not find device 解决的过程

作者:佚名   来源:学会珍惜LW的博客   点击数:  更新时间:2014年08月26日   【字体:

  之前做的板子用的4线JTAG,一直是可以烧写程序的。最近要改板子,由于4线JTAG太占面积,所以打算换成2线JTAG。但是在调试的过程中却出现了 Could not find device (or device not supported) Session aborted!的问题。下面讲一下解决的过程。

 

一、4线JTAG和2线JTAG介绍

        首先先介绍一下4线JTAG和2线JTAG。这里以我用的MSP430F6638为例。5系列和6系列的应该都差不多。

        4线JTAG需要用到430上6个脚,分别为TDO(1),TDI(3),TMS(5),TCK(7),TEST(8)以及RST(11)脚,再加上一个共地的角GND(9),一个VDD脚(2或4),VDD这个脚根据你单片机是非JTAG供电还是JTAG供电,分别选择接在2号脚或者4号脚。根据MSP430F5529demo板的板载仿真器的电路结构猜测,应该是JTAG仿真器内部有一个电平转换芯片,当单片机采用非JTAG供电时,可能电压与JTAG仿真器输出电压不一致,这时需要一个电平转换芯片将信号电平转换一下,使得两者一致?

        2线JTAG只需要用到单片机上的RST脚和TEST脚,这两个其实是复用引脚,在2线JTAG模式下,应该称为SBWTDIO和SBWTCK更准确。除了那两根信号线之外,再加一个共地线应该就可以烧写程序了。

二、问题的描述及解决

问题的现象描述:

      当采用4线JTAG烧写程序时,一切正常;但是使用2线JTAG烧写程序时,却报出了 Could not find device (or device not supported) Session aborted!的错误,无法烧写程序。

解决方案:

      在查阅之后,发现接在单片机RST引脚的接地电容的大小很有讲究。

      接地电容如下图C28所示。按照TI的demo板上来看,这个电容的值为DNP,应该是do not place。但是TI的demo板上,这里又焊接了一个电容,这个到底应该多大呢?一开始没有仔细研究,我用的是0.1uF,这个是最常用的一个电容值了。

     但是后来查阅资料后发现,这个电容值其实很有讲究的,在4线JTAG模式下,推荐为10nF,在2线JTAG模式下,最大为2.2nF。我这里用的是0.1uF,显然是远超了推荐值。

      后来把这个电容换成2nF之后,下载正常~

 

       这里分析一下,可能是在2线JTAG模式下,SBWTDIO既作为数据的输入又作为数据输出,对时序的要求更高,所以这里电容太大之后,会产生影响。同时,贴上一张关于JTAG部分参数的图,从图上似乎可以看到,2线JTAG是速度更高一些,可能也正因为如此,其对时序的要求也更高吧~这个分析可能不一定正确,欢迎交流、指正~


关闭窗口

相关文章