第二章 TMS320F28335 硬件结构

1 TMS320F28335 硬件概述

Tms320f28335主要有8个部分组成,由32位的cpu内核、集成内存、总线、DMA、DMA总线、中断管理、控制率加速器、外设总线、外设等部分。

总线为哈佛结构,cpu可在一个时钟周期完成对数据存储器与程序存储器的访问。

DMA总线,可以使特定模块直接与内存交换数据,不过cpu。

2 cpu架构

2.1 内核

F28335属于C28x+FPU(Floating Point Unit,浮点运算单元)的C28x 系列增强型DSP 控制器(Digital Signal Controllers,DSC),包括一个32位定点cpu一个32位浮点运算单元。

浮点数格式遵循ieee-754标准。(IEEE 754规定了四种表示浮点数值的方式:单精确度(32位)、双精确度(64位)、延伸单精确度(43比特以上,很少使用)与延伸双精确度(79比特以上,通常以80位实现)。只有32位模式有强制要求,其他都是选择性的。)

2.2 乘法器

F28335内嵌一个16×16位和32×32位的乘法器及乘累加核(MAC),可以在一个指令周期完成32×32位乘法进行累加运算。

2.3 移位器

32位桶形移位器。

2.4 总线结构

哈佛架构

1条程序读总线:22根地址线与32根数据线

1条数据读/写:32根地址线与32根数据线

(地址线用来寻址,即在计算机中找一个数据时,先访问其地址。数据线用来传输数据)

图2-1 C28x+FPU 总线结构框图

外设总线:ti为了实现不同外设在dsc系列器建的迁移,2833x/2823x器件采用一个外设互联的外设总线标准。此总线由16条地址线和16/32条数据线组成。

2.5 cpu寄存器

1组标准寄存器组:累加ACC、乘积P、程序寄存器、状态寄存器、乘数寄存器、辅助寄存器XAR0~XAR7、中断控制寄存器

1组FPU寄存器:浮点结构寄存器R0H~R7H、浮点状态寄存器STF、重复块寄存器RB

Cpu状态寄存器有两个:16字长的ST0、ST1(4个位域变量需要用户编程)

中断寄存器:中断使能IER、中断标志IFR、调试中断使能DBGIER

使用c语言编程时,只需要配置ST1中4个位域变量

(1)EALLOW(仿真访问使能,解锁写保护)

复位默认0,即禁止对片上外设模块写保护寄存器进行写入访问,(禁止对f28335的写保护寄存器与仿真空间写访问)

片上外设模块写保护寄存器包括:器件仿真寄存器、FLASH模块相关寄存器、CSM模块相关寄存器、PIE中断向量表、系统控制模块相关寄存器(如PLLSTS等)、ePWM模块相关寄存器(如TZSEL等)、GPIO模块相关寄存器(如GPACTRL、GPIOXINT1SEL等)、XINTF接口相关寄存器、DMA模块相关寄存器、eCAN模块相关寄存器。

在F28335的头文件模板DSP2833x_Device.h中,定义了两条EALLOW被置1和清0的宏定义C语句如下。

#define EALLOW asm (“EALLOW”); //EALLOW被置1

#define EDIS asm (“EDIS”); //EALLOW被清0。其中,

EALLOW位被置1的2833x汇编指令语法格式为:

EALLOW;

EALLOW位被清0的2833x 汇编指令语法格式为:

EDIS;

要注意的是,在中断时EALLOW会被置0。

(2)VMAP(中断映射向量位)

复位默认1,表示把中断向量表映射到f28335片上程序储存空间,范围0x3FFFC0~0x3FFFFF,Ox3FFFC0为复位向量。

可用汇编指令:“CLRC VMAP”将VAMP清0,这时,CPU中断向量表映射到F28335片上程序存储器空间的低端地址,地址范围为0x000000~0x00003F,即CPU的复位向量位于0x000000。VMAP清0是为了兼容c281x的需要而设置的。

(3)INTM(中断全局屏蔽位)

复位默认1,表示禁止F28335所有可屏蔽中断请求信号送到CPU内核.

#define EINT asm (“clrc INTM”); //INTM被清0,中断总开关闭合

#define DINT asm (“setc INTM”); //INTM被置1,中断总开关断开

(4)DBGM(调试使能屏蔽位)

 复位默认1,表示禁止仿真器(Emulator)实时访问存储器和寄存器内容,CCS调试器(Debugger)不能更新观察窗口信息。即DBGM=1,CPU忽略断电。

#define ERTM asm (“CLRC DBGM”);

#define DRTM asm (“SETC DBGM”);

2.6 中断控制寄存器

16个可屏蔽中断,0为禁止。

IER、DBGIER、INTM三者之间的关系是:CPU可屏蔽中断信号的使能在IER、DBGIER、INTM中选择两个使能位置1即可。

3储存器

图3-1F28335 存储器映射图

如图,为f28335的储存器映射图。10个片上SRAM(M1,M0,L0~L7),从XINTF外部接口扩展外部储存器空间。

M0的片上储存块地址范围是0x000040~0x003FF(1K×16位),M1块的地址范围是0x000400~0x0007FF(1K×16位)可为通用ROM,上电复位后M0被编译器作为储存数据,堆栈指针从M1开始。

L0~L3储存块为4K×16位,且受安全密码保护,均可配置为程序储存器。

L4~L7储存块为4K×16位,为SARAM块,也可以作为DAM储存块。

F28335片上有256K×16位的FLASH,分为8个扇区。

图3-2F28335 FLASH映射图

F28335片上包含1K×16位的一次编程ROM,地址范围为0x380400~0x3807FF。

安全代码模块(CodeSecurityModule,CSM)位于DSP的片上FLASH的最后8个单元地址0x33FFF8-0x3FFFF(8×16位)。用户填写128位密码之后,DSP片上的受安全代码保护的区域(简称安全存储器)就无法通过DSP的JTAG接口进行读取查看,也不能拷贝未授权的DSP片上FLASH、L0~L3、OTP等受代码模块保护的代码或数据,

4 片上外设帧

F28335的片上外设寄存器均为片上存储器映射寄存器,定位于片上数据存储器空间0x000800~0x007FFF,共分为四个区域,分别称为外设帧0,外设帧1,外设帧2,外设帧3。外设帧0支持16位宽度和32位宽度数据总线访问,直接映射到CPU总线。

5 外部接口

F28335的外部接口(XINTF)是一个外储存器和I/O设备统一编址总线扩展接口,除具备外设扩展接口所需的20位地址总线信号(AB)、32位数据总线(DB)信号和控制总线(CB)信号外,还具有寻址区域0/6/7可编程时序寄存器(XTIMINGx,x=0,6,7)、总线时序配置信号,片选信号、DMA控制信号。

上电复位时,XINTF引脚映射为GPIO引脚,需要扩展外存储器或I/O外设时,通过初始化GPIOMUX寄存器,将相关GPIO引脚配置为XINTF相关引脚。

时序:第一时段:lead 访问区域的片选信号被拉低,地址被发送到总线上。

第二时段:active 完成读写访问,拉低相关电平。

第三时段:trail 片选信号为低,读写电平拉高。

6 控制模块

F28335 的控制模块用于控制DSP的低功耗模式和监视CPU运行状态。包括:振荡器电路(SOC)、锁相环电路(PLL)、低功耗控制电路、看门狗电路、系统配置寄存器、外设模块时钟控制器。

系统控制模块的主要特性包括以下内容。

1.时钟电路的振荡器频率(SOCCLK)配置模式

(1)内部振荡器模式。通过X1和X2引脚外接30MHz无源晶振。

(2)外部3.3V振荡器配置模式。通过XCLKIN引脚外接3.3V振荡器频率。X2引脚应留悬空、X1引脚应连接到低电平。

(3)外部1.9V振荡器配置模式。通过X1引脚外接1.9V振荡器频率。X2引脚应留悬空、XCLKIN引脚应连接到低电平。

2.锁相环电路配置模式

(1)PLL关闭模式(PLL模块断电,在进入该模式前,应将PLLCR写入零值。)

(2)PLL旁路模式(上电复位默认状态)

(3)PLL使能模式(向PLLCR写非零值后,自动进入该模式。)

3.时钟信号检测电路

用来检测振荡器频率是否丢失。若丢失,时钟信号检测电路将产生一个内部系统复位信号,对CPU和片上外设复位。

4.低功耗模式

(1)空闲模式(时钟电路和系统时钟频率正常工作,唤醒方式主要是被使能的任何有效中断请求。系统复位信号。看门狗中断信号。)

(2)备用模式(时钟电路正常工作,系统时钟频率关闭,唤醒方式主要是指定GPIOA端口符合低电平宽度的唤醒设备。系统复位信号。看门狗中断信号。)

(3)暂停模式(时钟电路和系统时钟频率均关闭,唤醒方式主要是指定GPIOA端口符合低电平宽度的唤醒设备。系统复位信号。)

7 GPIO

通用目的I/O模块(GPIO模块)内部配有复杂逻辑多路开关控制电路和复用寄存器,将数字I/O(GPIO)引脚、片上所有外设输入输出引脚、外部接口(XINTF)地址总线、数据总线、控制总线引脚在器件封装引脚上实现复用。

共88个GPIO,通过寄存器GPIOxMUX(x=A,B,C)进行设置。

GPIO分为3组,A端口对应引脚GPIO0~GPIO31(32位),B端口对应引脚GPIO32~GPIO63(32位),C端口对应引脚GPIO64~GPIO74(24位)。

当被配置为数字输入引脚时,具有输入滤波功能,通过GPIOSEL资格寄存器设定采样窗口宽度,对输入电平的干扰脉冲进行滤波。

外部中断输入引脚XINT1~XINT7、不可屏蔽中断输入引脚XNMI是可编程的GPIO复用引脚。

8定时器

F28335内嵌3个结构完全相同的32位CPU定时器:CPUTimer0/1/2,其中用户可用CPUTimer0/1,CPUTimer2留给DSP/BIOS用,若用户应用系统不用DSP/BIOS,CPUTimer2可用供用户使用。

(1)32位减1计数寄存器和32位周期寄存器(存放定时计数常数,每当32位减1计数寄存器下溢时,用定时计数常数重载32位减1计数寄存器)

(2)16位分频减1计数寄存器和16位分频寄存器(存放分频计数常数,每当16位分频减1计数寄存器下溢时,用分频计数常数重载16位分频减1计数寄存器)。

(3)CPUTimer0中断请求通过PIE组1(连接到INT1)扩展。CPUTimer1不通过PIE扩展,与XINT13(外部中断输入线)复用连接到INT13。CPUTimer2不通过PIE扩展,直接连接到INT14。

9 SCI

F28335片上集成3个独立SCI模块:SCIA/B/C。

(1)传输字符格式可编程设置1位起始位。可编程字符长度1~8位,通常设置8位。可选的1位奇偶校验位或无奇偶校验位。可编程停止位1~2位,通常设置1位。

(2)4 种出错检测标志位:奇偶校验错、溢出错、帧格式错、间断检测错。

(3)13个SCI模块相关控制寄存器(都是16位字长寄存器的低8位有效,读高8位全零,写高8位无效),位于首地址7050H的外设帧2。

(4)2种唤醒多处理器通信模式:空闲线模式和地址位模式。

(5)半双工或全双工通信模式。

(6)双缓冲接收和发送功能。

(7)发送器和接收器可以通过中断驱动或利用状态标志位查询算法完成一帧数据的收发。

(8)发送和接收有单独的中断使能位,间断中断除外(BRKDT)。

(9)异步数据传输格式为不归零码(NRZ)。

10 数据采集与控制

ADC模块:F28335片上集成一个单极性、分辨率12位、带有流水线的A/D转换器。模拟输入电压量程:0~3V。ADC模块大工作频率12.5MHz,即采样速率大6.25MSPS(每秒可采6.25M个采样值),即转换时间为160ns,属于高速ADC。

DSP学习笔记(三)——TMS320F28335硬件结构相关推荐

  1. [DSP学习笔记]基于TMS320F28335的FIR滤波实现

    首先进入TI官网,搜索C2000 wave,进行下载安装. 安装完成后,在2000 wave的安装目录下,进入以下目录:C2000Ware_4_02_00_00\libraries\dsp\FPU\c ...

  2. [DSP学习笔记]基于TMS320F28335的FFT及加窗函数实现

    一.新建工程 首先我们先将C2000 wave中我们所需要的函数库给导入到我们的新建工程中(可见于我实现FIR滤波文章中导入函数库的操作). 工程中可见有以下文件.(仅FFT可删除滤波有关文件) 接着 ...

  3. TDDFT计算软件Octopus学习笔记(三):能带结构(ZnO)

    本文以氧化锌ZnO为例,计算其能带结构.能带结构的计算需要两个步骤,第一步,进行基态(gs)计算,第二步,进行非占据态(unocc)计算. 基态计算的inp文件如下: CalculationMode ...

  4. Mongodb使用学习笔记(三)

    文章目录 Mongodb使用学习笔记(三) 1. MongoDB 更新文档 1.1 update() 1.2 save() Mongodb使用学习笔记(三) 1. MongoDB 更新文档 参考:Mo ...

  5. DSP学习笔记之EPWM

    DSP学习笔记之EWPM学习 \qquad 学习PWM模块的知识,最少需要掌握频率可调.占空比可调.互补死区可调.多个PWM相位差可调等.内容较多,主要是参照英文手册中几个模块的介绍,内容很多,最基本 ...

  6. SurfaceFlinger学习笔记(三)之SurfaceFlinger进程

    概述 本系列是基于android Q 即android10 SurfaceFlinger学习笔记(一)应用启动流程 SurfaceFlinger学习笔记(二)之Surface SurfaceFling ...

  7. 深度学习的三种硬件方案:ASIC,FPGA,GPU;你更看好?

    原文链接:http://www.sohu.com/a/123574005_465947 深度学习的三种硬件方案:ASIC,FPGA,GPU:你更看好? 2017-01-06 10:59 硬件十万个为什 ...

  8. 《Go语言圣经》学习笔记 第二章 程序结构

    Go语言圣经学习笔记 第二章 程序结构 目录 命名 声明 变量 赋值 类型 包和文件 作用域 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记,几乎是书上的内 ...

  9. Mr.J-- jQuery学习笔记(三十二)--jQuery属性操作源码封装

    扫码看专栏 jQuery的优点 jquery是JavaScript库,能够极大地简化JavaScript编程,能够更方便的处理DOM操作和进行Ajax交互 1.轻量级 JQuery非常轻巧 2.强大的 ...

  10. ROS学习笔记三:创建ROS软件包

    ,# ROS学习笔记三:创建ROS软件包 catkin软件包的组成 一个软件包必须满足如下条件才能被称之为catkin软件包: 这个软件包必须包含一个catkin编译文件package.xml(man ...

最新文章

  1. bitset类型, 标准库类型
  2. 软件架构设计学习总结(1):标准Web系统的架构分层
  3. zynq7000 clk 设备树时钟对照表
  4. python心得1000字-经典教材《统计学习导论》现在有了Python版
  5. Leetcode 451. 根据字符出现频率排序 解题思路及C++实现
  6. 欧冠淘汰赛第二回合!我厂生死战!!
  7. POJ3020深度解析(二分图--最小路径覆盖)
  8. 工作182:表格渲染
  9. mysql中的模糊查询(非原创)
  10. 剑指offer01--二叉树的最近公共祖先
  11. java编程基础码_【Java编程的逻辑】编程基础
  12. ubuntu10下Eclipse中无法输入中文
  13. 用邮件备份手机数据是必然趋势
  14. android 多媒体相册,朵朵多媒体相册免费版
  15. linux下TF卡测试寿命的测试程序编写
  16. 阿里面试题 ——输入一个字符串,输出所有的排列
  17. J9数字科普:Web3.0世界中的J9NFT:仍在发展但未来可期
  18. 小型水库雨水情测报设施建设-水库大坝水文监测
  19. 十年一梦,小米的原罪得到救赎了吗?
  20. 什么是Teardrop攻击?我们要如何防御Teardrop攻击?

热门文章

  1. idea安装插件及java开发插件推荐
  2. python计算bmi指数_python 练习题:计算的BMI指数,并根据BMI指数条件选择
  3. devc写Java_与dev c++类似的程序编写软件(适合初学者使用,支持c,c++,java,php,pascal等).pdf...
  4. Python基础代码大全,都在这里了,初学者必看
  5. 软件测试--用例编写
  6. [PHP] 解决:hex2bin(): Hexadecimal input string must have an even length
  7. 编解码格式 -- AAC
  8. Linux下安装软件命令详解
  9. 远程控制软件也要有plan B备选方案
  10. java实现SPFA算法