ADS8332不能启动转换
我才用了ADS8332,可是测试发现AD转换根本就不能启动,示波器检测不到EOC出现低电平(输入信号不同的通道输出结果都是一样的)。但是读写配置寄存器正确,可以读出配置寄存器的值,跟我写的完全一样!我的配置寄存器(CFR)值为:0111 1111 1101(手动选择通道,手动触发,去掉一切休眠模式和TAG位)。
我用的是:/CS> LOW---> 写通道--->/CS>HIGTH ---> CONVST >LOW > HI ---> 等EOC > LOW >HI ---> /CS> LOW --->读转换结果--->/CS>HIGTH --->下一个通道..... 。可以确定启动信号(convst)也是符合技术手册要求!
忘高手指教啊!
你看一下图45,不知道你的模式是read while converting还是read while sampling,不过两种模式里~CS都要给够时间,会不会是你的~CS给的时间太短了?
我用的是read while sampling,每次转换结束后读取当次转换的结果!我之前也以为是延时的问题,可是调大了之后(都是微秒级别的)还是不行啊!是不是通道没有选择成功的话就不能启动转换呢?虽然前面的配置寄存器有正确的写入,但是我不确定通道选择有没有成功,不过写通道用的函数与写配置寄存器是一样的。
我用的是read while sampling,每次转换结束后读取当次转换的结果!我之前也以为是延时的问题,可是调大了之后(都是微秒级别的)还是不行啊!是不是通道没有选择成功的话就不能启动转换呢?虽然前面的配置寄存器有正确的写入,但是我不确定通道选择有没有成功,不过写通道用的函数与写配置寄存器是一样的。
我用的是read while sampling,每次转换结束后读取当次转换的结果!我之前也以为是延时的问题,可是调大了之后(都是微秒级别的)还是不行啊!是不是通道没有选择成功的话就不能启动转换呢?虽然前面的配置寄存器有正确的写入,但是我不确定通道选择有没有成功,不过写通道用的函数与写配置寄存器是一样的。
供电/Ref电压是正常的,确认一下RESET是否是接的高电平?
VBD=3.3V, VA=4.9V, RESET一直保持为高电平的!而且写配置寄存器和读配置寄存器操作都是正常的,还是不能启动转换啊!
RESET在上电时,给个复位信号给ADC;CONVST要给个High-Low-Hign的低脉冲(最小40ns),不要给Low-High信号出来。请试下。
谢谢各位,我的问题解决了!原来是电路的问题,我的CONVST引脚与ARM控制脚是连在一起的,这点之前在断电情况下都确认了好多遍了。可是不知道为什么启动信号就是过不去?我直接飞了根线就好了。
谁可以帮我解释一下信号过不去的理由啊?我的这条连线在同一层,不过有两个比较小拐角!
会不会是走线太长,以至于线上电阻过大了?做一个很粗略的估计,从ARM到ADC的通信可以看成是一个线电阻R和输入端电容C组成的低通滤波器。如果线电阻太大,RC时间常数就比较大,你发过去一个1-0-1,如果0的时间比较短,实际在接收端看到的是1-x-1,就是说,接收端并没有接收到一个有效的启动信号。你可以试试看把CONVST为0的时间加长一点,看看能不能看到EOC跳变。
嗯,谢谢!我之前也是把那个启动信号时间做了延长处理的,不过还是反应,可能是我延长得还是不够,等后面再试试看,
估计也只能这么解释了。其实想想线也不算长,加起来应该不过30mm长,用的10mil!
可以考虑用示波器把ARM端的~CONVST,~CS和ADC端的~CONVST,~CS一起plot在屏幕上,看看时序有没有因为走线的原因被破坏。