打印

#TI校园故事#+TI支持下成长(C2000&Self-Balancing robot) 申精

[复制链接]
8520|48
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 newofcortexm3 于 2012-10-28 15:47 编辑

    最近两个月,多次参加了TI与21IC共同推出的在线培训课程,受益颇多。9月,参加了TI的宣讲会,虽然简历石沉大海,但被其30年来不断创新的企业文化而深深折服。希望明年的10月底,能成为TI的一员。
    与TI结缘是2010年的省电子设计大赛,虽然无缘参加TI冠名的电源设计类比赛,但对TI的电源应用留下了深刻的印象。2011年,在导师的公司里做毕业设计,最先选择的处理器是TI Stellaris的ARM cortexm3内核的LM3S5956。同时,那段时间也接触并了解了公司的一款电力测温系统。该系统的MCU就是TI的MSP430芯片,虽然当初对MSP430不甚了解,但是其超低功耗的特性却早已铭记于内。正式利用TI的处理器进行开发已是2011年的7月,是我读研期间的项目,利用C2000系列的TMS320F28335研发一款两轮自平衡的机器人移动平台。
    依稀记得,刚进入实验室的两周,疯狂的搜索着有关TMS320F28335的中文资料,结果差强人意,了解足够,深究作罢,只好研读英文技术手册。这样的学习的方式被导师批评效率太低。不得已赶鸭子上架,先从TI提供的例子程序 spra958.zip (2.64 MB) 阅读开始,中间不断的翻阅相关的手册。久而久之,算是入了门,慢慢地摸到了门道,也记录了些心得与体会。
    第一个编写的TMS320F28335程序是利用CPU Timer1作时间戳。项目中已经使用了Timer0来配置系统的控制周期,而Timer2一般是为DSP/BIOS系统应用而保留着(若不使用DSP/BIOS系统,也可以用作他用)。在修改ConfigCpuTimer函数的基础上,编写了CPUtimer1的配置函数InitSystimer函数,它将定时器配置成每隔10微妙计次数,因此只要获得计数寄存器TIMH:TIM和周期寄存器PRDH:PRD的差值就可获得时间。对于CPU Timers具体的操作和寄存器说明,我规整了一篇文档《28335之系统时钟》 28335之系统时钟.pdf (225.04 KB) ,**链接:http://hi.baidu.com/mr_d_prince/item/d3c5f016c8748341e65e06ef
    随着项目实践深入,要实现的功能越来越复杂,所定义的常量、变量也越来越多。某一天,当我增加了串口通信的代码之后,CCSV4.12竟然提醒编译不通过,提醒的内容是“.econst”的容量超限,如下图所示,而把增加的代码删除之后,程序可以正常编译且运行。

    既然是容量问题,那我削减变量、常量的个数总可以吧,当我费了九牛二虎之力把可删减的常变量去掉之后,这个问题依然存在,整整窝火了一周。现在想来,当时太天真了。我想大部分初学者,都非常信任官方提供的例子程序,都认为问题是出在自己身上。而此问题的原因恰恰是CCS安装完C2000目录下自带的*.Cmd文件(09年之后)上的那些“段”的空间映射的太细,太小。新版本的*.Cmd文件(28335_Ram_lnk.cmd)上“.econst”段空间长度为0x1000,只有之前的版本的四分之一。所以改写*.cmd文件,将空间增大之后,问题就迎刃而解了。此问题让我深入了解了存储器内存映射的有关知识,也加深了对操作系统的理解(*.cmd文件中的page的设置与操作系统的页表,虚拟内存与物理内存映射类似)。关于*.cmd文件的编写与具体“段”空间的映射,我整理了一篇文档《F28xx系列的CMD文件》 F28xx系列的CMD文件.pdf (395.37 KB) ,**链接:http://hi.baidu.com/mr_d_prince/item/224a97e3d380111b595dd813
   
    到目前为止,我参与研发的两轮自平衡机器人(照片见第9楼)已经能自平衡并且能根据设定的命令前进或者转弯。该两轮机器人的功能实现主要涉及到了C2000的ADC,EPWM,ECAP,SCI,Timer,NMI等功能模块。其关键技术是姿态传感器信息的融合与控制算法。姿态传感器信息的融合主要利用了卡尔曼滤波算法和高低通互补滤波算法,控制算法采用了经典的分段式的PID控制算法,最近正在尝试使用更先进更智能的控制算法,成功后与大家分享。卡尔曼滤波算法和高低通互补滤波算法的资料已在另一帖子分享,链接 https://bbs.21ic.com/icview-388326-1-1.html
    实践的过程中难免遇到问题,上文所述的是我遇到的问题中相对比较典型的。遇到问题对于当时的我来说或许是不幸,但过了这道坎之后,发现这是天大的幸运,不但提升了解决问题的能力,还能从中收获新的知识,岂不美哉!另外,遇到问题时,我们应当大胆,应当自信,我们有权利去怀疑官方,也要敢于质疑官方。
    最后,对于TI与21IC共同推出的在线培训课程和此次分享校园故事表示感谢,让我对DC-DC的基础知识、MSP430和C2000的体系结构有了更全面的认识;让我们能以低价享受TI的LaunchPad开发套件;让我能借此机会与志同道合的网友分享遇到问题解决问题的过程,更重要的是这样的活动为网友们相互了解、相互交流、提升技术创造了条件。
                                    华南理工大学 软件学院
评分
参与人数 2威望 +2 收起 理由
Peterhua007 + 1 支持
FAEboard + 1

相关帖子

沙发
newofcortexm3|  楼主 | 2012-10-20 21:07 | 只看该作者
写的太匆忙,一开始没调好字体大小,竟然连院校信息都忘了,太失败了。

使用特权

评论回复
板凳
FAEboard| | 2012-10-20 21:54 | 只看该作者
请问楼主,你做的两轮自平衡机器人是那种小小的类似玩具的,还是那种像Segway那样可以载人的?

使用特权

评论回复
地板
newofcortexm3|  楼主 | 2012-10-21 08:59 | 只看该作者
3# FAEboard 我做的项目是载人的那种,但应用却不是载人的,只是将它作为一个机器人的移动平台。

使用特权

评论回复
5
FAEboard| | 2012-10-21 21:37 | 只看该作者
4# newofcortexm3 感觉楼主做的项目挺先进的,希望楼主能分享些你的两轮自平衡机器人的照片或视频。

使用特权

评论回复
6
huigoushang| | 2012-10-21 21:38 | 只看该作者
好励志 的帖子

使用特权

评论回复
7
G21372| | 2012-10-21 21:54 | 只看该作者
个人感觉可以申精了

使用特权

评论回复
8
FAEboard| | 2012-10-21 22:12 | 只看该作者
4# newofcortexm3 楼主,下载了你整理的文档,归纳的挺不错的,向楼主学习。

使用特权

评论回复
9
newofcortexm3|  楼主 | 2012-10-22 10:04 | 只看该作者
5# FAEboard 这是照片,但只是最初的版本,还有许多要完善的地方。

使用特权

评论回复
10
FAEboard| | 2012-10-22 18:35 | 只看该作者
9# newofcortexm3 这东西够霸气!羡慕嫉妒恨呢,好想自己也有一台可以折腾。等有钱了,自己动手捣腾一台,希望楼主可以指点。

使用特权

评论回复
11
newofcortexm3|  楼主 | 2012-10-23 09:16 | 只看该作者
7# G21372 谢谢

使用特权

评论回复
12
newofcortexm3|  楼主 | 2012-10-23 09:18 | 只看该作者
10# FAEboard 可以的,到时候可以和大家分享滤波算法和控制算法。

使用特权

评论回复
13
sqcumt123| | 2012-10-23 15:46 | 只看该作者
哈哈!谢楼主,希望今后能得到你的指点。

使用特权

评论回复
14
甜甜小驴儿| | 2012-10-23 17:32 | 只看该作者
受用了~~~谢谢楼主。以后有问题找你啊!:)

使用特权

评论回复
15
FAEboard| | 2012-10-23 22:25 | 只看该作者
10# FAEboard 可以的,到时候可以和大家分享滤波算法和控制算法。
newofcortexm3 发表于 2012-10-23 09:18
那提前谢过楼主了!

使用特权

评论回复
16
FAEboard| | 2012-10-23 22:26 | 只看该作者
哈哈!谢楼主,希望今后能得到你的指点。
sqcumt123 发表于 2012-10-23 15:46
你也有兴趣,我们一起做,怎样?

使用特权

评论回复
17
FAEboard| | 2012-10-23 22:27 | 只看该作者
受用了~~~谢谢楼主。以后有问题找你啊!:)
甜甜小驴儿 发表于 2012-10-23 17:32
一起讨论,一起DIY,我刚好知道一个群,也有人想做载人的两轮自平衡机器人来着,到时候让楼主指导下,应该能做出来的。

使用特权

评论回复
18
newofcortexm3|  楼主 | 2012-10-24 19:55 | 只看该作者
13# sqcumt123 回帖提问即可。

使用特权

评论回复
19
newofcortexm3|  楼主 | 2012-10-24 19:56 | 只看该作者
一起讨论,一起DIY,我刚好知道一个群,也有人想做载人的两轮自平衡机器人来着,到时候让楼主指导下,应该能做出来的。
FAEboard 发表于 2012-10-23 22:27
很荣幸能做你们的指导!

使用特权

评论回复
20
newofcortexm3|  楼主 | 2012-10-24 19:56 | 只看该作者
14# 甜甜小驴儿 可以的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

63

帖子

2

粉丝