多电压兼容ADC高低电平的标准
我有个ADC7691多电压兼容的,那么它的数字信号到底多少,高电平多少付,低电平应该是0V?VDD REF 都给的5V,VIO SDI 给的3.3V ,GND接地,IN+,IN- 差分信号输入,然后SCK,CNV时序都对了(CS无繁忙模式,芯片IO输出3.3V的),SDO没有数据一直是0。
我在想SCK,CNV是不是该给5V数字电平。 好吧MCU是STM32, 还有SDO到MCU的线我已经割断,那么就没有引脚配置的问题了。
看了一下你的规格书,注意一下几个点,特别要注意一下SCK的时间要求。 数字逻辑电平是3.3V的,时序延时我都是us级别的,应该没问题,现在是我估计ADC根本没工作,要是有错误的数据就好了 /*--------------------------------------------------------
*@函数名ADC7691_GET_DATA *
*@函数功能 CS模式(三线式且无繁忙指示) *
* 18位串行ADC *
--------------------------------------------------------*/
uint32_t ADC7691_GET_DATA()
{
uint8_t b=1;
uint32_t data=0;
uint8_t i=0;
ADC7691_CNV = 0;//启动转换 ,SDO自动高阻态
// ADC7691_SCK = 0;
Delay_us(1);//1us
ADC7691_CNV = 1;
Delay_us(10);//转换时间0.5-3.7 us,这里设置为10us
ADC7691_CNV = 0;//采集阶段
Delay_us(1);
for(i=0;i<18;i++)
{
ADC7691_SCK = 1;//高低电平最少持续12ns, 1/72M == 13.8ns,在执行 ADC7691_SCK = 0; 之肯定能保持高 12ns
Delay_us(1);
ADC7691_SCK = 0;
Delay_us(1);
b = GPIO_ReadInputDataBit(GPIOF,GPIO_Pin_14);//ADC7691_SDO;//下降沿读取数据
Delay_us(1);
data = data + b;
data = data << 1;
}
data = data & 0x3ffff;
// ADC7691_CNV = 1;
return data;
} 数字部分的Vio,不但改变输入电平的标准,也会改变输出电平的标准,必须两方面都兼顾。
如果给5v,ADC的输出高、低电平可以被CPU正确识别,这没有问题;
但问题是,ADC能接受的高、低电平标准也提高了,但CPU不能提供!
玄德 发表于 2014-12-17 21:11 static/image/common/back.gif
数字部分的Vio,不但改变输入电平的标准,也会改变输出电平的标准,必须两方面都兼顾。
如果给5v,ADC的输 ...
为什么 Vil 有最大值指标,还有最小值指标?
为什么Vih 也这样?
为什么 Vol、Voh都是这样?
把这几个问题想明白了,自己就会了。
玄德 发表于 2014-12-17 21:20 static/image/common/back.gif
为什么 Vil 有最大值指标,还有最小值指标?
为什么Vih 也这样?
为什么 Vol、Voh都是这样?
模拟差分输入也在正常范围数字输入都在正常范围内,我怀疑是片子坏了,数字输出什么么也没有,到地点位一直为0,且和地市断开的。
我在想就算我,时序乱写,总得会出来东西,数据对不对无所谓,只要有出来的我就可以慢慢调整。
片子110快的淘宝货,ADI出口价格14.7美元。
只能帮你到这里了。
很多人讲述的情况都没有问题,但后来发现,实际情况和他讲述的并不一样。
这指标,要 110 ? 用过24位、30K,只有40元。
结果是 几块AD都是坏的,猜想:采购收了回扣,坑了我一地
页:
[1]