F28335DSP硬件设计
- 格式:ppt
- 大小:1.29 MB
- 文档页数:30
MS320F28335及其最小应用系统设计TMS320F28335型数字信号处理器是TI公司的一款TMS320C28X系列浮点DSP控制器。
与以往的定点DSP相比,该器件的精度高,成本低,功耗小,性能高,外设集成度高,数据以及程序存储量大,A/D转换更精确快速等。
它采用内部供电,外部供电,因而功耗大大降低。
且主频高达150 MHz,处理速度快,是那些需要浮点运算便携式产品的理想选择。
2 TMS320F28335简介TMS320F28335采用176引脚LQFP四边形封装。
其主要性能如下:高性能的静态CMOS技术,指令周期为ns,主频达150MHz;高性能的32位CPU,单精度浮点运算单元(FPU),采用哈佛流水线结构,能够快速执行中断响应,并具有统一的内存管理模式,可用C/C++语言实现复杂的数学算法;6通道的DMA控制器;片上256K(64K)*l6的Flash存储器,34K(18K)*l6的SARAM存储器.1K*16 OT PROM和8K(4K)*l6的Boot ROM。
其中Flash,OTPROM,16K*l6的SARAM均受密码保护;带()的为2808控制时钟系统具有片上振荡器,看门狗模块,支持动态PLL调节,内部可编程锁相环,通过软件设置相应寄存器的值改变CPU的输入时钟频率;8个外部中断,相对TMS320F281X系列的DSP,无专门的中断引脚。
GPIO0~ GPIO63连接到该中断。
GPI00-GPI031连接到XINTl,XINT2及XNMI外部中断,G Pl032~GPI063连接到XINT3-XINT7外部中断;支持58个外设中断的外设中断扩展控制器(PIE),管理片上外设和外部引脚引起的中断请求;增强型的外设模块:18个PWM输出,包含6个高分辨率脉宽调制模块(HRP WM)、6个事件捕获输入,2通道的正交调制模块(QEP);3个32位的定时器,定时器0和定时器1用作一般的定时器,定时器0接到P IE模块,定时器1接到中断INTl3;定时器2用于DSP/BIOS的片上实时系统,连接到中断INTl4,如果系统不使用DSP/BIOS,定时器2可用于一般定时器;串行外设为2通道CAN模块、3通道SCI模块、2个McBSP(多通道缓冲串行接口)模块、1个SPI模块、1个I2C主从兼容的串行总线接口模块;12位的A/D转换器具有16个转换通道、2个采样保持器、内外部参考电压,转换速度为80 ns,同时支持多通道转换;88个可编程的复用GPIO引脚;低功耗模式;1.9 V内核,3.3 V I/O供电;符合IEEEll49.1标准的片内扫描仿真接口(JTAG);TMS320F28335的存储器映射需注意以下几点:片上外设寄存器块0~3只能用于数据存储区,用户不能在该存储区内写入程序。
基于TMS320F28335DSP控制PMSM的硬件设计作者:沈丽张苏新来源:《硅谷》2014年第20期摘要永磁同步电机(PMSM)的动态数学模型是一个高阶、非线性、强耦合的变量系统,其控制要求处理器的数字信号处理能力非常高,TI公司2000系列的DSP是专门为电机控制开发的处理器,从最初的LF2407发展到后来F2812,由于其只能控制定点型数据,对于复杂电机数据处理还是有所限制。
本文采用了TI公司最新的TMS320F28335,能够控制浮点型数据,对于PMSM的控制带来极大的方便,本文以F28335控制器为核心,并配以采样电路、驱动电路、保护电路等,设计了一套基于TMS320F28335控制的PMSM硬件系统。
关键词 PMSM;TMS320F28335;电路;硬件系统中图分类号:TM614 文献标识码:A 文章编号:1671-7597(2014)20-0021-0220世纪上半叶,直流电力拖动系统由于其优越的调速性能,占据了电力拖动总容量的80%以上,但其电刷和换向器必须经常维修,限制了其应用。
到20世纪70年代,随着电力电子技术的发展,使得采用电力电子变换器的交流拖动系统得以实现,同时交流电机相比于直流电机,具有结构简单,成本低廉、工作可靠、效率高等优点,使得交流拖动成为主要发展方向。
交流电机有异步电机和同步电机两类。
同步电机由于其转速与电源频率保持严格的同步,对于控制恒速系统较好,而工农业生产中有大量的生产机械要求连续地以大致不变的速度单方向运行,例如风机、泵、压缩机、普通机床等。
由于同步电机功率因数高,在一个车间里,配备几台大容量的水泵、空气压缩机,能够改善功率因数,对节能环保具有十分重要的作用。
因此,控制好同步电机对工农业及节能环保具有重要的意义。
1 PMSM的数学模型在分析永磁同步电机的数学模型时,一般做以下假设。
1)三相电网电压幅值、相位、频率都能满足要求。
2)忽略磁路饱和,同时不考虑涡流和磁阻效应。
基于 TMS320F28335的信号处理电路设计摘要:鉴于TMS320F206即将停产,需要寻求一款DSP对其进行替代,替换DSP后的信号处理电路需完成温度值、一路电气零位、三路加表惯性量、三路陀螺惯性量的采集以及惯性量的补偿计算和数据组帧发送的功能。
该信号处理电路基于浮点DSP TMS320F28335,该DSP的引用简化了惯性测量装置中的误差补偿计算,为单位类似的产品提供了一套可行方案。
TMS320F28335丰富的外设使得信号处理电路具有可再简化的潜力,其在惯性测量装置信号处理电路中的应用具有广阔前景。
通过系统试验,验证了系统软硬件设计的正确性高的应用推广价值。
关键词:DSP;信号处理电路;浮点1、前言现有技术方案主要为TMS320F206+异步串口SC28L202的方案,电路上电后完成外围电路的初始化,TMS320F206通过SC28L202相应的I/O完成AD7716的配置,AD7716初始化完成后每隔一个固定时间自动完成加表数据的采集并输出一个中断信号,所采数据存于FIFO中。
陀螺每隔一个固定时间将一帧数据存于SC28L202的FIFO中,当TMS320F206判到第四个AD7716中断来到后从相应的FIFO中取加表、陀螺数据,TMS320F206完成加表、陀螺数据温度补偿计算后组帧并向相应的接口发送数据。
本文以某信号处理电路设计为背景,为了解决TMS320F206即将停产的问题,电路架构由TMS320F206+异步串口SC28L202的方案升级为TMS320F28335+异步串口TL16C752CIPFB架构。
其中DSP为TI公司的TMS320F28335 [1],异步串口为TI公司的TL16C752CIPFB [2]。
2、某信号处理电路原理TMS320F206+异步串口SC28L202架构设计信号处理电路采用了TMS320F206+异步串口SC28L202架构。
信号处理电路主要由加速度计信号采集电路、陀螺信号采集电路、测温电路、数字信号处理及控制电路、外设输出接口电路组成。
基于TMS320F28335的伺服驱动器的设计【摘要】本文设计了一种基于DSP的交流伺服电机驱动器的组成和总体设计方案。
该驱动器采用TMS320F28335为核心控制电路,设计完成了驱动电路和人机交互界面电路,同时完成了软件程序设计。
【关键词】DSP;伺服驱动器;TMS320F28335引言伺服驱动系统是机电一体化技术的重要组成部分,随着现代工业的快速发展,交流伺服系统逐渐成为工业伺服系统的主流,在数控机床、工业控制等自动化装备中得到广泛的应用。
本文介绍了一种基于TMS320F28335的伺服驱动器设计方案。
TMS320F28335是TI公司设计的一款数字信号处理器,其主要面向工业控制领域,特别适用于电机控制、运动控制等应用。
1.伺服驱动器结构及原理伺服驱动器主要由DSP(TMS320F28335)、主电路、驱动模块、检测模块、通信模块和人机接口模块等部分组成,如图1所示。
图1 伺服驱动器原理框图伺服驱动器通过光电编码器和电流传感器将电机的转速,方向和电流信号送给DSP处理器,将给定的信号与采集的信号进行比较,经过PID控制算法后输出SPWM波形,使电机达到所设定值。
2.硬件系统设计2.1 DSP控制器TMS320F28335芯片主频150MHz,具有32位浮点运算能力,6个DMA通道,支持ADC,McBSP,ePWM,XINTF 和SARAM,片内有256K×16大小的FLASH程序存储器和34K×16大小的SARAM,具有18路的PWM输出,采用1.8V内核电压,3.3V外围接口电压供电。
2.2 主电路及驱动电路2.2.1 电源模块TMS320F28335工作电源为 3.3V和 1.9V/1.8V。
所以采用了TI公司的TPS767D318芯片给DSP供电。
该芯片是TI公司专为DSP供电所设计,输入电压为5V,能同时产生3.3V和1.8V两种电压,而且该芯片自带电源监控和复位功能。
采用DSP TMS320F28335的三相SPWM变频电源的设计变频电源作为电源系统的重要组成部分,其性能的优劣直接关系到整个系统的安全和可靠性指标。
现代变频电源以低功耗、高效率、电路简洁等显著优点而备受青睐。
变频电源的整个电路由交流-直流-交流-滤波等部分构成,输出电压和电流波形均为纯正的正弦波,且频率和幅度在一定范围内可调。
本文实现了基于TMS320F28335的变频电源数字控制系统的设计,通过有效利用TM S320F28335丰富的片上硬件资源,实现了SPWM的不规则采样,并采用PID算法使系统产生高品质的正弦波,具有运算速度快、精度高、灵活性好、系统扩展能力强等优点。
系统总体介绍根据结构不同,变频电源可分为直接变频电源与间接变频电源两大类。
本文所研究的变频电源采用间接变频结构即交-直-交变换过程。
首先通过单相全桥整流电路完成交-直变换,然后在DSP控制下把直流电源转换成三相SPWM波形供给后级滤波电路,形成标准的正弦波。
变频系统控制器采用TI公司推出的业界首款浮点数字信号控制器TMS320F28335,它具有150MHz高速处理能力,具备32位浮点处理单元,单指令周期32位累加运算,可满足应用对于更快代码开发与集成高级控制器的浮点处理器性能的要求。
与上一代领先的数字信号处理器相比,最新的F2833x浮点控制器不仅可将性能平均提升50%,还具有精度更高、简化软件开发、兼容定点C28x TM控制器软件的特点。
系统总体框图如图1所示。
图1 系统总体框图(1)整流滤波模块:对电网输入的交流电进行整流滤波,为变换器提供波纹较小的直流电压。
(2)三相桥式逆变器模块:把直流电压变换成交流电。
其中功率级采用智能型IPM功率模块,具有电路简单、可靠性高等特点。
(3)LC滤波模块:滤除干扰和无用信号,使输出信号为标准正弦波。
(4)控制电路模块:检测输出电压、电流信号后,按照一定的控制算法和控制策略产生SPWM控制信号,去控制IPM开关管的通断从而保持输出电压稳定,同时通过SPI接口完成对输入电压信号、电流信号的程控调理。
作为一个电子硬件工程师,怎么不能懂DSP,或者我们中有一些同学对DSP的理解还不是很多,今天就让我们给大家介绍一个DSP的入门芯片,来自TI的TMS320F28335。
相信看过了这一系列的内容,大家会对DSP有初步的了解。
TMS320F28335简介:TMS320F28335采用176引脚LQFP四边形封装,其功能结构参见参考文献。
其主要性能如下:高性能的静态CMOS技术,指令周期为6.67 ns,主频达150 MHz;高性能的32位CPU,单精度浮点运算单元(FPU),采用哈佛流水线结构,能够快速执行中断响应,并具有统一的内存管理模式,可用C/C++语言实现复杂的数学算法;6通道的DMA控制器;片上256 Kxl6的Flash存储器,34 Kxl6的SARAM存储器.1 Kx16 OTPROM和8 Kxl6的Boot ROM。
其中Flash,OTPROM,16 Kxl6的SARAM均受密码保护;控制时钟系统具有片上振荡器,看门狗模块,支持动态PLL调节,内部可编程锁相环,通过软件设置相应寄存器的值改变CPU的输入时钟频率;8个外部中断,相对TMS320F281X系列的DSP,无专门的中断引脚。
GPI00~GPI063连接到该中断。
GPI00一GPI031连接到XINTl,XINT2及XNMI外部中断,GPl032~GPI063连接到XINT3一XINT7外部中断;支持58个外设中断的外设中断扩展控制器(PIE),管理片上外设和外部引脚引起的中断请求;增强型的外设模块:18个PWM输出,包含6个高分辨率脉宽调制模块(HRPWM)、6个事件捕获输入,2通道的正交调制模块(QEP);3个32位的定时器,定时器0和定时器1用作一般的定时器,定时器0接到PIE模块,定时器1接到中断INTl3;定时器2用于DSP/BIOS的片上实时系统,连接到中断INTl4,如果系统不使用DSP/BIOS,定时器2可用于一般定时器;串行外设为2通道CAN模块、3通道SCI模块、2个McBSP(多通道缓冲串行接口)模块、1个SPI模块、1个I2C主从兼容的串行总线接口模块;12位的A/D转换器具有16个转换通道、2个采样保持器、内外部参考电压,转换速度为80 ns,同时支持多通道转换;88个可编程的复用GPIO引脚;低功耗模式;1.9 V内核,3.3 V I/O供电;符合IEEEll49.1标准的片内扫描仿真接口(JTAG);TMS320F28335的存储器映射需注意以下几点:片上外设寄存器块0~3只能用于数据存储区,用户不能在该存储区内写入程序。
TMSF28335在控制系统中的实际应用1.基本原理图:2.硬件设计:1,在F28335型号的DSP芯片内没有集成D/A转换器,如果需要运用D/A转换的功能,可以通过XINTF接口扩展并行接口的D/A转换芯片,或者通过SPI接口扩展串行接口的D/A 转换芯片,此处采用到的XINTF接口并行扩展的D/A转换芯片。
TMS320F28335的外部接口映射到3块固定的存储空间:Zone 0、Zone 6、Zone 7,当访问外部接口的存储空间时,与该存储空间对应的片选信号XZCS0、XZCS6、XZCS7变为有效的低电平,本题目中采用Zone 7对应的外部接口存储空间,其起始地址为0X200000~0X2FFFFF,对应的外部接口的片选信号为XZCS7,并采用GPIOA1和GPIOA2(I/O功能)为D/A芯片提供功能使能信号。
2,DSP芯片与D/A之间的数据线由GPIO的C口提供(复用C口的GPIO68~GPIO79的数据数据传输功能)。
3,对于输入一阶惯性环节的信号,按阶跃信号进行处理,由自动控制原理可以得,其响应信号为:其中τ为时间常数,当t=3τ时,响应达到稳态值的95%,作为最终的输出响应。
硬件连接图3.软件控制编程:实现功能:AD采样+PI调节+一阶惯性/*****************head file********************/#include "DSP2833x_Device.h"#include "DSP2833x_Examples.h"/****************macro*****************/#define S1 AdcRegs.ADCST.bit.INT_SEQ1/***************global variable************/float this_zl;float upon_zl;int PIn=0; //symbol parameterint SCn=0; // symbol parameterfloat adclo=0; //AD referenced voltagefloat adcres=65536;float Ta; //一阶系统时间常数float temp=0.950213;int sc_D;float mf_scz;float mf_sc; //outputunsigned int * Sda;float power_set;float power_get; // actual output voltagefloat KP_wr; //PI proportion coefficientfloat KI_wr; //PI integral coefficientfloat error_sg; //PI correlative parameterfloat error_1;float error_2;/****************function*******************/interrupt void cpu_timer0_isr(void);interrupt void ad_isr(void);void Init_Timer0(void);void Init_Xintf(void);void Init_Gpio(void); //GPIO initialization program void Initadc(void); //AD initializefloat PI_T(float power_sd,float pow_in); //PI control functionvoid delay_ys(void); //delay subprogram/***************main function**********************/void main(void){unsigned int * Sda =(unsigned int *) 0x200000; //define DA address,XINTF Zone7 InitSysCtrl(); // initialize system subprogramInit_Timer0();DINT;InitPieCtrl();IER=0x0000;IFR=0x0000;InitPieVectTable();Init_Gpio();Initadc();Init_Xintf();CpuTimer0Regs.TCR.bit.TIE=1;EALLOW; // 解除寄存器保护PieVectTable.TINT0=&cpu_timer0_isr; //用CUP_Timer0中断函数入口更新//PIE向量表PieVectTable.ADCINT=&ad_isr; //用AD中断函数更新PIE向量表EDIS; //使能寄存器保护ConfigCpuTimer(&CpuTimer0,150,500); //timing 500usStartCpuTimer0();PieCtrlRegs.PIEIER1.all=0x60; //使能PIE内的CUP_Timer0和AD//中断IER |=0x0001; // 使能CPU INT 1EINT;}*****************CPU timer initialization***********************************void Init_Timer0(void){CpuTimer0Regs.PRD.all=75000; //set timer period timing:500usCpuTimer0Regs.TPR.all=0;CpuTimer0Regs.TPRH.all=0;//CpuTimer0Regs.TCR.bit.TSS=1; //stop timer}********************A/D initialization**********************************void Initadc(void){long i; //AD initializeAdcRegs.ADCTRL1.bit.RESET=1;for(i=0;i<100;i++) {};AdcRegs.ADCTRL1.bit.RESET=0;AdcRegs.ADCTRL1.bit.SUSMOD=0;AdcRegs.ADCTRL1.bit.ACQ_PS=0; //setting sample windowAdcRegs.ADCTRL1.bit.CPS=0;AdcRegs.ADCTRL1.bit.CONT_RUN=0; //启动-停止模式AdcRegs.ADCTRL1.bit.SEQ_CASC=0; //AdcRegs.ADCTRL3.bit.ADCBGRFDN=3; //给ADC模块的内部基准电路上电for(i=0;i<400000;i++) {}; //delay more than 7msAdcRegs.ADCTRL3.bit.ADCPWDN=1; //给ADC模块的其余模拟电路上电for(i=0;i<10000;i++) {}; //delay more than 20usAdcRegs.ADCTRL3.bit.ADCCLKPS=10;AdcRegs.ADCTRL3.bit.SMODE_SEL=0; //choose sample styleAdcRegs.ADCMAXCONV.all=0x0000;AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x0000;AdcRegs.ADCST.bit.INT_SEQ1_CLR=1;AdcRegs.ADCTRL2.bit.RST_SEQ1=1; //复位排序器1AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1; //SEQ1 interruptAdcRegs.ADCTRL2.bit.INT_MOD_SEQ1=0; //choose interrupt style}*********************external peripherals initialization****************************** void Init_Xintf(void){EALLOW;XintfRegs.XINTCNF2.bit.XTIMCLK=1;XintfRegs.XTIMING6.bit.XWRLEAD=3;XintfRegs.XTIMING6.bit.XWRACTIVE=7;XintfRegs.XTIMING6.bit.XWRTRAIL=3;XintfRegs.XTIMING6.bit.XRDLEAD=3;XintfRegs.XTIMING6.bit.XRDACTIVE=7;XintfRegs.XTIMING6.bit.XRDTRAIL=3;XintfRegs.XTIMING6.bit.X2TIMING=0;EREADY=0;XintfRegs.XTIMING6.bit.XSIZE=3;EDIS;}********************************I/O initialization*******************************void Init_Gpio(void){EALLOW; //GPIO initializeGpioCtrlRegs.GPBMUX1.all=0xFFFFFC00; //设置B口为地址线以及DAC片选信号GpioCtrlRegs.GPCMUX1.all=0xFFFFFFFF; //set C Port as date addressGpioCtrlRegs.GPAMUX1.all=0x0000;GpioCtrlRegs.GPADIR.all= 0x0003;GpioDataRegs.GPADA T.all= 0x0003;GpioDataRegs.GPACLEAR.all= 0x0003; //choose GPIO1,2 as DA signal address EDIS;}****************************PI function****************************************** portal parameter:power_sd and pow_inexport parameter:this_zlfloat PI_T(float power_sd,float power_in){error_1 = error_sg;error_sg = power_sd - power_in;error_2 = error_sg - error_1;if(PIn == 0){error_2 = 4.0; //avoid error_2 too largePIn++;}this_zl = KP_wr*error_sg + KI_wr*error_2;error_sg = error_1;return this_zl;}*******************************Delay function*********************************** void delay_ys(void){long i;for(i=0;i<100000;i++) {};}*************************timer 0 interrupt deal function***********************interrupt void cpu_timer0_isr(void){DINT;StopCpuTimer0();CpuTimer0Regs.TCR.bit.TIF=1; //清CPU定时器0的中断标志PieCtrlRegs.PIEACK.all |=0x0001; //使能第一组中断以使AD产生的中断能// 被CPU响应AdcRegs.ADCTRL2.bit.SOC_SEQ1=1; //使能排序器,启动AD转换EINT;while(S1==0) {}; //等待AD转换的完成delay_ys();}************************AD interrupt function*********************************interrupt void ad_isr(void){DINT;AdcRegs.ADCTRL2.bit.RST_SEQ1=1;power_get=((float)AdcRegs.ADCRESULT0)*3.0/adcres + adclo; //对采样数据进行转换if(SCn == 0){mf_scz = 2.5;SCn++;}mf_sc=mf_scz;upon_zl=PI_T( power_get, mf_sc); //调用PI环节的函数mf_sc=1/Ta * upon_zl * temp; //通过一阶惯性环节的处理delay_ys();mf_scz=mf_sc;sc_D=(int)(mf_sc * 4096)/5;* (Sda) = sc_D; //写数据到DA的数据线AdcRegs.ADCST.bit.INT_SEQ1_CLR=1;PieCtrlRegs.PIEACK.all |=0x0001; //使能第一组中断EINT;StartCpuTimer0(); //启动定时器0,开始下一次采样}。
tms320f28335编程实例【原创实用版】目录1.TMS320F28335 简介2.TMS320F28335 编程实例的基本步骤3.TMS320F28335 编程实例的具体实现4.总结正文【1.TMS320F28335 简介】TMS320F28335 是一款 32 位定点数字信号处理器(DSP),广泛应用于各种实时控制系统中,如通信、音频处理、图像处理等领域。
TMS320F28335 具有高速、高效的运算能力,可实现大规模数据的快速处理。
同时,它还具有丰富的外设接口,方便与其他硬件设备相连。
【2.TMS320F28335 编程实例的基本步骤】编写 TMS320F28335 编程实例的基本步骤如下:(1)了解 TMS320F28335 的硬件结构和功能,确定处理器的工作模式。
(2)编写程序,实现所需功能。
编写程序时,需要使用 TMS320F28335 的编程语言,如 C 语言或汇编语言。
(3)将编写好的程序下载到 TMS320F28335 处理器中,进行运行测试。
(4)根据实际运行情况,对程序进行调试和优化,以满足实际应用需求。
【3.TMS320F28335 编程实例的具体实现】以一个简单的音频处理为例,具体实现如下:(1)首先,了解 TMS320F28335 的硬件结构,确定工作模式。
在本例中,我们使用 TMS320F28335 作为音频信号处理器,需要启用相应的外设接口,如串行通信接口、音频输入输出接口等。
(2)编写程序。
本例中,我们需要编写一个音频信号处理算法,如音频放大。
首先,我们需要配置 TMS320F28335 的音频输入输出接口,使其与外部音频设备相连。
然后,编写音频信号放大的算法,实现音频信号的实时处理。
(3)将编写好的程序下载到 TMS320F28335 处理器中,进行运行测试。
在测试过程中,我们需要对音频输入输出接口进行配置,以满足实际应用需求。
同时,通过观察音频信号处理结果,评估算法的性能。