ADS1216无电流输出
ADS1216的电路要求两路IDAC同时输出电流,与单片机进行SPI通讯,用示波器可以测量到单片机的数据输出,但是发出读1216的寄存器命令后并没有收到1216的回信,且无电流输出,片选CS直接接到了地上,参考电压可以测量出2.5v(怀疑是默认值,ADS1216根本没和单片机通信上),不知道是怎么回事,AVDD和DVDD使用的是同一电源,这样有影响吗?还是有别的问题?
Hi Na,
可能是时序的问题,能否提供一下SPI的波形。
另外,ADC部分能正常工作吗?
单片机与1216的SPI通讯完全联系不上,我测的波形都是从单片机这端的引脚测量的,1216完全没有回复单片机,所以ADC是否正常工作我也无从得知,SPI的通讯波形能够清楚的看到我发的数,比如说是发的10010010,那么时钟是8个时钟(时钟平时是低电平,有数据时能看到8个高电平),数据部分则是10010010这个顺序,不知道这个通讯的频率有要求吗?可是SPI不应该是主机的时钟控制从机的时钟吗?只要时钟线相连就能同步的吗?很费解,就是得不到1216的回应,1216对时序有什么特殊的要求吗?
问题解决了吗?
通讯问题解决了,是我写的通讯程序不够优化,现在可以与ADS1216之间进行正常的SPI通讯,也有电流输出了,但是DRDY始终为高,读不到AD转换的结果,我的程序里给ADS1216配置的寄存器:地址从00-04的值依次为1E 01 28 FF FF,此外地址为09的寄存器配置成了40,测量通道0和通道1之间的电压为0.018v,测量Vref+为2.5v,Vref-直接接地上了,可是DRDY总是高的,没有转换结果,难道AD转换还要使能吗?
将ADS1216的DSYNC管脚置高,有了读数,但是与实测值相差有点远实测AIN0和AIN1之间的电压为0.0406V,读出来的数为02a768,0x02a768=173928,173928/16777215*2.5=0.025917v,差的有点远不知道是哪里错了,增益我设置的是1,参考电压为2.5v,请教指点,还有就是DSYNC的使用方法,不是低电平有效吗,为什么只有置高了才能有ADC的转换数据呢?
能不能又哪位老师回复我一下?我又试了在参考电压管脚加了一个钽电容,参考电压稳定在2.5062v,结果还是没有改善,用万用表测的被测电压是0.0418v,可是ADS1216得到的数总是02A1FF到026D28之间,增益设置的为1,单极性的,计算结果时是不是应该为026D28/FFFFFF×2.5062v=0.02375V,这个差的也多了点吧?
你好:
我想问一下有关ADS1216的问题,
ADS1216的问题:ADS1216外围硬件根据经典的电路设计,选择AIN0和AIN1作为模拟差分信号的输入。通电让测试板工作,差分信号为稳定的模拟电压信号,模拟差分信号与ADS1216断开的时候,差分信号时很稳定的,
但是当模拟差分信号接入ADS1216的AIN0和AIN1两端的时候,AIN0和AIN1两端的电压持续增加,而且AD转换的数据也是持续增加的。例如:测试板上电工作,则AD转换数据就会从01 11 23 开始逐渐增加,
工作一会后,数据可能增加到01 12 ff,这时如果对测试板进行重新烧录程序或者重新上电,则数据会可能就会从01 12 f0开始增加;如果让测试板断电停止工作5分钟后重新上电,则AD转换的值又开始从
01 11 23开始增加了。