我参考电压和供电电压都是3.3V,AIN+接2V,AIN-接地,CS线和SLK接STM32端口,电路图和datasheet给的是一样的,对照时序图写的程序,但是我SDO端输出的全部是高电平。不知道是时序还是有问题还是芯片有问题呢
UINT16 AD_Read_Data(void){
int i;
UINT16 data = 0x0000;
SCLK_High;
CS_High;
SCLK_Low;
SCLK_High;
CS_Low;
delay_5us(2);//延迟10us
for(i=0;i<12;i++)
{ SCLK_Low;
data <<= 1;
data = data|SDO; SCLK_High;
}
for(i=0;i<5;i++){
SCLK_Low;
SCLK_High;
}
delay_5us(2);//延迟10us
CS_High;
data&=0x0fff;
return data;
}
Johnsin Tao:
1.判定程序对不对最简单的方法是用示波器测试CS, SCLK,FS,SDO的波形,然后与datasheet提供的波形做比较,符合时序要求即可。(建议您用波形对照,因为TI在ADC控制上,是没有程序参考的)
2. 关于芯片方面,市面上的ADC芯片假货并不多,如果不放心,可以在TI网站上申请:
申请网站: www.ti.com.cn/…/buy.tsp
申请方法:www.ti.com.cn/…/gencontent.tsp
bo shi:
回复 Johnsin Tao:
我用示波器比对过了,时序图和datasheet的差不多,但是还是出不来波形,您有没有碰到这样的情况呢,我最近又申请了两片,换个新的试试再说吧,谢了先~~