第二章TMS320F2812的C语言编程
- 格式:ppt
- 大小:341.50 KB
- 文档页数:10


TMS320F2812中文手册第1章芯片结构及性能概述TMS320C2000系列是美国TI公司推出的最佳测控应用的定点DSP芯片,其主流产品分为四个系列:C20x、C24x、C27x和C28x。
C20x可用于通信设备、数字相机、嵌入式家电设备等;C24x主要用于数字马达控制、电机控制、工业自动化、电力转换系统等。
近年来,TI公司又推出了具有更高性能的改进型C27x和C28x系列芯片,进一步增强了芯片的接口能力和嵌入功能,从而拓宽了数字信号处理器的应用领域。
TMS320C28x系列是TI公司最新推出的DSP芯片,是目前国际市场上最先进、功能最强大的32位定点DSP芯片。
它既具有数字信号处理能力,又具有强大的事件管理能力和嵌入式控制功能,特别适用于有大批量数据处理的测控场合,如工业自动化控制、电力电子技术应用、智能化仪器仪表及电机、马达伺服控制系统等。
本章将介绍TMS320C28x系列芯片的结构、性能及特点,并给出该系列芯片的引脚分布及引脚功能。
1.1 TMS320C28x 系列芯片的结构及性能C28x系列的主要片种为TMS320F2810和TMS320F2812。
两种芯片的差别是:F2812内含128K×16位的片内Flash存储器,有外部存储器接口,而F2810仅有64K×16位的片内Flash存储器,且无外部存储器接口。
其硬件特征如表1-1所示。
表1-1 硬件特征特征 F2810 F2812 指令周期(150MHz) 6.67ns 6.67ns SRAM(16位/字)18K 18K 3.3V片内Flash(16位/字) 64K 128K 片内Flash/SRAM的密钥有有有有 Boot ROM掩膜ROM 有有外部存储器接口无有事件管理器A和B(EVA和EVB)EVA、EVB EVA、EVB*通用定时器 4 4*比较寄存器/脉宽调制 16 16*捕获/正交解码脉冲电路 6/2 6/2 看门狗定时器有有 12位的ADC 有有*通道数 16 16TMS320C28x系列DSP的CPU与外设(上) ?2?续表特征 F2810 F2812 32位的CPU定时器 3 3 串行外围接口有有串行通信接口(SCI)A和B SCIA、SCIB SCIA、SCIB 控制器局域网络有有多通道缓冲串行接口有有数字输入/输出引脚(共享)有有外部中断源 3 3 核心电压1.8V 核心电压1.8V 供电电压 I/O电压3.3V I/O电压3.3V 封装128针PBK 179针GHH,176针PGF 温度选择‡ A:-40? ~ +85? PGF和GHH PBK S:-40? ~ +125? 仅适用于TMS 仅适用于TMS 产品状况‡‡产品预览(PP) AI AI 高级信息(AI)(TMP)‡‡‡ (TMP)‡‡‡ 产品数据(PD)注:‡ “S”是温度选择(-40? ~ +125?)的特征化数据,仅对TMS是适用的。
盟垫丝盘查塑基于T M S320F2812定点库函数设计张萍(中国空空导弹研究院控制所,河南洛阳471000)摘要:目前一些新型号的研制都采用高端计算机,如T M S320F2812计算机。
现行研制的某型号空空导弹陀螺采集周期短,且自动驾驶仪等算法逐渐采用新的设计方法如插值运算,使得计算量变大,占用了大量的时间,造成机时紧张。
为了提前做好第二方案准备,为将来优化机时打下基础,提出了编制基于TM S320F2812的定点库函数。
库函数的编制有两种设计方法:C语言和汇编语言。
C语言可读性强,但效率较低。
鉴于提高机时的目的,采用计算效率比较高的汇编语言来进行编程。
该定点库函数是由F2812汇编语言按照一定的算法编制而成,包括单字定点数学函数,双字定点数学函数以及单双字向量计算函数。
并通过单元测试和集成测试,对此定点库函数的性能和可靠性进行了验证。
关键词:TM S320F2812:寄存器:定点库函数1T M$320F2812硬件结构T M S320F2812的中央处理器(C PU)的功能是控制程序流程和指令处理。
它实现算术、逻辑、乘法和移位运算。
在进行有符号的数学运算时,C PU按2的补码处理。
1.1C P U结构T M S320F2812具有一个中央处理器(C Pu),仿真逻辑以及与内存和外设交互的信号。
这些信号中包括三条地址总线和三条数据总线。
C PU主要包括:程序和数据控制逻辑、实时仿真和显示、地址寄存器算法单元(A R A U)、算术逻辑单元(A Lu)、预取队列和指令解码、程序和数据的地址生成器、定点M PY/A LU和中断处理。
1.2C PU寄存器’1.2.1累加器(A C C,A H,A L)累加器(A C C)是T M S320F2812提供的一个主要寄存器。
除了直接在内存或者寄存器中进行的操作,其他所有A L U操作的结果都送到A C C中。
A C C支持单循环的转移、加法、减法和比较操作,它还可以来存贮乘法运算的32位结果。
include "DSP281x_Device.h" // DSP281x Headerfile Include File# include "DSP281x_Examples.h" // DSP281x Examples Include Filevoid init_eva(void);void main(void){InitSysCtrl();// InitGpio(); 配置IO口功能为PWM模式EALLOW;GpioMuxRegs.GPAMUX.all = 0x00FF; // EVA PWM 1-6 pinsEDIS;DINT; //关CPU总中断InitPieCtrl(); //初始化PIE控制寄存器IER = 0x0000;IFR = 0x0000;InitPieVectTable(); //初始化PIE中断向量表init_eva(); //初始化EV-AEvaRegs.T1CON.bit.TENABLE=1; //手工启动定时器EINT; // 使能INTM(全局中断)ERTM; // Enable Global realtime interrupt DBGMfor(;;);}//EV-A初始化void init_eva(void){EvaRegs.T1PR = 37500; //周期值--连续增减时,PWM频率=TCLK/(2*T1PR)---频率设为1K, PWM=75M/(2*37500)EvaRegs.T1CMPR = 0x3C00; // Compare Reg--比较值EvaRegs.T1CNT = 0x0000; //计数器初值//连续增/减模式,x/1分频,内部时钟,使能比较,使用自己的周期,禁止定时器启动(等初始化全部完成后手工启动)EvaRegs.T1CON.all = 0x0802;EvaRegs.GPTCONA.bit.TCMPOE = 1; //通过逻辑产生T1 PWMEvaRegs.GPTCONA.bit.T1PIN = 1; //GP定时器1比较时低有效//使能比较产生1--6 PWM波1个比较单元控制2路互补的PWM输出,控制PWM占空比//连续增减--低有效时:PWM占空比=CMPR1/T1PR,高有效时:PWM占空比=(T1PR-CMPR1)/T1PR EvaRegs.CMPR1 = 15000; //第一路PWM占空比设为0.4,0.4=15000/37500EvaRegs.CMPR2 = 0x3C00;EvaRegs.CMPR3 = 0xFC00;// output pin 1 CMPR1 - 高有效,output pin 2 CMPR1 - 低有效// output pin 3 CMPR2 - 高有效,output pin 4 CMPR2 - 低有效// output pin 5 CMPR3 - 高有效,output pin 6 CMPR3 - 低有效EvaRegs.ACTRA.all = 0x0666; //比较方式控制寄存器,控制PWM引脚的高/低有效EvaRegs.DBTCONA.all = 0x0000; //静止死区CONA.all = 0xA600; //比较控制寄存器--禁止空间矢量PWM模式}总结:PWM波形产生流程1):将I/O口设置为PWM引脚模式2):设置装载TxCON,决定计数方式,启动比较操作3):设置装载TxPR,决定PWM波形周期4):初始化EvaRegs.CMPR1--3的值,每个比较单元控制2路互补的PWM输出,控制PWM占空比5):EvaRegs.ACTRA比较方式控制寄存器,控制PWM引脚的高/低有效6):EvaRegs.DBTCONA死区时间的设置7):CONA设置比较控制寄存器附:EvaRegs.DBTCONA.bit.DBT=5; //死区定时器周期为5EvaRegs.DBTCONA.bit.EDBT1=1; //死区定时器1使能EvaRegs.DBTCONA.bit.DBTPS=3; //死区定时器预定标因子,死区时钟为HSPCLK/8示例程序2:一个产生PWM波的样例程序,用于TMS320F2812(2006-07-24 21:59:09)转载这两个星期一直在做PWM波的程序,发现网上这方面的比较少,若有又没有中文注释。
截止频率为2KHz的低通滤波器设计实现滤波器是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的直流电。
对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器,其功能就是得到一个特定频率或消除一个特定频率。
滤波器主要参数如下:中心频率(Center Frequency):滤波器通带的中心频率f0,一般取f0=(f1+f2)/2,f1、f2为带通或带阻滤波器左、右相对下降1dB或3dB边频点。
窄带滤波器常以插损最小点为中心频率计算通带带宽。
截止频率(Cutoff Frequency):指低通滤波器的通带右边频点及高通滤波器的通带左边频点。
通常以1dB或3dB相对损耗点来标准定义。
相对损耗的参考基准为:低通以DC处插损为基准,高通则以未出现寄生阻带的足够高通带频率处插损为基准。
通带带宽(BWxdB):(下图)指需要通过的频谱宽度,BWxdB=(f2-f1)。
f1、f2为以中心频率f0处插入损耗为基准,下降X(dB)处对应的左、右边频点。
通常用X=3、1、0.5 即BW3dB、BW1dB、BW0.5dB 表征滤波器通带带宽参数。
分数带宽(fractional bandwidth)=BW3dB/f0×100[%],也常用来表征滤波器通带带宽。
数字滤波器按频率特性划分为低通、高通、带通、带阻、全通等类型,根据其单位冲激响应函数的时域特性可分为无限冲激响应( IIR) 滤波器和有限冲激响应滤( FIR) 波器。
有限长单位冲击响应( FIR) 数字滤波器可以做成具有严格的线性相位,同时又具有任意的幅度特性。
此外,FIR 滤波器的单位抽样响应是有限长的,因而滤波器一定是稳定的,只要经过一定的延时,任何非因果有限长序列都能变成因果有限长序列,因而总是能用因果系统实现。
MATLAB 在数字信号处理方面的应用功能。
目前FIR滤波器的实现方法大致可分为三种:利用单片通用数字滤波器集成电路、DSP器件或者可编程逻辑器件实现。