哪位高手用过AD7714模数转换芯片的请进来指教
发布时间:2010-06-13 21:44:47 文章来源:www.iduyao.cn 采编人员:星星草
谁用过AD7714模数转换芯片的请进来指教
各位硬件高手,我是第一次用AD7714芯片,这个程序已经调试很久了,一直没有调试成功。
所以我把源代码复制在这里请各位高手指教,看看哪里不符合AD7714。其中,AD7714转换器的硬件电路设置为,POL=0 BUFFER=0 AIN6=GND=0 REFIN-=0 REFIN+=2.5V AIN6=0,CS=0
模拟量变化在0-2.5V时,输出值都没变化,具体为:
(24位十六进制数值H-L顺序)
模拟量:2.5V 7F FF FF
模拟量:2.5V FF FF FF
模拟量:1V FF FF FF
模拟量:1V FF FF FF
模拟量:0V FF FF FF
一直没有正确的模拟量结果出来。
/*
////////////////////////////////////////////////////////////////////////////////////
*/
void WriteAD7714(unsigned char dat)
{ int i;
unsigned char adregister=0,tem=0;
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_DIN,~AD7714_DIN);
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_SCLK,~AD7714_SCLK);
delay(3);
adregister=dat;
for(i=0;i<8;i++)
{
tem=(adregister>>(7-i))&0x01;
if(tem==0x01)
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_DIN, AD7714_DIN);
else
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_DIN, ~AD7714_DIN);
delay(2);
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_SCLK,AD7714_SCLK);
delay(4);
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_SCLK,~AD7714_SCLK);
delay(3);
}
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_SCLK,~AD7714_SCLK);
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_DIN,AD7714_DIN);
}
/*
////////////////////////////////////////////////////////////////////////////////////
*/
unsigned char ReadAD7714(void)
{
unsigned char adregister=0,temp;
int i;
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_SCLK,~AD7714_SCLK); //设置闲置电平
temp=0;
for(i=0;i<8;i++)
{ temp=temp<<1;
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_SCLK,AD7714_SCLK); //上跳沿
if(GPIOPinRead(GPIO_PORTE_BASE, AD7714_DOUT))
adregister|=1;
else
adregister|=0;
temp=(temp|adregister);
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_SCLK,~AD7714_SCLK); ; //下跳沿
delay(5);
}
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_SCLK,~AD7714_SCLK);
return (temp);
}
/*
/////////////////////// AD7714 SOFT RESET //////////////////////////////////////////
*/
void AD7714Reset(void)
{
int i;
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_DIN, AD7714_DIN); //发送位数据
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_SCLK,~AD7714_SCLK); //设置闲置时钟电平
delay(1); //延迟5个及其周期
delay(25);
for(i=0;i<40;i++){
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_SCLK,AD7714_SCLK); //设置闲置时钟电平
delay(2); //延迟2个及其周期
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_SCLK,~AD7714_SCLK); //下跳沿
delay(2);
}
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_SCLK,~AD7714_SCLK); //设置闲置时钟电平
GPIOPinWrite(GPIO_PORTE_BASE, AD7714_DIN, AD7714_DIN); //发送位数据
}
/*
AD7714芯片硬件配置连接:POL=0 BUFFER=0 AIN6=GND=0 REFIN-=0 REFIN+=2.5V AIN6=0,CS=0
以下将AIN1-AIN6,AIN2-AIN6,AIN3-AIN6,AIN4-AIN6,AIN5-AIN6配置成准差分 增益为1
*/
void AD7714_INIT(void)
{
int i;
static unsigned char REG_set[30]={
0x20,0x41,0x30,0x40,0x10,0x20, //通道1初始化
0x21,0x41,0x31,0x40,0x11,0x20, //通道2初始化
0x22,0x41,0x32,0x40,0x12,0x20, //通道3初始化
0x23,0x41,0x33,0x40,0x13,0x20, //通道4初始化
0x26,0x41,0x36,0x40,0x16,0x20 //通道5初始化
};
for(i=0;i<30;i++)
{
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
DSP运算错误
在CCS3.3环境下对TMS320C6416进行编程和在线调试,莫名其妙地几个三角函数不能正常运算出结果,有的是运算错了,有的直接...
-
谁用过AD7714模数转换芯片的请进来指教
各位硬件高手,我是第一次用AD7714芯片,这个程序已经调试很久了,一直没有调试成功。
所以我把...
-
有没有给个模型文件就能用一定的材料造出来这个东西的工厂?
应该有吧?叫什么?比如用金属或者塑料造出这种东西。
就像给个PCB文件就...
-
我想获得380v三相电机的电流,一般是怎么个思路?
我想获得380v三相电机的电流,一般是怎么个思路?
数据在51单片机里计算,然后输出到液晶...
-
求模拟可视对讲系统整体实现方案
要开发一套模拟可视对讲系统,寻求成熟方案合作,合作方式灵活,可以委外开发、可以出售方案等!
有意向...
-
关于书上的用vhdl做t触发器的例子的问题
代码如下
library ieee;
use ieee.std_logic_1164.all;
entity tff is
port(
t,clk,rese...
-
2440的掉电复位电压和时间是多少
在手册上居然没有找到,在这里咨询一下了,帮帮忙,在线等待···
在手册的哪里,电压和最...
-
求助ARM程序中断后跑飞问题
小弟刚学ARM,自己编了下列程序,用ADS编译下载到裸板后,指示灯轮流闪,程序运行正常,给外部中...
-
FPGA用AS模式下载的问题
请教一下quartus下下载的问题
用jtag模式都正确,下载.jic文件也可以
但是用as模式后就会出现不能识别id...
-
有关系统软硬件划分建模
现在在进行一个研究,想对一个小型的嵌入式操作系统进行软硬件划分,将操作系统中的部分功能用FPGA上的硬件...