默认的启动模式是从NANDFLASH中启动,仿真器不连接时,系统可以正常系统。
当仿真器连接着JTAG时,重新上电或者复位,原先存在NAND的程序就不会在执行了,也就是说ARM和DSP都不再启动。
这时候,在CCS里,是可以用仿真器连接到ARM和DSP的。
在DSP代码的调试阶段,经常需要重启,而ARM端又是运行Linux的,每次重启都需要拔掉仿真器才能让Linux先运行起来,非常麻烦。
不知道有没有什么办法,可以在重复上电/复位时,不需要拔掉仿真器?记得以前的老DSP都是可以这样的,只要CCS没有重新LOAD代码下去,DSP还是按照原来的方式在运行的,现在这个不知道为什么不行了。
仿真器用的是XDS100V3。
谢谢!
Tony Tang:
我能想到的是不是RTST这时候是被拉高的,L138的POR要求RESET和TRST在复位时同时为低.
在复位板子前,有从CCS里断开仿真器的连接吗?
Weike LI:
回复 Tony Tang:
谢谢Tony的提醒。测了这两个复位信号:
连着仿真器时,关了板子的电源,TRST一直为低(0.3V左右),RESET被拉到2V左右的电平,确实没有低下来。这时候打开电源,RESET回到3.3V电平,系统不启动。
然后手动按RESET按键,产生一个几百ms的负脉冲,系统依然不启动;
断开仿真器时,TRST基本为0V。此时重新上电,或者按复位信号,系统都可以正常启动
复位板子的状态,跟CCS好像没什么关系。关掉CCS再复位,情况也是一样的。
Tony Tang:
回复 Weike LI:
Weike LI关了板子的电源,TRST一直为低(0.3V左右),RESET被拉到2V左右的电平
为什么关了板子的电源,RESET还会有2V左右的电平呢,把这一部分的电路图贴上来看一下。
Weike LI:
回复 Tony Tang:
现在用的是创龙的开发板。
第4页,SYS_RESET_INPUT,就是我们测的RESET信号。
关了电源时,仿真器是有电的。但是没有搞清楚为什么会跟这个RESET有关联。
Tony Tang:
回复 Weike LI:
我也没有创龙的核心板的原理图啊。
仿真器不应该有电的,因为插头上那个3.3V是给仿真器供电的,而不是从仿真器给板子的。再说SYS_RESET_INPUT上也没有上拉,哪来的2V呢?所以这个RESET上的2V是值得怀疑的。
另外我看了一下你的原理图第三页与核心板的连接部分,有一点需要特别注意,因为只给核心板提供了5V电源,而核心板出来的3.3V IO信号与L138的3.3V不是共电源,是各自用各自的3.3V,这样的话,需要保证核心板的3.3V要先于底板的3.3V上电,否则对L138来说有电源倒灌的风险。
Weike LI:
回复 Tony Tang:
测了一下断电连接仿真器时,JTAG口的电平,那个3.3V确实是没有的,但是TMS,TDI,TCK,EMU0和EMU1都是3.3V。
RESET信号还是这样,不接仿真器,就是0,一插上仿真器,就变成2V左右的电平。
我这边也没有核心板的原理图,还是再要去找一下创龙。
理论上,或者别家的板子上,插着仿真器上电,也是一样可以用跳线确定的BOOT方式来启动的吗?想请您帮忙确认一下这个问题。
另外,3.3V倒灌的风险确实存在,理论上应该要核心板输出一个信号来控制底板3.3V了。这个只能在自己设计的底板中去实现了。
谢谢!
Weike LI:
回复 Tony Tang:
你好Tony,
跟创龙的工程师沟通,得到他们的回复是,因为仿真器通电时,TMS等若干信号是有3.3V的,这些信号会导致138的RESET信号拉到2V。他们认为这个是L138芯片本身设计问题。那个复位信号是直接连到L138芯片的复位的。不知道你们怎么看这个问题?是否会是某些版本的L138芯片bug?
如果这个问题确实如他们所说,那么带着仿真器重新上电时,由于RESET脚是从2V->3.3V,确实是无法启动的了。
谢谢!
Weike LI:
回复 Tony Tang:
看来找到问题的根源了。
XDS100仿真器的JTAG倒灌电压进了芯片,导致RESET信号电平异常。
我这边换了一个510仿真器,同样插着USB线,板子不供电,RESET信号为0。这个仿真器的TMS等信号,此时电压都为0。芯片正常启动。
非常感谢Tony!