MSP430常见问题汇总

合集下载

MSP430--JTAG常见问题

MSP430--JTAG常见问题

在将程序通过JTAG口烧入MSP430时常遇到找不到器件,通过断电复位,重新联机几次才可以写入,一点规律没有,不知道是怎么回事?有那位仁兄也遇到此类问题?如何解决的?是不是JTAG口的问题?请指教。

回复:1、可能是目标板复位原因,最常见的就是复位芯片。

2、用户使用内外部电源,很可能是因为电源冲突。

切忌!!!2-问题:我把BSL的6,8两脚不接外电分别接目标板的电压或接外电(3。

6V)后再分别接目标板的电压,4种情况都还是调不通,不知道具体问题出在哪里?请指教。

回复:bsl接口针对不同的MSP430 FLASH系列,其连接方式是不一样,其电源部分是一致的,您还是着重检测P1/2/3脚的接法。

主要是根据FLASH系列不同着重检查P1.1、P2.2、P1.0几个I/O最好不要接外部电路3-问题:请问斑竹,我前不久从LIERDA购买的BSL一套,当时销售人员说能读能写程序,可现在我试过多次,只能写不能读,要读只能删除原来芯片上的程序,读出的结果全FFFF,请问如何解决?回复:可以读的,要设置密码文件,密码文件的格式如下:@FFE0FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FFFF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 E0在高级设置中,在one pass throu前打勾4-问题:MSP430的JTAG口的使用,请教!1)我要用MSP430F123,JTAG口是连8 根线吗?2)用上述的JTAG口,和280元的适配器就可以调试和下载了吗?3)MSP430连接JTAG口的引脚还可以做其他用途吗?如何使用?我是刚开始用MSP430,向前辈请教!谢谢!回复:对于FLASH系列的MSP430F11X和12X系列的JTAG口是需要8根线接口;MSP430 FLASH系列FET是通用的;对于F11X、F12X的JTAG接口的TDO、TDI、TMS、TCK这几个管脚是有P1.4 、P1.5、P1.6、P1.7是复用的,只有当下载、调试完成后才可以作为通用I/O口用。

MSP430 常见问题解答 V1.0

MSP430 常见问题解答 V1.0
是的,请参见 MSP-GANG。
21. MSP430 JTAG 与 IEEE 1149.1 间的兼容性如何?
MSP430 JTAG 接口执行由 IEEE 标准 1149.1 规定的测试访问端口状态机(TAP 控制器)。 然而,有一 些对于 MSP430 JTAG 的限制(不符合 IEEE 标准 1149.1):
MSP430 必须是 JTAG 链中的第一个器件(这是因为通过 TDI 和 JTAG 熔丝检查序列计时)。 没有 MSP430 器件具有边界扫描单元 只支持 BYPASS 指令。 不支持 SAMPLE,PRELOAD,或 EXTEST 指令。 JTAG 引脚与特定器件上的端口功能共用;由 TEST 引脚控制 JTAG 功能。
PERIPHERALS_8BIT 00000010 000000f0 00000000 000000f0 RWIX
PERIPHERALS_16BIT 00000100 00000100 00000000 00000100 RWIX
RAM
00000200 00000200 00000050 000001b0 RWIX
请参考以下 维基网页。
19. 我在哪里能够找到具有 JTAG 类型(4 线制或 2 线制)的 MSP430 器件的 列表?
这些信息可经由 JTAG 用户指南在 MSP430 编程中找到: tidoc:slau320,表 1-14“整个器件系列的 JTAG 特性”。
20. TI 是否为批量生产提供 MSP430 工具编辑器?
如果你正在使用 C 语言进行编程(现在很常见),在开始使用全新微控制器平台时最困难的是了解外设。 CPU 本身不是问题,这是因为代码由 C 语言编写。因此,研究 TI 提供的可能性,使你在使用这里的 MSP430 外设时更加轻松: MSP430 软件,其中包括:

msp430的编译环境问题总结

msp430的编译环境问题总结

msp430的编译环境问题总结目前我用的是IAR 3.10A版本,说实话我学430并应用不到一年,一直使用的IAR的环境,像什么AQ430此类环境没用过(关键AQ430界面我觉得不符合我的工作习惯,可能由于以前用keil多了吧,呵呵)。

可能没资格说太多关于IAR的不好,但是就这短短时间内,我是发现了IAR这环境确实出现很多让人觉得不爽的问题。

可能很多人都有同感,细想就知道了,为什么一个软件发布间隔期那么短,2.20――>3.10――>3.20――>3.30――>??呵呵,看来IAR公司的程序员也知道他们逻辑思维不够严密,正在象微软一样补这补那的!正版还卖那么老贵,让人有一种怒其不争与受骗的感觉。

所以我不会买正版也买不起,手头也有3.10与3.20版本,比较后发现没什么长进。

废话少说吧!!1. 编译器用FET调试时随着下载次数增多,软件运行会越来越慢,直至把电脑拖得慢如蜗牛。

实在让人恼火,重启机器还不好使。

网上提出我认为还算有效的方法就是把项目删掉重建新项目,这样虽说麻烦点儿,但总比在那死等好。

这跟操作系统还无关,98、xp下我都遇到过(在公司我用98,在家用xp),3.10和3.20都有这毛病,不知新出的3.3x是否也有此现象?有的人说这是盗版原因造成的,可我在网上也看到用正版的网友也出现过类似情况,真是无可救药!!2. FET调试时,有时在watch窗口看不到变量值,更气人的是有时竟然连全局变量都看不见,局部变量就更别说了。

所以调程序时很多都是把局部变量全改成全局变量,要不然想把程序调好就像在黑夜里找黑人一样难(自己还不是高手,所以还是得一步步来,呵呵)。

重启电脑――再调――不好使――再重启电脑……累死啦!这个问题至今我没有好的解决方法,哪位朋友有什么好的招数希望能跟大家共享一下。

3. 还有一点就是在调试时(好像Sim、FET下都存在,有点儿忘了),step or stepover时,那个绿色条(姑且先认为是代码运行指示条吧)有时候就看不见,搞得以为程序没运行呢,停止之后还不知道程序停在什么地方,把自己弄得满头雾水!个人总结可能由于运行Debug时,把汇编窗口关了之后(有时觉得汇编窗口碍眼,直接在C 里看多爽!还能有更大视觉空间),出现此种情况几率比较大,所以当我遇到此类情况时,只把汇编窗口压成一小竖条窗口,虽说还是有点儿碍眼,但总比看不见绿条感觉好些!大家有什么更好的解决方法?4. 声明过的某些变量(局部的变量、指针等,全局的好像没见过出现此种情况)编译时出现警告,说定义了但没使用??但程序里明明都赋值了!也作为参数传了!搞不清楚这软件是怎样的逻辑!!虽说是警告,但无论怎样都让人觉得无法理解,心里总是有些许不爽。

430仿真器功能与常见问题解答

430仿真器功能与常见问题解答

USB型 MSP430仿真器 FET430UIF 的功能:◆对MSP430FLASH全系列单片机进行编程和在线仿真;◆采用标准的14 PIN标准连接器;◆USB口取电,不需要外接电源,并能给目标板或用户板提供3.3V(330mA);◆支持IAR430、AQ430、HI-TECH、GCC以及TI一些第三方编译器集成开发环境下的实时仿真、调试、单步执行、断点设置、存储器内容查看修改等;◆支持JTAG、SBW(2 Wire JTAG)接口;◆支持固件升级功能。

此仿真器完全兼容MSP-FET430UIF开发工具,在布线与布板中充分优化,保证了良好的兼容性和稳定性。

旺旺ID:5itek430仿真器常见问题解答1. 关于目标板供电,这个问题反映回来最多。

如果用仿真器供电,那么VCCI脚一定要接地。

VCCI是仿真器检测目标板电源的。

如果跟VCCO接在一起,很可能导致仿真器不输出电压,导致IAR报错,找不到芯片。

如果用外部电源供电,那么VCCI一定要接到目标板电源(一般是3.3V),VCCO悬空,一定不要跟目标板电源相连,否则,有时可能会导致仿真器输出,两个电源短路,出现意想不到的情况;2. 系统中显示USB设备有问题:这个问题有可能是USB没有安装好,有时也可能系统问题。

安装的时候选择和电脑相匹配的驱动。

如果驱动装好了。

电脑重启一下可能就好了。

如果还不行。

换台电脑再试一下。

3. 有时430单片机可能在死机状态,导致仿真器通过JTAG查询时,没有响应,导致IAR不能下载。

这时,拔掉JTAG 14pin插座,断开目标板电源,过至少1min 时间,最好用镊子把目标板电源放电完,再插上JTAG插座,进行仿真。

4. 判断仿真器是否正常的一个简单的办法是:a) 硬件管理器中USB设备工作正常(显示为msp430uif COMx口)。

b), 插入USB后,电脑有识别到新硬件的声音指示(开外放)代表仿真器自检通过。

那么仿真器一般不会有问题了。

MSP430系列调试问题与解决方法总结

MSP430系列调试问题与解决方法总结

MSP430系列的调试总结TI的MSP430系列是一款功耗低、市面流行的SOC结构的CPU,适合做智能仪表。

IAR 对其支持得很好,下面就以IAR调试为例来说说MSP430调试过程中一些问题。

1、接上仿真器,发现不能下载,IAR提示找不到目标。

(1)并口驱动能力不足,在电脑的BIOS界面下设置成ECP或者ECP+EPP模式;(2)JTAG线太长,一般超过20CM不推荐,而且这个线最好不要交叉缠绕,会影响实时在线调试;(3)负载太大,一般功耗相对比较大,电流超过20MA以上的板子,建议用外接电源,光靠并口的电源,MCU的电压被拉低到不能写FLASH。

2、程序下载到一半,突然告警并报错,说某某地址写不进去。

(1)芯片的复位电路引起的,在写FLASH的时候,会造成系统电压的一些波动,可能导致芯片复位,而为什么都是写到这个地址才错,那是IAR的问题,改用BSL再烧一边,就可以克服了。

(2)芯片有可能死机了,断电,拔掉JTAG,稍后再试,一般没有问题(3)如果都不是上述的方法能解决的,可以给芯片上电,电压=3。

6V,重新写一次,一般就OK了。

为什么,写不进FLASH主要是F1XX系列的写FLASH电压不能低于2.7V,一般2.5V以下就不工作了,因此用3.6V电压,什么样的片子都能写回来。

3、F1611大数组定义,不能正常运行的问题相信有不少朋友已经用上了F1611,这个RAM相对大的MSP430,可能会遇到RAM中定义的变量/数组在超过一个极限的时候,MSP程序不能正常运行的现象。

一般初步判断,可以用I/O输出电平来确定程序进程,这样可以非常方便的知道该问题是由于WDT造成的,因为F1611等较大的RAM的初始化时间大于WDT默认的32MS时间,导致MSP复位。

(1)对数组用__no init_定义,上电,编译器不产生特殊的附加函数去初始化RAM。

(2)修改IAR中Cstartup.S43文件中__program_start子程序,增加一个关闭WDT 的操作或者设置WDT时间长度超过32MS。

MSP430 入门及常见问题解答

MSP430 入门及常见问题解答

MSP430 入门及常见问题解答MSP430 入门及常见问题解答Ver 0.1 - Jeffrey1.MSP430 入门 2. 如何为我的应用选择最合适的 MSP430 芯片? 3.与 MSP430 的引导加载程序通信的开发工具 4.MSP430 需配合何种晶振工作? 5. 使用哪款 MSP430 编程器可以用来烧断 JTAG 熔丝? 6.要实现 MSP430 编程,应如何连接 JTAG? 7.是否有关于 MSP430 的讨论小组或论坛? 8.使用 FET 时需要哪几根 MSP430 JTAG 信号 线? 9.MSP430 的 I/O 口的灌出和吸入电流能力 10.MSP430 仿真器(FET)的常见问题 11.通过启动加载程序(Bootstrap Loader,以下简 称 BSL)为 MSP430 编程 12.MSP430 I2C 模块的速度 13.MSP430 的 USART 的硬件配置 14.MSP430 Flash 数据保持率 15.MSP430 SPI 或 UART 的速度 16.MSP430 Flash 的写入/擦除周期数 17.MSP430 ADC12 模块的通道数 18.MSP430 哪些端口的引脚具有中断能力? 19.MSP430 的全部操作码(记忆规则)列表 20.怎样降低 MSP430 的功耗? 21.MSP430 开发工具支持哪些操作系统? 22.MSP430 DCO 的频率会抖动吗? 23.MSP430 的 Flash 块写(BLKWRT)模式的使 用 24.MSP430 外部中断输入所需的最小脉冲宽度 25.MSP430 的嵌套中断 26.MSP430 端口中断类型 27.除 32.768kHz 晶振,MSP430 还可以配合多 高频率的晶振工作? 28.MSP430 的静电效应值 29.批量生产时对 Flash 编程的方法。

30.MSP430 在上电清除(PUC)和上电复位 ( POR)时初始状态是什么? 31.MSP430 的操作和储存温度范围 32.MSP430 数据存储器的扩展 33.MSP430 的指令周期和长度 34.MSP430 的静电保护二极管 35.在哪能够找到一个 BSDL 文件来建立 JTAG 链 36. IAR Embedded Workbench 提示的错误信息: “unable to open file `cl430`” 37. USART 模块同时工作在 UART 和 SPI 模 使 式 38.系统内部 Flash 的编程及作为 EEPROM 的 使用 39.多个外部中断同时发生的处理 40.FET 支持的芯片封装类型 41.MSP430F11x1 和 MSP430F11x1A 的区别 42.使用两个管脚进行 Flash 升级 43.MSP430x4xx 低功耗晶振的配置 44. 哪一款编程器可以将用户的程序下载到 Flash 中? 45.使用 MSP430 串口编程工具 MSP-PRGS430 的问题 46.在 MSP430 BSL 通信中 80h 的使用 47.MSP430 ADC12 模块的信息源 48.使用 MSP430 Basic Clock 模块中稳定 DCO 频率 49.MSP430 的 I/O 引脚和 JTAG 引脚的复用 50.MSP430 ADC12 的速度 51.MSP430 ADC12 的基准电压引脚的连接 52.MSP430 ADC12 模块的外部电容需求 53.在哪里可以买到 MSP430 的插座 54.MSP430 工作在 8MHz 时推荐的工作电压 55.查找应用报告中的参考文件1.MSP430 的入门 . 要获取关于 MSP430 产品系列的完整信息, 请参看 MSP430 的主页 在 MSP430 主页中,有相关的链接:所有的文档、应用报告、可下载的源代码示例、开 发人员信息。

MSP430常见问题汇总(利尔达)

MSP430常见问题汇总(利尔达)

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 要建不同的工程下调试。
公司地址:杭州市登云路 425 号杭州利尔达科技大厦 Tel:0571-88800000 Fax:0571-89908519
第3页 共68页
LSD MCU TECHNOLOGY CO., LTD .
利尔达单片机技术有限公司
Q7: 请问 AR 编译器的 s43 文件用什么编辑器打开? A7:打开 IAR 编译器后就可以直接打开了;另外,记事本也可以打开
Q2:我用的 430f22x 学习套件,请问在 IAR Embedded Workbench 中仿真时如何看程序运行时间. A2:只有软件模拟下可以看, VIEW-REGISTER-CYCLECOUNT
Q3:请问各位 msp430 仿真器和编程器有什么区别啊?是不是我开发的时候这两个东西都得有?我目前用的是 msp430cg461x 系列或 msp430fg461x 系列,是不是很多仿真器和编程器都不支持? A3:一般来讲,仿真器是在先期调试程序时使用的,他不会烧断单片机熔丝,能把程序下载到单片机中,能 够单步,跟踪,快速调试。编程器就没有这些调试功能,就是单纯把你做好的程序的编译后文件写到单片机 中去,就和 51 的编程器一样,有加密熔丝烧断等功能,是在你产品成型后,生产时使用的

关于MSP430中断、中断嵌套的一些注意事项

关于MSP430中断、中断嵌套的一些注意事项

关于MSP430中断、中断嵌套的一些注意
事项
1、MSP430默认的是关闭中断嵌套的,除非在一个
中断程序里面再次开启了总中断EINT();2、当进入中断程序时,只要不在中断中再次开中断,则总中断总是
关闭的,此时如果来中断,不管中断的优先级高还是低,都不执行。

3、如果在中断A中开放了总中断,则可以响应之后
到来的中断B(无论B的优先级是高还是低),B执行完了,再继续执行A。

这里,进入中断B之后,总中断同样也会关闭的。

如果中断B执行的过程中,还需要执行中断C,则此时也要在中断B中开放总中断。

若不需要响应中断,则不用开放总中断。

B执行完以后,跳出中断程序,进入A程序执行的时候,总中断会
自动打开。

4、若在中断之中开放了总中断,那么后来的中断同
时发生多个的话,则会按照优先级的顺序来执行,即
MSP430的中断优先级只有在
多个中断同时到来的时候才会起作用。

5、对于单中断源的中断,
只要响应中断,系统的硬件会自动的清除中断标志位。

对于TA、TB这样的定时器的比较、捕获中断,只要
访问TAIV/TBIV标志位就会被自动清除。

对于多源中断,需要手动清除标志位。

比如:P1、P2的中断,需要手动清楚相应的标志位。

如果在这种中断中使用“_EINT();”,开中断,而在打开中断之前,没有进行原来中断标识位
的清除工作,就会有相同的中断
不断的进行嵌套。

而导致堆栈溢出引起复位,所以在这类中断中,必须先清除标志位,再打开中断开关。


不然等着死机吧。

MSP430中定义大数组存在的问题及解决方案

MSP430中定义大数组存在的问题及解决方案

MSP430中定义大数组存在的问题及解决方案这两天利用MSP430做一个小系统,需要定义一个很大的全局数组,编译之后没有问题,但是调试的时候却遇到了问题。

下面我们先来看下遇到的问题。

问题:利用CCS软件将代码烧入430之后,在还没有点击开始运行时,程序就已经开始自动运行了如下图所示,在点击暂停之后,程序就报错了。

在把那个数组元素个数改的很小之后,程序就正常了。

所以可以断定,是由于定义大数组产生的问题。

问题分析:通过查找资料,发现产生这个问题的原因是因为全局数组定义过大时,系统一上电,需要对这些数组初始化,初始化的时间过长,导致看门口溢出,从而一直进不了主函数,导致程序跑飞了。

解决方案:(1)编写C启动函数在TI官网找了有关CCS的资料之后,找到了解决方案。

除了主函数之外,我们需要再定义一个函数,函数名为的_system_pre_init(),在CCS编译器中,这是一个C 启动函数,是在主函数开始执行之前执行的,所以在该函数里,加入关闭看门口的代码就可以解决这个问题了~ 在IAR编译器中,也有类似的函数,为__low_level_init(),使用方法与上文提到的相同。

(2)将大数组放在RAM的不初始化区域既然已经知道是初始化时间过长导致这个问题,我们可以把大数组定义在RAM的不初始化区域就行了。

在IAR编译器中,在定义变量之前,加上__no_initm 命令即可,如__no_init char a;即把a这个字符型变量放在RAM的不初始化区域。

在CCS编译器中,没有这样的命令,需要做类似的操作的话,有些繁琐,需要自己改写CMD文件,这里就不再赘述了。

大家有兴趣的话,可以到TI官网下载相应的文档看一下。

MSP430常见问题与解答

MSP430常见问题与解答
MSP430常见问题与解答[26精选]
由Texas Instruments提供,如果你是一位MSP430初学者。希望这些能帮到你吧,这是一个不错的综合问题。如果认为此论坛对你有用,请帮忙宣传吧...
1-问:JTAG 与 I/O 功能之间的 MSP430 引脚复用
答: 四个引脚 P1.7 - P1.4 在 20 与 28 引脚 MSP430F1xx 器件上均同时具有 I/O 与 JTAG 功能。这些引脚的默认功能是,当器件通电时具有 I/O 功能。当测试引脚拉高时,则将这些引脚选为 JTAG。当使用交互式系统内调试程序时,这些器件的 FET 会将这些引脚处于 JTAG 模式下。如欲了解有关在使用调试程序时从 JTAG 模式发布引脚的信息,敬请参阅《FET 工具用户指南》。
注:如果将外部电路附加到共享引脚上,则必须考虑 JTAG 信号对引脚的相互影响。
如果通过 JTAG 对该器件进行系统内交互式编程或调试,则需考虑电路将产生的影响。如果电路将增加共享引脚的负载或偏置,进而干扰 JTAG 通信,则应考虑这一点。更高引脚计数器件具有仅可用于调试与编程的专用 JTAG 引脚。
1-使用编程器(随时使用,无需开发):
a MSP-PRGS430
b BSL工具(例如来自 Gessler Elektronik、Softbaugh、Elprotronic 的工具)
c 群组编程器 MSP-GANG430
如欲了解第三方工具, 敬请访问
/sc/msp430 >>> 第三方>>> 第三方工具
答: 如欲了解有关 MSP430 产品系列的完整信息,敬请访问 MSP430 主页:/msp430。在
访问网址超出本站范围,不能确定是否安全

提问MSP430问题-TI官方回答

提问MSP430问题-TI官方回答

Unanswered Questions and Their AnswersQ 1: 如何將msp430與5v的系統作連結?A 1: 可以參考我們的一份Application note:slaa148。

Q 2: 除了使用於pda或smart phone外,430可否使用在其它的應用中?A 2: msp430是一顆混合信號處理能力相當優秀的mcu,為16bit、flash架構,超低功耗的特性使其非常適合用於可攜式週邊,另外在於一般的meter、感測器應用及低耗電量的應用也非常合適。

Q 3: 在目前的430於數位相機及pda中,430的主要功能為何?使用到哪些模組?A 3: 主要使用的是timer_a及i/o,另外隨著功能的強化您可以使用adc及比較器及其它相關模組。

Q 4: 在中國是否有經銷點及技術支持人員?A 4: 有的,您可以與我們蘇子杰先生聯絡。

電話是:21-58369345。

Q 5: 我想要學習msp430,請問在軟體及硬體設計上有沒有更完整的範例?A 5: 可以與我們聯絡或是至ti網站:/msp430。

Q 6: 我能夠使用msp430中的adc做為voice的codec嗎?A 6: 有的,我們有些範例就是實現voice codec,您可以與我們聯絡取得此範例。

Q 7: 我的系統中有一顆dsp作為主要的運算核心,msp430與它們的溝通能力好嗎?A 7: 相當優秀,您可以使用i2c或spi或uart與dsp溝通,我們亦用範例是利用msp430做為dsp之boot rom做為更安全之外部程式保護。

Q 8: 聽說c語言的程式效能較為低落,msp430的c compiler的效能好嗎?如果我想使用msp43 的組合語言作開發會不會很難學?可以在同一個專案中同時使用c及組合語言呢?A 8: 可以在同一個專案中使用c及asm,其效率相當不錯,您可以自行將c code轉換成asm code 便可以發現其除了效率外,code size也相當的小。

msp430题库及答案(word文档良心出品)

msp430题库及答案(word文档良心出品)

一、填空题本题共5小题,每小题4分。

1.// Port1 interrupt service routine#pragma vector = ()__interrupt void Port_1 (void)A.PORT1_VECTOR[正确答案]:[试题解析]:[阅卷得分(4)]:42.// Configure TimerATACTL = (); // Source: ACLK, UP modeCCR0 = 5100; //Timer count 5100CCR1 = 100; //Timer count 100CCTL0 = CCIE; //CCR0 interrupt enabled CCTL1 = CCIE; //CCR1 interrupt enabledA.TASSEL_1 + MC_1;[正确答案]:[试题解析]:[阅卷得分(4)]:43.// Configure Basic ClockBCSCTL1 =(); // Set rangeDCOCTL =(); // Set DCO step + modulation BCSCTL3 |= LFXT1S_2; // Set LFXT1A.CALBC1_1MHZ;B.CALDCO_1MHZ;[正确答案]:[试题解析]:[阅卷得分(4)]:44.// Port1 interrupt service routineP1OUT ^= BIT0; // P1.0 = toggle()&= ~BIT3; // P1.3 IFG clearedA.P1IFG[正确答案]:[试题解析]:[阅卷得分(4)]:45.// Timer A1 interrupt service routine#pragma vector = ()__interrupt void Timer_A1 (void)A.TIMER0_A1_VECTOR[正确答案]:[试题解析]:[阅卷得分(4)]:4二、单选题本题共40题,每小题2分。

MSP430编程点滴

MSP430编程点滴

MSP430 编程点滴
做了好一段时间的msp430 单片机的编程,随意想一点点东西写下来,
也算是给岁月增加一圈年轮。

我做msp430 的编程使用IAR,用C 语言来
说。

在调试和编程中经常遇到一些个问题,如下:
1、中断
中断是单片机很重要的一个问题,也是难处理的一个问题。

在调试中经常
遇到问题。

1)打开了中断开关,但是忘了写中断服务程序,此时如有产生了中断就会
导致程序跑飞。

此问题遇到了几次,都是一时疏忽,造成了很大的麻烦。

2)外设与CPU 是并行运行的,采用中断的方式控制外设时,需要考虑主程
序可能要等待外设中断。

Uart_Send(CustomerCounter,CustomerCounterRow*(AddrMap[0]while(TxSendSt atus == TXSEND_DATA);
/ /清零
CustomerCounterRow = 0;。

430常遇问题解答

430常遇问题解答
这句代码即表示这是一个使用寄存器掩码进行寄存器操作的函数。同时,这个函数也是最底层的函数了,
该函数的具体代码由编译器的开发商做成了库的形式,供我们调用,但并不公布源码。
在msp430头文件msp430xx.h中,也已经对LPM4等命令进行了宏定义,
比如在MSP430F149所对应的头文件MSP430f149.h中,有这样一句:#define LPM4 _bis_SR_register(LPM4_bits) ,
__bic_SR_register_on_exit(CPUOFF); 是将SR里的CPUOFF位置0。
_DINT();
关闭全局中断控制,使GIE=0。执行__disable_interrupt 指令
MSP430在确定CPU工作模式的时候_BIS_SR是什么?为什么有的时候可以不加这个直接写?
更具体去看百科
综合起来就是:定义一个不会被编译器优化的无符号整形数 i;
MSP430中volatile unsigned int i这句话具体是什么意思?
unsigned int是类型 :无符号整形数
volatile 是关键字 :确保这个变量不会被编做其他事的话,编译器会认为这个是多余的,
然后把它优化掉,就相当于没写过一样,加了volatile编译器就不会优化它了。
MSP430单片机编程新手,用C语言中 (3*0x40u)
代表常数3乘以另一个常数。第二个常数的数值是0x40
(十六进制,换成十进制是64),至于为什么写作0x40u,
则是表示这个0x40是无符号类型的整数。u代表unsigned int,占有2个字节
__bis_SR_register():是将SR里的对应位置1,

msp430FR6979低功耗调试问题总结

msp430FR6979低功耗调试问题总结

MSP430FR6979低功耗问题调试总结问题:经过确认主芯片已经进入LPM3低功耗模式,测试电源电压3.3~v,所有芯片的IO 口都已经设置成输出模式,并且所有输出都已经置成低电平!那么问题来了经过电流表测试电流在40uA~220uA之间浮动,电路板手一碰电流就发生变化,非常不稳定!完成测试代码如下://系统时钟初始化部分main(){_DINT();WDTCTL = WDTPW +WDTHOLD;//系统上电是默认看门狗打开,上电先关闭看门狗CSCTL0_H = CSKEY >> 8; // Unlock CS registersCSCTL1 = DCOFSEL_0|DCOFSEL_3; // Set DCO to 4 MHz CSCTL2 = SELM__DCOCLK | SELS__DCOCLK | SELA__LFXTCLK ;CSCTL3 = DIVA__1 | DIVS__1 | DIVM__1; // Set all dividers to 1CSCTL4 = HFXTOFF;//关闭高速外部晶振CSCTL0_H = 0; // Lock CS registers//IO口初始化部分// 所有引脚输出模式,置0 P1OUT = 0;P1DIR = 0;P2OUT = 0;P2DIR = 0;P3OUT = 0;P3DIR = 0;P4OUT = 0;P4DIR = 0;P5OUT = 0;P5DIR = 0;P6OUT = 0;P6DIR = 0;P7OUT = 0;P7DIR = 0;P8OUT = 0;P8DIR = 0;P9OUT = 0;P9DIR = 0;P10OUT = 0;P10DIR = 0;PJOUT = 0;PJDIR = 0;PMM_unlockLPM5();RTC_C_Initial();_EINT();while(1){LPM3; //进入低功耗3模式}}经过几天的网上收集资料、代码调试和芯片数据手册仔细寻找,总算摸索出来一点东西,根据数据手册配置IO口要配置三个寄存器PxDIR 、PxREN、PxOUT;上面的代码只仅仅只配置了PxDIR 和PxOUT两个寄存器,经过增加寄存器PxREN,测试电流惊奇的发现电流仅仅为4.1uA,并且非常稳定!修改代码如下://系统时钟初始化部分main(){_DINT();WDTCTL = WDTPW +WDTHOLD;//系统上电是默认看门狗打开,上电先关闭看门狗CSCTL0_H = CSKEY >> 8; // Unlock CS registersCSCTL1 = DCOFSEL_0|DCOFSEL_3; // Set DCO to 4 MHz CSCTL2 = SELM__DCOCLK | SELS__DCOCLK | SELA__LFXTCLK ;CSCTL3 = DIVA__1 | DIVS__1 | DIVM__1; // Set all dividers to 1CSCTL4 = HFXTOFF;//关闭高速外部晶振CSCTL0_H = 0; // Lock CS registers//IO口初始化部分// 所有引脚输出模式,置0P1REN = 0xFF;P1OUT = 0;P1DIR = 0;P2REN = 0xFF;P2OUT = 0;P2DIR = 0;P3REN = 0xFF; P3OUT = 0xFF; P3DIR = 0;P4REN = 0xFF; P4OUT = 0;P4DIR = 0;P5REN = 0xFF; P5OUT = 0;P5DIR = 0;P6REN = 0xFF; P6OUT = 0;P6DIR = 0;P7REN = 0xFF; P7OUT = 0;P7DIR = 0;P8REN = 0xFF; P8OUT = 0;P8DIR = 0;P9REN = 0xFF; P9OUT = 0;P9DIR = 0;P10REN = 0xFF;P10OUT = 0;P10DIR = 0;PJREN = 0xFF;PJOUT = 0;PJDIR = 0;PMM_unlockLPM5();RTC_C_Initial();_EINT();while(1){LPM3; //进入低功耗3模式}}总结:调试过程中引起问题是IO口设置问题造成的,除了把对应IO口设置成输出固定电平外,还应该把对应IO口的上拉和下拉寄存器设置成使能模式。

MSP430之解错篇

MSP430之解错篇
~BIT0;
多加的;就会使程序出现上述错误。
6、The targetsetup(MSP430G2xx3) does not match the actual targettpe
(MSP430G2xx2)
解决:检查目标板上芯片型与CCS工程设置芯片型是否一致。大部分是匹配
不一致的
问题。
7、Warning[Pa093]:implicit conversion from floating point to integer。

这样的错误
解决:把unsigned char ReadingData[7];放在.c文件中
4、An error has occured.Seethe log fileC...workspace_v5_1.metadata.log
解决:安装目录CCS5.1CCS5.1.1.00031_win32aserepo下的vcredist_x86_2005
解决:使用强制转换语句,把float数据转化成integer类型数据。这样防止数
据出错。
tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!
原因:工程中有多个.c文件,但不在工程中.
解决:把.c文件加到工程里。
3、Error[e27]: Entry“ReadingData”in module DS1302 (E:MSP430
ModuleDS1302DebugObjDS1302.r43 ) redefined in modulemain
原因:我把定义的数组unsignedcharReadingData[7];放在.h的文件中编译出MSP430之源自错篇【记住】接口别忘设置!
1、设置IAR软件Tab键缩进字符个数
方法:Tools-Options-Editor-Tab Size,按习惯改后面数字.

MSP430单片机题目答案整理(大部分)

MSP430单片机题目答案整理(大部分)

M S P430单片机题目答案整理(大部分)-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN第一章1. MCU(微控制器单元)与MPU(微处理器单元)的区别?MCU集成了片上外围器件,而MPU不带外围器件,是高度集成的通用结构的处理器。

是去除了集成外设的MCU。

2. MSC430单片机的不同系列的差别?MSP430系列单片机具有超低功耗、处理能力强大、片内外设丰富、系统工作稳定、开发环境便捷等显着优势,和其他类型单片机相比具有更好的使用效果、更广泛的应用前景。

3. MSC430单片机主要特点?1.超低功耗2. 强大的处理能力3. 高性能模拟技术及丰富的片上外围模块4. 系统工作稳定5. 方便高效的开发环境4. MSC430单片机选型依据?选择最容易实现设计目标且性能价格比高的机型。

在研制任务重,时间紧的情况下,首先选择熟悉的机型。

欲选的机型在市场上要有稳定充足的货源。

第二章1. 从计算机存储器体系结构上看,MSP430单片机属于什么结构?冯·诺依曼结构,是一种程序存储器和数据存储器合并在一起的存储器体系结构。

2. RISC与CISC体系结构的主要特征是什么MSP430单片机属于哪种结构CISC----是复杂指令系统计算机Complex Instruction Set Computer的缩写,MCS-51单片机属于CISC。

具有8位数据总线、7种寻址模式,111条指令。

RISC----是精简指令系统计算机Reduced Instruction Set Computer的缩写,MSP430单片机属于RISC。

具有16位数据总线、7种寻址模式,27条指令。

3. 对MSP430单片机的内存访问时,可以有哪几种方式读写字数据有什么具体要求字,字节,常字。

字访问地址必须是偶数地址单元。

4. MSP430单片机的中断向量表位于什么位置其中存放的是什么内容中断向量表:存放中断向量的存储空间。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Q 13:EZ430-RF2500 中的 USB debugging 可以调试 msp430 其他支持 Spy-Bi-Wire 系列的芯片吗? A13:可以。 Q 14:用 TI 的 USB 仿真器,采用的是二线法。用 SD_16 采集数据,发现连接仿真器输出的数据正确,而把 仿真器拔去,输出的数据就错了。这是为什么? A14:怎么理解这个数据正确和错误?你怎么下的判断?我认为是你 接仿真器的时候目标板是从仿真器上取 电的,拔掉仿真器是外部电源供电的,电源电压不同,将导致基准源改变,采样出来的值变化会很大。
Q4: 初次使用 430 单片机,F149 。高速晶振 8M,低速 32K,下载程序时出现 security fuse **own 字样,无 法烧录。请各位高人指点,应该是哪里有问题。 A4: 手工复下位应该基本可以解决,除非芯片熔丝真被烧掉了。如果熔丝断了,可以用 BSL 方式写入程序.
Q5: 运行到断点时程序不能自动结束,必须自己按 break。我这是程序跑飞了么? A5:是你断点设置的多了吧。你在程序中,只设置这一个断点试试
第4页 共68页
LSD MCU TECHNOLOGY CO., LTD .
利尔达单片机技术有限公司
1、仿真器的2、4脚电源 2、复位脚的RC电路 3、是否是SBW模式 4、JTAG复用引脚时注意外部电路的影响 5、外部有功率较大的器件,当下载时造成外部电路的功耗较大 6、JTAG线不能太长,一般在20CM以内比较合适 7、如果是 USB 的仿真器还要注意 USB 线不能太长,使用笔记本的还要注意 USB 上不能连接太多的负载
公司地址:杭州市登云路 425 号杭州利尔达科技大厦 Tel:0571-88800000 Fax:0571-89908519
第1页 共68页
LSD MCU TECHNOLOGY CO., LTD .

第一章:开发工具类 第二章:指令系统 第三章:代码编程类 第四章:工作模式及功耗类 第五章:复位系统类 第六章:看门狗及定时器类 第七章:系统时钟类 第八章:LCD 显示驱动类 第九章:通信类 第十章:IO 端口类 第十一章:FLASH 存储类 第十二章:AD 转换类 第十三章:电源类
利尔达单片机技术有限公司

声明:所有问题均来自网络,部分答案也同样来自网路,答案仅供参考,并不能完全解决在使用中碰到的问 题。所以客户在使用 MSP430 单片机时还是以实际情况来决定。
如有任何疑问欢迎与我们联系:haoqiang@、gufeng@、chenbing@
MSP430 的仿真器是使用 JTAG 接口的,分别有四线制的 JTAG、带 TEST 脚的四线 JTAG 和两线制的 SBWJTAG 三种接口,UIF 上三种都支持,并支持烧熔丝,UIF 就是 USB 接口的仿真;PIF 不能支持 SBWJTAG 接口,也不能烧熔丝,PIF 是并口的仿真器。任何一种 JTAG 接口的仿真器在烧断熔丝后都不能再仿真和写入, 而 BSL 可以通过密码访问 FLASH 空间,读出写入均可,BSL 是串口实现的,但 BSL 不能仿真,注意部分器 件不支持 BSL,如 F20XX 系列就不能用 BSL,烧掉了熔丝就变板砖。
Q15:sd-fet430 uif 仿真器不能外供电吗? A15:可以,驱动电流较小,内部是光 MOS 管,要注意负载
Q16:430FET 下载出现问题时检查的一般思路 A16:在完全确定无虚焊、短路的情况下,一般注意以下事项:
公司地址:杭州市登云路 425 号杭州利尔达科技大厦 Tel:0571-88800000 Fax:0571-89908519
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 个上拉电阻就解决问题了。
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:做仿真口的复用管脚在仿真时,被作为仿真功能管脚使。
MSP430 任何系列的仿真器只要接口方式一致都是兼容的,比如 FG461X,可以使用标准的带 TEST 的四 线 JTAG,而 F22X4 也可以使用带 TEST 的四线 JTAG,当然 F22X4 还可以选择使用 SBWJTAG,它支持两种 JTAG 接口。如果不是 TI 标准的 430 系列用 JTAG 仿真器那就不行了,应该是不兼容的,不是什么“很多仿真 器和编程器都不支持”,而是专用。
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 要建不同的工程下调试。
公司地址:杭州市登云路 425 号杭州利尔达科技大厦 Tel:0571-88800000 Fax:0571-89908519
第2页 共68页
LSD MCU TECHNOLOGY CO., LTD .
利尔达单片机技术有限公司
第一章:开发工具类
Q1:我自己做了一块 MSP430F149 的试验板,以前用下载线进行调试没有出现过问题,但是,最近我每次 make 后用下载线调试时,总是弹出一个窗口,给我提示:Could not find target status. 然后就死到那儿了,请问这是 什么问题呢? A1:检查 Jtag 口线是否连接正常,如果 JTAG 口线连接正常,可能是供电不足,目标板加电再测试。
Q20:通过标准的 BSL 方式是不需要编写单片机程序的? 如果是的话,那自定义串口下载的优点和缺点 又是什么? A20:用 BSL 不需要自己编写单片机程序,但需要另加入两根或己写自编程程序,此方式使用方便,还可以在线大批量升级,缺点是要占用 FLASH 空间,如果通 讯协议严谨,再加上密码保护之类的算法,消耗 2K的FLASH资源还是比较正常的,所以小 FLASH 容量 的就不推荐使用了。
Q2:我用的 430f22x 学习套件,请问在 IAR Embedded Workbench 中仿真时如何看程序运行时间. A2:只有软件模拟下可以看, VIEW-REGISTER-CYCLECOUNT
Q3:请问各位 msp430 仿真器和编程器有什么区别啊?是不是我开发的时候这两个东西都得有?我目前用的是 msp430cg461x 系列或 msp430fg461x 系列,是不是很多仿真器和编程器都不支持? A3:一般来讲,仿真器是在先期调试程序时使用的,他不会烧断单片机熔丝,能把程序下载到单片机中,能 够单步,跟踪,快速调试。编程器就没有这些调试功能,就是单纯把你做好的程序的编译后文件写到单片机 中去,就和 51 的编程器一样,有加密熔丝烧断等功能,是在你产品成型后,生产时使用的
Q12 : 装了 MSP-FET430UIF 仿真 器 , 但 是 在 AQ430 的 Options 中, 无 法 找 到 该 仿 真 器 , 正 常 应 该 有 LPT1/LPT2/LPT3/TIUSB 四个选项,为什么看不到 TIUSB? A12:先看看硬件管理器中有没有那个硬件,有则先用 IAR 试试.
LSD MCU TECHNOLOGY CO., LTD .
利尔达单片机技术有限公司
利尔达科技有限公司
技术一部
LSD SCIENCE & TECHNOLOGY CO., LTD.
MSP430 相关 Q&A
Question & answer
版本号:V1.0 提交人:MSP430 项目组 整理时间:2009 年 02 月
Q6:当在 RAM 中对其中一变量开辟的尺寸是 512 字节时,程序总占用 3.5K RAM 空间,可以正常烧到芯片中, 也可以正常运行; 当对同一变量开辟的尺寸是 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_start
相关文档
最新文档