通过TMS320F28335学习DSP的开发流程——28335的基础知识(1) .pdfVIP

通过TMS320F28335学习DSP的开发流程——28335的基础知识(1) .pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通过TMS320F28335学习DSP的开发流程——28335的基础知识(1) 1、TMS320F28335内核的主要特点 ①F28335 DSP集成了DSP和微控制器的长处,如DSP的主要特征、单周期乘法运算,F28335能够在⼀个周期内完成32x32位的乘法累 加运算,或者两个16x16位乘法累加运算,⽽同样32位的普通单⽚机则需要4个周期以上才能完成 ②快速的中断响应 ③可在任何内存位置进⾏单周期读、修改、写操作 ④可采⽤C/C++编程软件,效率⾮常⾼ 2、处理器的主要资源 ①32位浮点DSP,主频是150MHz,⽅便电机控制、电⼒设备控制及⼯业控制等。 ②⽚上存储器:FLASH–256Kx16位;SRAM–34Kx16位;BOOT ROM–8Kx16位;OPT ROM–2Kx16位。其中FLASH、OPT ROM受⼝令保护,可以保护⽤户程序。 ③⽚上外设:PWM–18路 ;HRPWM–6路 ;CAP–6路 ;QEP–2通道 ;ADC–2*8通道 ,12位,80ns转换时间,0-3V输⼊量程; SCI–3通道 ;MCBPS–2通道 ;CAN–2通道 ;SPI–1通道 ;I2C–1通道 ;外部存储器扩展接 ⼝–XINTF;通⽤输⼊/输出IO–88个; 看门狗电路。 3、与DSP2812的性能对⽐ 3、存储器与寄存器 (1)存储器映射 存储器本⾝不具有地址信息,它的地址是由芯⽚⼚商或⽤户分配,给存储器分配地址的过程称为存储器映射,如果再分配⼀个地址就叫重映 射。 (2)F28335存储器特点 F28335是采⽤多级流⽔线的增强的哈佛总线结构,能够并⾏访问程序和数据存储空间。在F28335芯⽚内部集成了⼤量的不同的存储介 质,F28335⽚上有256K×16位的FLASH,34K×16位的SARAM,8K×16位的BOOT ROM,2K×16位的OPT ROM,采⽤统⼀寻 址⽅式(程序、数据和I/O统⼀寻址),从⽽提⾼了存储空间的利⽤率,⽅便程序的开发。除此之外,F28335还提供了外部并⾏扩展接⼝ XINTF,可进⼀步外扩存储空间。 (1)⽚上SARAM (2)BOOT ROM (3)⽚上FLASH和OTP (3)寄存器映射 通过#pragma预处理命令和DATA_SECTION将定义的寄存器指定到相应的存储单元内,然后即可通过C语⾔来操作这些寄存器。 ⽐⽅说我们找到0x007010这个单元地址,那么可以通过查阅芯⽚数据⼿册了解到此单元是系统控制寄存器功能(⾄于此地址如何查找这 个功能我们后⾯会具体介绍)。因此为了更好区分此单元的功能和⽅便后续的程序开发,可以给这个单元取⼀个别名SysCtrlRegs,那么这 个SysCtrlRegs就是寄存器,并且这个寄存器地址就是0x007010。这个过程就是寄存器映射。 (4)如何访问F28335寄存器内容 根据#pragma和DATA_SECTION(这些是CCS软件内特定的)的特点,可以使⽤#pragma和DATA_SECTION将定义的寄存器与实际的 存储单元对应起来,然后再使⽤C语⾔操作定义的寄存器,⽐如使⽤结构体等。假如我们要让F28335的GPIOC的第68管脚输出低电平, 我们怎么使⽤ C 语⾔来处理? (1)⾸先要知道GPIO外设每类寄存器所对应存储单元的⾸地址是哪个,⽐如GPIO控制寄存器,通过查询数据⼿册可知其⾸地址是 0x006F80,然后使⽤#pragma和DATA_SECTION将定义的寄存器与实际的存储单元对应起来。 #pragma DATA_SECTION(GpioCtrlRegs,GpioCtrlRegsFile); 该定义可在DSP2833x_GlobalVariableDefs.c⽂件中查找到 volatile struct GPIO_CTRL_REGS GpioCtrlRegs; GPIO数据寄存器GPIO_DATA_REGS : struct GPIO_DATA_REGS { union GPADAT_REG GPADAT; // GPIO Data Register (GPIO0 to 31) union GPADAT_REG GPASET; // GPIO Data Set Register (GPIO0 to 31) union GPADAT_REG GPACLEAR; // GPIO Data Clear Register (GPIO0 to 31) union GPADAT_REG

文档评论(0)

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

从事一线教育多年 具有丰富的教学经验

1亿VIP精品文档

相关文档