MSP430学习笔记(3)

摘要:本文是对学习MSP430的准备工作的记录与总结,涉及到MSP-EXP430F5529开发板和MSP430F5529LaunchPad的外部参数与特点分析、TI公司的IDE Code Composer Studio的使用、MSP430F5529的初步上手以及与ARM系列单片机(主要是Freescales公司的MK60系列)的比较。

书接上回。

1.3 CCS

1.3.1 关于这个软件(碎碎念)
CCS

当我拿到MSP430的时候,不仅是接触到了一个新的单片机,同时也意味着可能要遇到一个新的编译环境。一开始是想用IAR的,因为当初在调试MK60的时候,用的就是IAR for ARM,觉得上手以后很顺手,尤其有了仿真与调试功能以后(可能是因为之前用的Keil在线调试与Debug能力很差,更别说不是针对MCU的VS之类的了)。用IAR的时候很舒服,因为与之前的盲人摸象不同,可以通过单步调试来寻找问题的所在。因此就想继续沿用IAR吧,的确是有IAR for MSP430,TI手册上也给推荐了。那就下载安装,但是出现了不少问题,觉得应该可以解决的,但是最后还是没有找出好的解决方案……哎,只好作罢了。目光又重新转到这个弃儿CCS上,不想用他的原因不外乎陌生,对陌生的东西往往都有畏惧的心理,很多事都是如此。
下载安装不表,很简单。当然,人生若只如初见……
初见感觉编辑界面和大部分的IDE差不多,能缩进、智能排版,而且有很多的奇淫技巧,能很大程度上提高你的编程进度以及解决bug的速度,不过很多东西很需要悟性……
碎碎念到此为止,我在下面分享一些在CCS遇到一些问题和技巧在这里。

1.3.2 Tips

在展开这之前,我严重推荐一本书,叫做《LaunchPad口袋实验手册》,青岛大学老师编写的,很好,有很多新手遇到的问题在里面都有提到,能少走不少弯路强烈推荐。

1.3.2.1 Views
CCS Views

有很多熟悉的东西,比如Breakpoint、Register、Memories Map等等,这些东西在编程工作时能起到事半功倍的作用,比如在遇到一些对寄存器的初始化时,在这里会比以前用过得Keil甚至IAR还要好(我记得好像IAR没有看寄存器值的功能),在下一节里就会发现这里相当的有用。前提是,正确的配置,不要摆放的太乱,一定不要对Editor窗口有影响。


RAM、ROM分配

查看内存的分配情况,可以把表格、常量数组放到FLASH里。

1.3.2.2 选择性忽略
Advice - 1

完成程序的编写后,迫不及待地编译后,What the Fuck,怎么这么多Advice,对于以往使用keil出现一个Warning来说,有点吓坏了,再仔细一看,是一些关于ULP的优化建议,我试着每次都去优化,但是每次把上个问题优化好,新的问题就出现了,到最后发现不会影响我程序的运行,那就偷个懒吧。
Advice - 2

我试着写了几个不同的程序,然后编译,发现大部分的优化建议都是关于不要有空循环,多使用定时器这种以前编程没有注意到的问题,这个的确是要注意的,希望不要当作好的东西被大家学习。也有自己对MSP430很多东西没有摸透,所以无法针对性的来优化程序,尽可能的来发挥ULP优势。所以,如果真的遇到这些问题,希望大家能选择性的忽略吧。

1.3.2.3 Debug界面

用了一段时间的CCS,发现CCS在DEBUG的时候有点慢,这算是与IAR比起来的一个缺点吧。

进入Debug界面,感觉不错,界面挺友好的,而且编辑感挺强,单步调试、断点这些基础的功能都有的,用起来也挺方便。我也暂时没有用到的更高大上的功能,起码这些功能很不错。大概TI公司逐次的迭代和优化,到了CCS第六代,终于优化的差不多了吧。
Debug - 1
可以看到我的Debug界面的布置,自我感觉这样还是可以的,因为最近看寄存器比较多。如果需要针对变量的话,也可以把Expression放在显眼位置。
1.3.2.4 例子
eg - 1

比如要可以看到箭头所指的地方有个Breakpoint,然后在红框里就可以看到变量值的变化情况,很EZ。

比如我配置UCS时钟,配置各个时钟的情况
eg - 2

在Register里就会很快的发现是否配置错或者其他的问题!

1.4 遇到的一些问题

1.4.1 时钟的失效情况

很多时候会发现时钟的运行并不能像预想的那样去运行,这时候很有可能对程序的运行、相应的逻辑出现很多误差,这在编程中是不允许的,哪怕程序看起来可以正常的运行,但是随时都会有意外发生,尤其对精确的定时,延时来说。

1.4.1.1 DCO被置位 自动调整DCO

先说我发现的第一个问题,也在学习笔记(2)1.2.1.4 中提到过了,就是要正确配置DCO的预设值,当不正确的设置DCO的时候,在1.2.3.4中的配图中能明显看出来,同时,还有一个标志就是在刚刚提到的寄存器里可以发现问题。


Problem - 1

我们在手册里可以看到,在正确配置DCOSEL后,UCSCTL0寄存器中DCO是自动配置的。当DCO不在合适的范围中的时候,会出现DCO全为0的情况。
Problem - 2
根据我的经验,遇到这种情况,就很难输出想要的时钟了。并且你会发现在之前提到的SFRIFG1寄存器中,也会有异常的情况发生。
Problem - 3
Problem - 4
OFIFG置位,查找根源就是DCOFFG出现了置位。如果学会用查看寄存器来Debug,是不是问题的解决速度就会加快一点点呢 :)。
1.4.1.2 注意预设值 要清零的问题

原来在看手册的时候,不太注意预设值的问题,查看寄存器也发现怎么设置值与自己预想的值不同,这时候就要仔细查看手册了。比如

Problem - 5
FLLD和FLLN的复位值不是0时,要记得清零后再设置,否则用按位或置位的话,会出现问题。
有两种方法:
1.直接把这个寄存器清零后,按位或置位。

UCSCTL1 = 0; 
UCSCTL1 |= DCORSEL_6;//DCORSEL原来的值是2h.

个人认为这样简单粗暴,对于大部分场合是没有问题的,但是对于有些已经设置好的位,就需要保护一下相应的值了;
2.可以按位取反后(复位),按位或置位。

UCSCTL1 &= ~ 70h;//按位与0相与.
UCSCTL1 |= DCORSEL_6;//DCORSEL原来的值是2h.

好像有点麻烦,还得看手册……
当然,设置完一定要看一下相应的寄存器,是否配置好了。

1.4.1.3 调整后用示波器观察

由于UCS的配置比较复杂,所以建议在配置完成后,不仅要看寄存器的值和现象,而且要用示波器看一下输出的是否按照预想的设定输出,对于一些对于时序/时钟要求精确的场合,这样还是非常有必要的。

1.4.1.3 重在Debug

再碎碎念一下。我个人觉得,这个Debug的过程是有点头疼,但是解决问题的快感也是很多事难以比拟的。尤其是在Debug的过程中,还会出现一些新的问题,可以通过这个来更加深入你要学习的东西,不断的复习,不断的吸取新知识,岂不快哉?

1.5 关于分频的一些测试

基本上对于时钟的基本配置和常常会出现的问题在上面已经说的差不多了。下面要说的是分频,对于时钟配置也是挺常见的,尤其是在后面的TimerA(定时器)里,用到的更多。在这里也稍微展开一点把。

1.5.1 对时钟来源进行分频
DIV - 1

上图是关于分频系数的配置,我们调整DIVA的值,通过示波器来看输出时钟的变化。变量仅仅是DIVA的值,其他值保持相同。
DIVA = 0
DIVA = 1
DIVA = 8

可以看出,分频精度还是可以的。而且超调与振荡也稍微小了一点点。

1.5.2调节FLLD
FLLD - 1

调节FLLD,就是调节DCODIV的输出,当时钟来源来自DCODIV的时候,调整FLLD,也就是调整了相应的系数,就可以方便的调节输出时钟频率。
FLLD - 2

上图是调整FLLD = 1时,对之前6.31MHz进行倍频的波形,看的出来,上升沿下降沿都不是多好看了。估计是因为软件调制的原因吧。

1.5.3 DCO极限测试

我想,软件调制应该是有个极限的吧?手册上写是25MHz,但是我不断调整相应的系数,会不会有奇迹出现呢?先放结论,不会。下面看实验结果:


OverClock - 1

上图是DCO来源来自XT2 4MHz高频晶振,FLLN = 3 DCOSEL = 5时的波形。
OverClock - 2
上图是FLLN = 4时的情况,不过DCOSEL = 6了。
OverClock - 3
OverClock - 4

上图是FLLN = 7 ,DCOSEL = 5时的波形,已经有点醉了。


Overclock - 4
测试的极限情况,FLLN = 7 ,DCOSEL = 7,波形畸变的太厉害了,已经不能称之为方波了,居然有点正弦波的感觉……

测试到这时候就结束了……

1.5 后记

写到这终于写完了,说不出现在是累还是终于可以舒一口气了……

通过正确的配置时钟,我用MSP430也完成了一个设计,看着手上的小东西,也有了相应的说明书以及报告,心里还是有成就感的。写下了一点学习笔记,希望能和大家分享我的学习之路,分析与解决我遇到困难,能给大家更多的启发。
Horse

非常感谢您的阅读,若有疑问或错误,请留言指出,感激不尽!

参考书籍与参考帖子:
《MSP430x5xx and MSP430x5xx Family User's Guide》
《MSP430单片机原理与应用 -MSP430F5xx/6xx系列单片机入门提高与开发》(任保宏 徐科军 编著)
《LaunchPad口袋实验平台 MSP-EXP430G2篇》(傅强 杨艳 编著)
http://bbs.eeworld.com.cn/thread-458079-1-1.html
http://www.aiuxian.com/article/p-1863585.html
http://blog.csdn.net/girlkoo/article/details/9047191

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 37,106评论 8 114
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,580评论 18 139
  • 按键中断的一个小尝试 @Board: MSP-EXP430F5529@Keys: S1(P1.7) S2(P2...
    浮生一城阅读 2,571评论 1 2
  • SPI通信实验 SPI简介 串行外设接口(Serial Peripheral Interface Bus,SPI)...
    btskyrmb阅读 9,356评论 1 12
  • 周六找个理由熬个夜吧,不用担心被草丛里跑出来的赵云打个惨烈。今天把王者玩的五个宝箱都开启了,对于一个对游戏不过敏、...
    L勤劳阅读 261评论 4 6