新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 带你了解TI的DSP入门芯片TMS320F28335

带你了解TI的DSP入门芯片TMS320F28335

作者:时间:2012-08-21来源:网络收藏

  if((divsel == 1)||(divsel == 2))

  {

  EALLOW;

  SysCtrlRegs.PLLSTS.bit.DIVSEL = divsel;

  EDIS;

  }

  // If switching to 1/1

  // * First go to 1/2 and let the power settle

  // The time required will depend on the system, this is only an example

  // * Then switch to 1/1

  if(divsel == 3)

  {

  EALLOW;

  SysCtrlRegs.PLLSTS.bit.DIVSEL = 2;

  DELAY_US(50L);

  SysCtrlRegs.PLLSTS.bit.DIVSEL = 3;

  EDIS;

  }

  }

TMS320F28335 的外部中断总结:

  在这里我们要十分清楚的中断系统。C28XX一共有16个中断源,其中有2个不可屏蔽的中断RESET和NMI、定时器1和定时器2分别使用中断13和14。这样还有12个中断都直接连接到外设中断扩展模块PIE上。说的简单一点就是PIE通过12根线与28335核的12个中断线相连。而PIE的另外一侧有12*8根线分别连接到外设,如AD、SPI、EXINT等等。这样PIE共管理12*8=96个外部中断。这12组大中断由28335核的中断寄存器IER来控制,即IER确定每个中断到底属于哪一组大中断(如IER |= M_INT12;说明我们要用第12组的中断,但是第12组里面的什么中断CPU并不知道需要再由PIEIER确定 )。接下来再由PIE模块中的寄存器PIEIER中的低8确定该中断是这一组的第几个中断,这些配置都要告诉CPU(我们不难想象到PIEIER共有12总即从PIEIER1-PIEIER12)。另外,PIE模块还有中断标志寄存器PIEIFR,同样它的低8位是来自外部中断的8个标志位,同样CPU的IFR寄存器是中断组的标志寄存器。由此看来,CPU的所有中断寄存器控制12组的中断,PIE的所有中断寄存器控制每组内8个的中断。除此之外,我们用到哪一个外部中断,相应的还有外部中断的寄存器,需要注意的就是外部中断的标志要自己通过软件来清零。而PIE和CPU的中断标志寄存器由硬件来清零。

  EALLOW; // This is needed to write to EALLOW protected registers

  PieVectTable.XINT2 = ISRExint; //告诉中断入口地址

  EDIS; // This is needed to disable write to EALLOW protected registers

  PieCtrlRegs.PIECTRL.bit.ENPIE = 1; // Enable the PIE block使能PIE

  PieCtrlRegs.PIEIER1.bit.INTx5= 1; //使能第一组中的中断5

  IER |= M_INT1; // Enable CPU 第一组中断

  EINT; // Enable Global interrupt INTM

  ERTM; // Enable Global realtime interrupt DBGM

  也就是说,12组中的每个中断都要完成上面的相同配置,剩下的才是去配置自己的中断。如我们提到的EXINT,即外面来个低电平我们就进入

  中断,完成我们的程序。在这里要介绍一下,的GPIO口都可以配置为外部中断口,其配置方法如下:

  GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 0; //选择他们是GPIO口

  GpioCtrlRegs.GPBMUX2.bit.GPIO55 = 0;

  GpioCtrlRegs.GPBMUX2.bit.GPIO56 = 0;

  GpioCtrlRegs.GPBMUX2.bit.GPIO57 = 0;

  GpioCtrlRegs.GPBDIR.bit.GPIO54 = 0;//选择他们都是输入口

  GpioCtrlRegs.GPBDIR.bit.GPIO55 = 0;

  GpioCtrlRegs.GPBDIR.bit.GPIO56 = 0;

  GpioCtrlRegs.GPBDIR.bit.GPIO57 = 0;

  GpioCtrlRegs.GPBQSEL2.bit.GPIO54= 0;//GPIO时钟和系统时钟一样且支持GPIO

  GpioCtrlRegs.GPBQSEL2.bit.GPIO55= 0;

  GpioCtrlRegs.GPBQSEL2.bit.GPIO56= 0;

  GpioCtrlRegs.GPBQSEL2.bit.GPIO57= 0;

  GpioIntRegs.GPIOXINT3SEL.bit.GPIOSEL = 54;//中断3选择GPIO

  GpioIntRegs.GPIOXINT4SEL.bit.GPIOSEL = 55;

  GpioIntRegs.GPIOXINT5SEL.bit.GPIOSEL = 56;

  GpioIntRegs.GPIOXINT6SEL.bit.GPIOSEL = 57;

  XIntruptRegs.XINT3CR.bit.POLARITY= 0;//触发模式为下降沿触发

  XIntruptRegs.XINT4CR.bit.POLARITY= 0;

  XIntruptRegs.XINT5CR.bit.POLARITY= 0;

  XIntruptRegs.XINT6CR.bit.POLARITY= 0;

  XIntruptRegs.XINT3CR.bit.ENABLE = 1;//使能中断

  XIntruptRegs.XINT4CR.bit.ENABLE = 1;

  XIntruptRegs.XINT5CR.bit.ENABLE = 1;

  XIntruptRegs.XINT6CR.bit.ENABLE = 1;

  注意一点就是外部中断1和2只能对GPIO0—GPIO31配置;外部中断3和4、5、6、7只对GPIO32—GPIO63配置。

基于信号处理板的设计与实现

  硬件系统设计

  1.1 方案概述

  该系统主要功能是DSC通过ADC采样对12路模拟信号进行同时采样。在DSC中进行数据处理后通过异步串行收发器上传到上位机。同时,上位机也可以通过异步收发器向DSC发送预先制定的命令,来控制信号处理板的工作模式和状态。

  按照功能要求,整个硬件电路可分为3部分:电源模块、数字部分和模拟部分。其功能结构框图如图1所示。

  

  1.2 电源模块设计

  整个处理板的外部输入电压为5 V和±12 V,分别通过对应的电压转换为模拟和数字部分提供不同的电压幅值。对于数字部分,电源模块需要为DSC提供1.9 V的核电压,同时为DSC的外围和其他提供3.3 V的外围电压。本系统选用LT1963AES8集成芯片提供1.9 V,LT1963AEST-3.3集成芯片提供3.3 V。对于模拟部分,系统要求输入ADC的信号幅值范围在±12V内,所以系统分别选用LT1086IT-12和LT11 75IT把输入的±15V电压转换成±12V。

  1.3 数字电路设计

  数字部分电路主要是以DSC为中心的应用电路。该部分主要是对ADC传送的数据进行处理、存储,同时完成DSC同上位机的通信和数据传输。由图1可以看到,它包含以下几个部分。外围SRAM扩展,EEPROM扩展电路,SCI上位机通信接口电路。

  1.3.1 外围SRAM扩展

  考虑到片内的RAM资源有限,加上程序空间和数据空间RAM仅为34 kB,16位数据宽度,从而需要对片内的RAM进行扩展,来满足较大量程序的运行。本系统选用Cypress公司的CY7C1011CV33-12ZSXE集成芯片,利用提供的XINTF接口完成片外RAM的扩展。

c++相关文章:c++教程


模数转换器相关文章:模数转换器工作原理


脉宽调制相关文章:脉宽调制原理
锁相环相关文章:锁相环原理


评论


相关推荐

技术专区

关闭