TMS320f28335控制AD7656的硬件电路设计.doc
-
资源ID:3274276
资源大小:24.50KB
全文页数:5页
- 资源格式: DOC
下载积分:2元
快捷下载
会员登录下载
微信登录下载
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
TMS320f28335控制AD7656的硬件电路设计.doc
TMS320f28335控制AD7656的硬件电路设计TMS320F28335简介TMS320F28335是一款TI高性能TMS320C28x系列32位浮点DSP处理器。TMS320F28335型数字信号处理器TI公司的一款TMS320C28X系列浮点DSP控制器。与以往的定点DSP相比,该器件的精度高,成本低,功耗小,性能高,外设集成度高,数据以及程序存储量大,A/D转换更精确快速等。TMS320F28335具有150MHz的高速处理能力,具备32位浮点处理单元,6个DMA通道支持ADC、McBSP和EMIF,有多达18路的PWM输出,其中有6路为TI特有的更高精度的PWM输出(HRPWM),12位16通道ADC。得益于其浮点运算单元,用户可快速编写控制算法而无需在处理小数操作上耗费过多的时间和精力,与前代DSP相比,平均性能提高50%,并与定点C28x控制器软件兼容,从而简化软件开发,缩短开发周期,降低开发成本。TMS320F28335核心板电气特性TMS320F28335(SOM-TL28335核心板)工作环境环境参数最小值典型值最大值工业级温度:0C-85C工作电压:4.8V5V5.5VSOM-TL28335(TMS320F28335)核心板功耗供电电压:5V输入电流:292mA额定功率:1.46WTL28335-EVM开发板功耗供电电压:5V最大输入电流:400mA最大功率:2WTMS320F28335主要特点基于TMS320F28335浮点DSP控制器;TI主推高性能TMS320C28x系列DSP控制器,主频高达150MHz;具备I2C、SPI、eCAN、ePWM等总线接口,适用于各种控制类工业设备;体积小、性能强、便携性高,同时适用于多种手持设备;符合高低温、振动要求,满足工业环境应用。TMS320f28335控制AD7656的硬件电路设计AD7656片内集成6个16位250kpbsADC,6个真双极性高阻抗模拟输入,允许并行或串行输出,加速度仪采用+-15V供电,输出电流信号-20ma到20ma,调理电路采用AD627做调理电路,原理图已经设计出来如下:p2为外接加速度传感器,2脚为电流输出,ad627是一种低功耗的仪表放大器。它采用单、双两种电源供电,并可实现轨轨输出。AD627采用真正的仪用放大器结构,它有两个反馈环。其基本结构和典型的双运放仪用放大器类似,只是细节有所不同。另外,) 所具有的一个电流反馈结构,使得它具有较好的共模抑制比。图中20ma电流经过100欧姆采样电阻后变为2V;AD627不接R35则增益为5,故AD627输出为+-10V的电压,然后送入AD。AD7656的接线如下图所示:上图中三路电流信号分别经过AD7656调理之后,变为电压信号送入DSP。在电路布线时应该采用模拟地数字地分开布线,然后经过磁珠单点连接,把整个电路板分为模拟部分和数字部分,否则很难达到采样精度要求。下面附上AD7656的28335驱动程序void RESET_AD(void)EALLOW;GpioCtrlRegs.GPAPUD.bit.GPIO4 = 1; / disable pullup on GPI4GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 0; / GPI4 = GPI4GpioCtrlRegs.GPADIR.bit.GPIO4 = 1; / GPI4 = outputGpioDataRegs.GPASET.bit.GPIO4 = 1;EDIS;delay_us(100);EALLOW;GpioCtrlRegs.GPAPUD.bit.GPIO4 = 1; / disable pullup on GPI4GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 0; / GPI4 = GPI4GpioCtrlRegs.GPADIR.bit.GPIO4 = 1; / GPI4 = outputGpioDataRegs.GPACLEAR.bit.GPIO4 = 1;EDIS;void Start_Convert()EALLOW;GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1; / disable pullup on GPI0GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0; / GPI0 = GPI0GpioCtrlRegs.GPADIR.bit.GPIO0 = 1; / GPI0 = outputGpioDataRegs.GPACLEAR.bit.GPIO0 = 1;EDIS;EALLOW;GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1; / disable pullup on GPI0GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0; / GPI0 = GPI0GpioCtrlRegs.GPADIR.bit.GPIO0 = 1; / GPI0 = outputGpioDataRegs.GPASET.bit.GPIO0 = 1;EDIS;void Wait_AD()EALLOW;GpioCtrlRegs.GPAPUD.bit.GPIO2 = 0; / disable pullup on GPI2GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 0; / GPI2 = GPI2GpioCtrlRegs.GPADIR.bit.GPIO2 = 0; / GPI2 = inputEDIS;while(GpioDataRegs.GPADAT.bit.GPIO2 = 1);void start_AD(void )Start_Convert();Wait_AD();Uint16 AD_read(void )Uint16 temp=0;temp= AD7656_ADD;return temp;void Get_Ad_Dat(void )/采集所有ad数据int16 i=0,temp1;int32 temp3=0,0,0;for(i=0;iFILTERLEN;i+)start_AD();temp1=AD7656_ADD;temp0+=temp1;temp1=AD7656_ADD;temp1+=temp1;temp1=AD7656_ADD;temp2+=temp1;temp1=AD7656_ADD;temp1=AD7656_ADD;temp1=AD7656_ADD;AccDat.AD_x_curCounter=temp0/FILTERLEN;AccDat.AD_y_curCounter=temp1/FILTERLEN;AccDat.AD_z_curCounter=temp2/FILTERLEN;以下是当输入个通道接地时的输出波形 程序中FILTERLEN=8;可以看到经过简单的数字处理AD7656可以达到1位的跳变精度, 上图中个通道的数据结果有些不一样, 差距比较大, 暂时还没有找到原因。