DSP(TMS320C6713)入门之旅一LED的点亮.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DSP(TMS320C6713)入门之旅一LED的点亮

最近很多朋友开始学习DSP了(小双同志也加入这个团伙),本人基本上入门。在此给他家分享一下DSP的入门经验。其实DSP和我们本科所使用的单片机基本上架构一致,只是在它的内部集成了一系列的运算单元和逻辑移位单元,并且安排了指令流水,这样在运算性能上大大的提高,可以完成一系列的复杂计算。当然DSP内部也集成了一系列外设,我这儿使用的是TMS320C6713 DSP,这块DSP主频可以达到450M,可以安排8级指令流水,在同一时刻可以同时执行8条指令,当然这要求的是CPU内部的运算单元不能冲突!好了,在此我就不多介绍了,免得把大家说得晕呼呼的!我们刚才是入门了解这些基本上没用,我们得一步一步的按着简单的东西一步一步的做实验。所以我们今天开始一个最简单的实验—LED灯的点亮! ??????? 我们一般学习是要买一块开发板,在此我不做推销,其实每一块开发板都基本上差不多,很多就是按照TI公司的Demo板,而设计的。如果没有学习板,自己看书看了半年,还不如我拿到板子调试一个月的效果,因为很多东西是要在实际中才知道他的作用。我们用一个板子一般要几样东西: ? 一、原理图(知道每一根信号线的走向,比如我们的LED就连接到DSP的GPIO的13脚) ???二、芯片资料(芯片的总的芯片Datasheet和子模块的Datasheet,一般在芯片资料中总的芯片资料会告诉大家芯片的整体规划,比如内存分布,特殊寄存器的分布和具体的地址,而子模块资料会把这个模块的功能和使用介绍得更为详细) ????????????? 三、电路板和仿真器(这个是投入较大的一笔了) ??????????????四、编译软件和计算机(希望在做实验之前大家用过编译器,不一定是CCS,因为所有基于windows上的编译软件都是一个样) ??? 我们来开始第一步,查看我们的电路板上的LED灯的位置和DSP的信号线的连接: ?????从左边的几个原理图的截图我们可以清晰的看到LED灯接到了GPIO的13脚,中间用了一个缓冲器过度了一下,实际的控制信号还是来自DSP的GPIO13。LED上面上拉了一个150的电阻,这个主要是分压,让LED上面的电压不是很到这样不至于LED因为电流过大而损坏了。当然如果有人觉得LED不够亮就可以把这个电阻换成更小一点的。那么我们要点亮这个灯,我们只要把GPIO13那个管脚拉成低电平就可以了,熄灭呢只要拉成高电平。可能跟我们一般逻辑想象不大一样,不过电路是这样做的,那么我们只能这样服从! ???? 我们开始第二步,查看我们的芯片资料使用我们的GPIO模块 打开《TMS320C6713 Data Sheet (Rev. I)》这个pdf文件,这个里面介绍了我们这个DSP的整体状况和内存的映射地址,当然我们现在不用关心那么多,只看看我们今天要用的GPIO模块所在的内存和他的特殊寄存器的功能 这是我们在内存映射中看到了我们的GPIO模块映射到内存的地址,为0x01B0_0000到0x01B0_3FFF的地址。在此我多说一点,一般的CPU分成统一编址和IO编址,统一编址的意思就是把外围的每一个模块当成内存单元,读写操作和读写内存操作一样的指令集,比如我这个DSP就是这样的。这样我就很方便的使用外设,但是他占用了我们的内存地址空间。大家已经看到了GPIO模块占用了我们的内存地址16K。那么IO编址的哈,就是把外设单元和我们的内存单元分开编址。比如我同样的地址只要指令集不一样,那么读写操作的对象就不一样了!就啰嗦这么多吧,看看我们的寄存器的功能吧。首先看看使能寄存器GPEN,这个寄存器的功能是选择GPIO对应的管脚为GPIO功能,细心的读者也许已经注意到了DSP管脚一般有复用的,比如我们要用的GPIO13就和HD13复用了。 ?????? 所以在此我们要用GPIO13那么我就要使能这个管脚,在我框住的红色哪一位置“1”,那么我们怎么写语句呢。一个好友(小双)写成这样*(unsigned int *)0x01B00000 =113;我觉得这个语句是达到目的了,但不大好,因为在对13位置“1”的同时就把其他的清零了,那么我们就影响了别人的功能了。所以我改成*(unsigned int *)0x01B00000 |=113;把以前的读出来了然后通过或操作达到只影响13位置“1”的目的。OK,我们这就把13脚弄成GPIO功能了。那么我们一般的GPIO脚有输入输出的功能。输入就是让DSP采样外部管脚电压值,而输出就是DSP驱动外部电路。当然我们是要用LED的点亮和熄灭,那么我们就要把13脚弄成输出。那么我就要使用?GPIO Direction Register (GPDIR) [Hex Address: 01B0 0004]GPIO方向寄存器。 ???????? 这个寄存器就

文档评论(0)

kabudou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档