完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
数据采集系统采用AD7606,主控制器用的是德州仪器的F2812,CONVESTA和CONVESTB连在一起,设计的是一上电就硬件复位,没采用过采样,转换开始后,延迟10us,开始读取数据,代码是仿照官网上提供的示例代码,通过I/O口来模仿时序读取数据。模拟输入不接时,8个通道有时读到的数据是0xFFFF,有时读到的数据是0x0000,模拟输入的第一个通道接5V电压时,8个通道读到的数据都还是0xFFFF或0x0000,不知道什么原因。用示波器测BUSY信号,能观测到周期性方波信号,说明AD7606已经启动转换,就是读取的数据不对。这个数据采集系统是扩展板,通过扁平电缆和主板连接,扁平电缆有20cm长。
代码如下: #include "DSP281x_Device.h" #include "DSP281x_Examples.h" int16 i; int16 k; int16 TempA; int16 AD7606Data1[8]; void main() { InitSysCtrl(); //初始化系统函数 DINT; IER = 0x0000; //禁止CPU中断 IFR = 0x0000; //清除CPU中断标志 InitPieCtrl(); //初始化PIE控制寄存器 InitPieVectTable(); //初始化PIE中断向量表 EINT; InitGpio(); //初始化GPIO口 while(1) { GpioDataRegs.GPFCLEAR.bit.GPIOF12 = 1; DELAY_US(1); GpioDataRegs.GPFSET.bit.GPIOF12 = 1;//启动转换 DELAY_US(10); GpioDataRegs.GPFCLEAR.bit.GPIOF10 = 1; GpioDataRegs.GPFCLEAR.bit.GPIOF11 = 1;//CS片选 DELAY_US(1); for(i=0;i<8;i++) { TempA=0; for(k=0;k<16;k++) { GpioDataRegs.GPFCLEAR.bit.GPIOF8 = 1; TempA=(TempA<<1)+GpioDataRegs.GPFDAT.bit.GPIOF13 ; GpioDataRegs.GPFSET.bit.GPIOF8 = 1; } AD7606Data1=TempA; } GpioDataRegs.GPFSET.bit.GPIOF10 = 1; GpioDataRegs.GPFSET.bit.GPIOF11 = 1;//CS取消片选 } } 电路图如下: 复位电路 希望专业人士来解答,困扰好久了 |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-20 05:51 , Processed in 0.567888 second(s), Total 71, Slave 54 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号