Q1:我自己做了一块MSP430F149的试验板,以前用下载线进行调试没有出现过问题,但是,最近我每次make后用下载线调试时,总是弹出一个窗口,给我提示:Could not find target status. 然后就死到那儿了,请问这是什么问题呢?
A1:检查Jtag口线是否连接正常,如果JTAG口线连接正常,可能是供电不足,目标板加电再测试。
Q2:我用的430f22x学习套件,请问在IAR Embedded Workbench 中仿真时如何看程序运行时间.
A2:只有软件模拟下可以看, VIEW-REGISTER-CYCLECOUNT
Q3:请问各位msp430 仿真器和编程器有什么区别啊?是不是我开发的时候这两个东西都得有?我目前用的是msp430cg461x 系列或msp430fg461x 系列,是不是很多仿真器和编程器都不支持?
A3:一般来讲,仿真器是在先期调试程序时使用的,他不会烧断单片机熔丝,能把程序下载到单片机中,能够单步,跟踪,快速调试。编程器就没有这些调试功能,就是单纯把你做好的程序的编译后文件写到单片机中去,就和51 的编程器一样,有加密熔丝烧断等功能,是在你产品成型后,生产时使用的MSP430 的仿真器是使用JTAG 接口的,分别有四线制的JTAG、带TEST 脚的四线JTAG 和两线制的SBWJTAG三种接口,UIF 上三种都支持,并支持烧熔丝,UIF 就是USB 接口的仿真;PIF 不能支持SBWJTAG
接口,也不能烧熔丝,PIF 是并口的仿真器。任何一种JTAG 接口的仿真器在烧断熔丝后都不能再仿真和写入,而BSL 可以通过密码访问FLASH 空间,读出写入均可,BSL 是串口实现的,但BSL 不能仿真,注意部分器件不支持BSL,如F20XX系列就不能用BSL,烧掉了熔丝就变板砖。MSP430 任何系列的仿真器只要接口方式一致都是兼的,比如FG461X,可以使用标准的带TEST 的四线JTAG,而F22X4也可以使用带TEST 的四线JTAG,当然F22X4还可以选择使用SBWJTAG,它支持两种JTAG接口。如果不是TI 标准的430系列用JTAG 仿真器那就不行了,应该是不兼容的,不是什么“很多仿真器和编程器都不支持”,而是专用。
Q4: 初次使用430单片机,F149 。高速晶振8M,低速32K,下载程序时出现security fuse **own 字样,无法烧录。请各位高人指点,应该是哪里有问题。
A4: 手工复下位应该基本可以解决,除非芯片熔丝真被烧掉了。如果熔丝断了,可以用BSL 方式写入程序.
Q5: 运行到断点时程序不能自动结束,必须自己按break。我这是程序跑飞了么?
A5:是你断点设置的多了吧。你在程序中,只设置这一个断点试试
Q6:当在RAM 中对其中一变量开辟的尺寸是512 字节时,程序总占用3.5KRAM 空间,可以正常烧到芯片中,也可以正常运行;当对同一变量开辟的尺寸是1024 字节,而其它均未改变时,程序总占用4.0K左右RAM 空间,可以正常烧到芯片中,却无法运行!!!!
A6:方法一将一些变量定义成no init 类型
方法二修改IAR 的cstartup.s43 程序,具体方法如下:(iar310a为例)
1 将cstartup.s43 程序加载到用户自己的项目中,cstartup.s43在iar310a的路径如下$TOOLKIT_DIR$\src\LIB\
2 修改cstartup.s43 中的__program_start子程序,加入关闭看门狗的命令MOV#0x5A80,&0x0120
3 在Project->Options->Linker->Config 页中选择Override default programe ,并将Entry lib 设置成__program_startLSD MCU TECHNOLOGY CO., LTD . 利尔
Q7: 请问AR 编译器的s43文件用什么编辑器打开?
A7:打开IAR 编译器后就可以直接打开了;另外,记事本也可以打开
Q8:怎么设置才能使2274内部dco 产生稳定的16M的时钟信号,还有就是2274 是不是提供FLL+ 功能!
A8:2XXX没有FLL+,但是TI 在出厂芯片的时候已经做过出厂测试,你只要选择它头文件里的那个16M即可
Q9:程序编译时提示:Warning[Pe001]: last line of file ends without a newline ,这是怎么回事啊,应该怎么改呢?
A9:敲个回车就可以了
Q10:过去用435/436 等因为仿真的几要线和端口都没有复用.所以很轻松就搞定.现在1232的仿真口和P1 口是公用的,仿真时我把第一脚TEST接VCC,这样可以下载仿真了,可是发现这复用的几个P1口就不能执行其正确的动作了,请教
A10:做仿真口的复用管脚在仿真时,被作为仿真功能管脚使。
Q11:USB 仿真器下载汇编程序时没有问题,但是下载C语言程序时,出报警信息如下:
The stack plug-in failed to set a breakpoint on "main".The stack window will not be able to display stack contents.(You can change this setting in the Tools>Options dialog box.在调试信息窗口出现operation error.
A11:调试c 程序时在Tools>Options dialog box 中stack 要选中指向main函数处。汇编和c 要建不同的工程下调试。
Q12:装了MSP-FET430UIF 仿真器,但是在AQ430 的Options 中,无法找到该仿真器,正常应该有LPT1/LPT2/LPT3/TIUSB 四个选项,为什么看不到TIUSB?
A12:先看看硬件管理器中有没有那个硬件,有则先用IAR 试试.
Q 13:EZ430-RF2500 中的USB debugging 可以调试msp430其他支持Spy-Bi-Wire系列的芯片吗?
A13:可以。
Q 14:用TI 的USB 仿真器,采用的是二线法。用SD_16 采集数据,发现连接仿真器输出的数据正确,而把仿真器拔去,输出的数据就错了。这是为什么?
A14:怎么理解这个数据正确和错误?你怎么下的判断?我认为是你接仿真器的时候目标板是从仿真器上取电的,拔掉仿真器是外部电源供电的,电源电压不同,将导致基准源改变,采样出来的值变化会很大。
Q15:sd-fet430 uif 仿真器不能外供电吗?
A15:可以,驱动电流较小,内部是光MOS管,要注意负载
Q16:430FET下载出现问题时检查的一般思路
A16:在完全确定无虚焊、短路的情况下,一般注意以下事项:LSD MCU TECHNOLOGY CO., LTD .
1、仿真器的2、4脚电源
2、复位脚的RC电路
3、是否是SBW模式
4、JTAG复用引脚时注意外部电路的影响
5、外部有功率较大的器件,当下载时造成外部电路的功耗较大
6、JTAG线不能太长,一般在20CM以内比较合适
7、如果是USB 的仿真器还要注意USB 线不能太长,使用笔记本的还要注意USB 上不能连接太多的负载
Q17:LSD-FET430UIF 仿真器,运用IAR410 软件,器件是F1121A,无法下载程序也无法仿真,直接将接口线换在原来的FETP430IF 上,把FET 设置换成并口后就可以,请问下,是什么原因造成的?
A17:检查一下驱动安装对吧,另外再检查下USB 提供的电源和USB 线的信号,USB 提供电源不足或USB线的信号受到了比较强的干扰都会影响下载。
Q18:430加密用的密码是中断向量的简单组合呢?还是中断向量的加密组合?还是用的中断服务程序入口地址的简单组合?还是用的中断服务程序入口地址的加密组合?
A18:是入口地址的组合(存放在中断向量处的数据),以前是简单组合,新的5XX就有些复杂了,用户自己还可以定义密码。
Q19:我的程序编译后,DEBUG 调试显示已成功DOWN到芯片里了,连着EZ430 仿真器也能工作,但只要把EZ430 脱开,PCB 重新上电,芯片怎么也不工作. 不知是什么原因?
A19:2013 的RST 脚接1 个上拉电阻就解决问题了。
Q20:通过标准的BSL 方式是不需要编写单片机程序的? 如果是的话,那自定义串口下载的优点和缺点又是什么?
A20:用BSL 不需要自己编写单片机程序,但需要另加入两根或4 根编程线。自己写升级程序直接使用串口,但需要自己写自编程程序,此方式使用方便,还可以在线大批量升级,缺点是要占用FLASH 空间,如果通讯协议严谨,再加上密码保护之类的算法,消耗2K的FLASH资源还是比较正常的,所以小FLASH 容量的就不推荐使用了。
Q21:在编译程序时,总是出现这样的错误信息,该怎么样解决呀?Error[e46]: Undefined external "main" referred in ?cstart ( D:\Program Files\iar\430\LIB\CLIB\cl430f.r43 )程序没有错误,是不是编译器本身有什么问题?
A21:是汇编程序时,把OPTIONS 里的ASSEM××ER ONLY……选上。
Q22:UIF 连接不到F2274,RST 信号的电容已去掉,用并口能连接上,不稳定,这是为什么?
A22:F22X4支持两种JTAG 接口,如果是UIF 的话,个人建议使用SBW 的,如果用4 线制的话,会占用数个复用端口,你说连不上是不是就是因为复用端口上连有外围设备造成JTAG 无法正常工作了呢。检查一下。
Q23:故障现象:有时windows 能识别,多数不能识别;提示“未知usb 设备”;挑机器-换台机器可能好使;升级失败;这是什么原因?
A23:1.使用IAR 自动更新功能,只能通过JTAG口重新写入f1612 程序。
2.EZ430 板上TUSB3410 的复位脚C9 电容小,增加到2uF。最好增加旁路滤波电容,以提高电源质量。
Q24:使用430内置的info flash来存放一些配置信息。在用fet硬件仿真的时候,希望直接手动修改memory窗口中的的info flash的内容,但是老是弹出窗口说这些地址是不可访问等提示,请问有什么办法可以在硬件仿真的时候, 直接修改info 中的内容么?
A24:flash不能直接修改。这个得用编程器,仿真器或者软件编程修改FLASH,你这样就能修改FLASH 那也太……嘿嘿……
Q25: IAR 如何查看生成的代码的大小?
A25:编译后在信息窗口就是就可以提示,如果没有提示,请在Tool/Options/Meassages/show build message:选为All 就行了。
Q26:程序下不进去,用的仿真器是一头并口,一头14 脚的jtag,烧的时候总说找不到设备?
A26:RST 连上,去掉上面的电容。
Q27:给MSP430F149仿真的JTAG能给MSP430F2002仿真吗?我把腿都对应上了,但程序下不进去,说是找不到器件................以前用同样的方法成功的给449 仿真过!!!难道2002用的是不同的JTAG
A27:并口仿真器支持2002,不过只能使用四线JTAG 方式,RST 引脚必须连接,而且不要有复位电容。
Q28:430 如何将程序成功烧入?1.烧片子的具体的顺序?
A28:首先option 里得选择正确的芯片型号,还要在Debugger 选项卡里的driver 选择FET_Debugger,在按工具栏内的下载按钮(快捷键ctrl+D)
Q29:MSP430F22X 学习板SBW 用访真器不能进行调试?
A29: 原因可能两点
1.两线制是不能用并口访真器进行调试的,必须USB 访真器
2.两线制RST 并联的电容建议不接,否则造成程序无法正常下载
Q30:在研制带处理器的电子产品时,如何提高抗干扰能力和电磁兼容性?
A30:一、下面的一些系统要特别注意抗电磁干扰:
1、微控制器时钟频率特别高,总线周期特别快的系统。
2、系统含有大功率,大电流驱动电路,如产生火花的继电器,大电流开关等。
3、含微弱模拟信号电路以及高精度A/D 变换电路的系统。
二、为增加系统的抗电磁干扰能力采取如下措施:
1、选用频率低的微控制器:选用外时钟频率低的微控制器可以有效降低噪声和提高系统的抗干扰能力。同样频率的方波和正弦波,方波中的高频成份比正弦波多得多。虽然方波的高频成份的波的幅度,比基波小,但频率越高越容易发射出成为噪声源,微控制器产生的最有影响的高频噪声大约是时钟频率的3 倍。
2、减小信号传输中的畸变
a、微控制器主要采用高速CMOS 技术制造。信号输入端静态输入电流在1mA 左右,输入电容10PF 左右,输入阻抗相当高,高速CMOS电路的输出端都有相当的带载能力,即相当大的输出值,将一个门的输出端通过一段很长线引到输入阻抗相当高的输入端,反射问题就很严重,它会引起信号畸变,增加系统噪声。当Tpd>Tr时,就成了一个传输线问题,必须考虑信号反射,阻抗匹配等问题。
b、信号在印制板上的延迟时间与引线的特性阻抗有关,即与印制线路板材料的介电常数有关。可以粗略地认为,信号在印制板引线的传输速度,约为光速的1/3 到1/2 之间。微控制器构成的系统中常用逻辑电话元件的Tr(标准延迟时间)为3到×××s之间。
c、在印制线路板上,信号通过一个7W的电阻和一段25cm长的引线,线上延迟时间大致在4~20ns 之间。也就是说,信号在印刷线路上的引线越短越好,最长不宜超过25cm。而且过孔数目也应尽量少,最好不多于2个。
d、当信号的上升时间快于信号延迟时间,就要按照快电子学处理。此时要考虑传输线的阻抗匹配,对于一块印刷线路板上的集成块之间的信号传输,要避免出现Td>Trd的情况,印刷线路板越大系统的速度就越不能太快。
e、用以下结论归纳印刷线路板设计的一个规则:
f、信号在印刷板上传输,其延迟时间不应大于所用器件的标称延迟时间。
3、减小信号线间的交叉干扰:
a、A 点一个上升时间为Tr的阶跃信号通过引线AB 传向B端。信号在AB 线上的延迟时间是Td。在D点,由于A 点信号的向前传输,到达B点后的信号反射和AB 线的延迟,Td 时间以后会感应出一个宽度为Tr的页脉冲信号。在C点,由于AB 上信号的传输与反射,会感应出一个宽度为信号在AB 线上的延迟时间的两倍,即2Td 的正脉冲信号。这就是信号间的交叉干扰。干扰信号的强度与C点信号的di/at 有关,与线间距离有关。当两信号线不是很长时,AB 上看到的实际是两个脉冲的迭加。
b、CMOS工艺制造的微控制由输入阻抗高,噪声高,噪声容限也很高,数字电路是迭加100~200mv 噪声并不影响其工作。若图中AB线是一模拟信号,这种干扰就变为不能容忍。如印刷线路板为四层板,其中有一层是大面积的地,或双面板,信号线的反面是大面积的地时,这种信号间的交叉干扰就会变小。原因是,大面积的地减小了信号线的特性阻抗,信号在D 端的反射大为减小。特性阻抗与信号线到地间的介质的介电常数的平方成反比,与介质厚度的自然对数成正比。若AB 线为一模拟信号,要避免数字电路信号线CD 对AB的干扰,AB 线下方要有大面积的地,AB 线到CD 线的距离要大于AB 线与地距离的2~3倍。可用局部屏蔽地,在有引结的一面引线左右两侧布以地线。
4、减小来自电源的噪声
电源在向系统提供能源的同时,也将其噪声加到所供电的电源上。电路中微控制器的复位线,中断线,以及其它一些控制线最容易受外界噪声的干扰。电网上的强干扰通过电源进入电路,即使电池供电的系统,电池本身也有高频噪声。模拟电路中的模拟信号更经受不住来自电源的干扰。
5、注意印刷线板与元器件的高频特性
a、在高频情况下,印刷线路板上的引线,过孔,电阻、电容、接插件的分布电感与电容等不可忽略。电容的分布电感不可忽略,电感的分布电容不可忽略。电阻产生对高频信号的反射,引线的分布电容会起作用,当长度大于噪声频率相应波长的1/20时,就产生天线效应,噪声通过引线向外发射。
b、印刷线路板的过孔大约引起0.6pf 的电容。
c、一个集成电路本身的封装材料引入2~6pf 电容。
d、一个线路板上的接插件,有520nH 的分布电感。一个双列直扦的24 引脚集成电路扦座,引入4~×××H的分布电感。
e、这些小的分布参数对于这行较低频率下的微控制器系统中是可以忽略不计的;而对于高速系统必须予以特
别注意。
6、元件布置要合理分区元件在印刷线路板上排列的位置要充分考虑抗电磁干扰问题,原则之一是各部件之间的引线要尽量短。在布局上,要把模拟信号部分,高速数字电路部分,噪声源部分(如继电器,大电流开关等)这三部分合理地分开,使相互间的信号耦合为最小。
7、处理好接地线
a、印刷电路板上,电源线和地线最重要。克服电磁干扰,最主要的手段就是接地。
b、对于双面板,地线布置特别讲究,通过采用单点接地法,电源和地是从电源的两端接到印刷线路板上来的,电源一个接点,地一个接点。印刷线路板上,要有多个返回地线,这些都会聚到回电源的那个接点上,就是所谓单点接地。所谓模拟地、数字地、大功率器件地开分,是指布线分开,而最后都汇集到这个接地点上来。与印刷线路板以外的信号相连时,通常采用屏蔽电缆。对于高频和数字信号,屏蔽电缆两端都接地。低频模拟信号用的屏蔽电缆,一端接地为好。
c、对噪声和干扰非常敏感的电路或高频噪声特别严重的电路应该用金属罩屏蔽起来。
8、用好去耦电容。
a、好的高频去耦电容可以去除高到1GHZ的高频成份。陶瓷片电容或多层陶瓷电容的高频特性较好。设计印刷线路板时,每个集成电路的电源,地之间都要加一个去耦电容。去耦电容有两个作用:一方面是本集成电路的蓄能电容,提供和吸收该集成电路开门关门瞬间的充放电能;另一方面旁路掉该器件的高频噪声。数字电路中典型的去耦电容为0.1uf 的去耦电容有5nH 分布电感,它的并行共振频率大约在7MHz左右,也就是说对于10MHz以下的噪声有较好的去耦作用,对40MHz 以上的噪声几乎不起作用。
b、1uf,10uf 电容,并行共振频率在20MHz以上,去除高频率噪声的效果要好一些。在电源进入印刷板的地方和一个1uf或10uf 的去高频电容往往是有利的,即使是用电池供电的系统也需要这种电容。
c、每10 片左右的集成电路要加一片充放电电容,或称为蓄放电容,电容大小可选10uf。最好不用电解电容,电解电容是两层溥膜卷起来的,这种卷起来的结构在高频时表现为电感,最好使用胆电容或聚碳酸酝电容。
d、去耦电容值的选取并不严格,可按C=1/f计算;即10MHz取0.1uf,对微控制器构成的系统,取0.1~0.01uf之间都可以。
三、降低噪声与电磁干扰的一些经验。
1、能用低速芯片就不用高速的,高速芯片用在关键地方。
2、用串一个电阻的办法,降低控制电路上下沿跳变速率。
3、尽量为继电器等提供某种形式的阻尼。
4、使用满足系统要求的最低频率时钟。
5、时钟产生器尽量靠近到用该时钟的器件。石英晶体振荡器外壳要接地。
6、用地线将时钟区圈起来,时钟线尽量短。
7、I/O 驱动电路尽量靠近印刷板边,让其尽快离开印刷板。对进入印制板的信号要加滤波,从高噪声区来的信号也要加滤波,同时用串终端电阻的办法,减小信号反射。
8、MCD无用端要接高,或接地,或定义成输出端,集成电路上该接电源地的端都要接,不要悬空。
9、闲置不用的门电路输入端不要悬空,闲置不用的运放正输入端接地,负输入端接输出端。(10) 印制板尽量使用45 折线而不用90折线布线以减小高频信号对外的发射与耦合。
10、印制板按频率和电流开关特性分区,噪声元件与非噪声元件要距离再远一些。
11、单面板和双面板用单点接电源和单点接地、电源线、地线尽量粗,经济是能承受的话用多层板以减小电源,地的容生电感。
12、时钟、总线、片选信号要远离I/O 线和接插件。模拟电压输入线、参考电压端要尽量远离数字电路信号线,特别是时钟。
13、对A/D 类器件,数字部分与模拟部分宁可统一下也不要交叉。
14、时钟线垂直于I/O 线比平行I/O 线干扰小,时钟元件引脚远离I/O 电缆。
15、元件引脚尽量短,去耦电容引脚尽量短。
16、关键的线要尽量粗,并在两边加上保护地。高速线要短要直。
17、对噪声敏感的线不要与大电流,高速开关线平行。
18、石英晶体下面以及对噪声敏感的器件下面不要走线。
19、弱信号电路,低频电路周围不要形成电流环路。
20、任何信号都不要形成环路,如不可避免,让环路区尽量小。
21、每个集成电路一个去耦电容。每个电解电容边上都要加一个小的高频旁路电容。
22、用大容量的钽电容或聚酷电容而不用电解电容作电路充放电储能电容。使用管状电容时,外壳要接地
Q31:有关仿真器及编程器的问题:
A31:对于51系统来说,很容易理解编程器与仿真器的区别。通俗的说,仿真器是用来仿真调试的,编程器是用来批量生产时对MCU进行烧写目标代码的。对于MSP430 来说,无论仿真还是烧写程序一般可以通过:JTAG/SBW/BSL 接口进行,这些概念仅是接口,并不代表哪个型号的编程器和仿真器,一般JTAG/SBW 接口用于仿真接口,BSL 不能用于仿真,只能用于编程。编程器则三种接口都支持。所以并不能说JTAG只支持仿真,不支持编程,这是概念错误,JTAG仅仅是一种接口协议而已。
下面简单描述一下三种接口的区别:
1、JTAG 是边界扫描技术,其在430 内部有逻辑接口给JTAG使用,内部有若干个寄存器连接到430内部的总线上,所以JTAG 可以访问到430的内部所有资源,包括对FLASH 的读写操作。可以用于编程和仿真接口。主要连接线有TMS/TCK/TDI/TDO/RST/TEST 等。
2、SBW 是SPY-BI-WIRE 的简称。通常称为两线制JTAG,主要用SBWTCK 与SBWTDIO,该接口主要用于小于28 脚的430 单片机及5 系列的单片机。因为28 脚以内的单片机JTAG 接口与通用IO 口复用,为了给用户预留更多的IO,才推出SBW 接口。同样SBW 接口可以用于仿真器与编程器。
3、BSL 是TI 在MSP430 出厂时预先固化到MCU 内部的一段代码,有点类似与DSP 的bootloader,但与bootloader 有明显的区别,BSL 只能用于对MCU 内部的FLASH 访问,不能对访问其他资源。所以只能用作编程器接口。BSL 通过UART协议与编程器连接通信。编程器可以发送不同的通信命令来对MCU的存储器做不同的操作。BLS 的启动有些特殊,一般430 复位启动时PC 指针指向FFFE 复位向量,但可以通过特殊的启动方式可以使PC 指向BSL 内部固化的程序。启动方式一般由RST 与TEST(或TCK)引脚做一个稍复杂的启动逻辑后产生。
4、一般的MCU都有加密功能,430如何实现加密的呢?外部对430 内部的代码读写只能通过上述的三种方式,所以引入熔丝位,熔丝位只存在与JTAG/SBW 接口逻辑内。BSL 没有熔丝。当熔丝烧断时(物理破坏,且不可恢复)JTAG/SBW 的访问将被禁止,此时只有BSL 可以访问。而通过BSL 对MCU 的访问是需要32字节的密码,密码就是用户代码的中断向量表。
5、一般的仿真器型号有:UIF(USB 接口,支持JTAG/SBW)、PIF(并口,只支持JTAG)、EZ430(USB 接口,只支持SBW 模式)。专业的编程器有GANG430(串口,一拖8 个目标板,支持JTAG/SBW 及烧断熔丝功能);多功能编程器(JTAG/SBW/BSL 及烧断熔丝功能)。这些编程器都可以支持离线烧写,即脱离计算机
来对目标板烧写。当然也可以通过特殊的软件用仿真器来烧写,这类软件有MSPFET、FET-PRO430 等。
Q32:最近调试程序,不知怎么老出现下面的问题,请问是怎么回事?
”erase check error at address 0x1100
retry erase operation?"知道是怎么回事?
A32:最可能的就是芯片电压太低,或者芯片有虚焊的。
Q33:请问MSP430F149程序下载时的电源要提供的电流为多大?
A33:这个电流主要用于flash的擦写。擦和写的典型电流都是3mA。