AD7124芯片的调试闭坑总结 AD7124的评估板资料 https://www.analog.com/media/en/technical-documentation/user-guides/EVAL-AD7124-8SDZ_UG-856.pdf
1,SPI通讯速率尽量不要大于5M,但是实测,短线情况下9M通讯正常。 2,SYNC引脚一定要拉高,拉低的话不转换。(之前我的电路,本引脚直接悬空,我本来调通了,然后运行了几天,居然停止转换了,实际读寄存器,都是正常的,检查电路也没有损坏,多放查找,这个引脚需要拉高才行,在官方的评估板资料里,也是这样接的,MGR坏得很,说明书里面并没说,如下图)。
3,有好多网友用官方驱动发现无法通过ADC_CONTROL寄存器控制内部基准,设置完以后,读取其他寄存器数据正常,唯独该寄存器读取为0.解决方法:寄存器写入的时候前后加10ms左右即可,太快会导致control寄存器写入失败。具体原因没有深究。所以对芯片初始化完成后务必要重新读取寄存器看是否写入成功。 4,注意选择参考电压,如果选择外部参考电压,首先保证外部连接了外部基准;如果选择内部基准,要保证ADC_CONTROL寄存器里把内部基准电压打开。否则的话转换会失败,结果出错。为了测试方便刚开始可以选择AVDD为基准。 5,REFOUT引脚,需要对地接一个0.1uF电容,否则会出问题。(这个我也是在网上看的,出什么问题,我也忘了,但是我记得,确实必须接0.1uF电容。在官方的评估板里,也是这样接的,MGR坏得很,说明书里面并没说,如下图) 6,在初始化写入AD7124寄存器前,最好一定读一次状态寄存器,否则可能写入寄存器失败。我在使用中,AD7124-8就不用读状态寄存器,每次AD重新上电,或者只是MCU重启,都能写入寄存器数据;但是同样的程序,只是芯片换成AD7124-4,就不许,后发现只要读一次状态寄存器,就正常了。实际就是读状态寄存器,清除上电复位标志。 7,AI引脚可以配置为读取内部20mv信号,我配置成读内部20mv信号,基准也采用内部基准2.5V(可以配置内部基准从REFOUT输出,我测量过,确实比较准),计算得出应该是18.9mv,也有网友说是就18mv,看来这一点和官方数据有点出入,不过也不算什么了。 8,精度问题,按官方文档,最高也就能到22位精度。我用本芯片做RTD测量电路,感觉也就能达到18位精度而已,这一点和官方文档说法其实还是比较吻合的了。我也没有对芯片做过多测试,我感觉最多也就能达20-21位精度,都还要比较理想的情况。 9,AD工作模式及校准: 连续转换模式(默认):就是一直转换 单次转换模式:当ADC_CONTROL寄存器配置为单次模式,就对当前通道进行一次转换,然后转入待机模式。我拿来做了低功耗,需要测量时,就配置成单次转换模式,然后就不用管AD芯片了,它转换完会自动进入待机模式。 待机模式:寄存器内容会保持,具体看说明书吧,我只说一点,待机模式时,激励电流源会自动关断(不会修改IO_CONTROL_1寄存器内容,不要理解错了)。 关断模式:全部功能关闭,寄存器会复位,退出关断模式时,所有寄存器必须重新编程。 空闲模式:在内部零电平(失调)校准、系统零电平(失调)校准完成后,会自动进入空闲模式,(除失调寄存器外)寄存器内容不会改变。 内部满量程(增益)校、零电平(失调)校准:这两种模式,一般都是要同时执行的,一般不会单独只执行一个。所谓内部校准,就是在芯片内部,将 AI 输入端正负,分别与基准REF正负端短接,然后得出内部的偏移值、或定值。 执行 内部满量程(增益)校、零电平(失调)校准的过程:如果是单通道模式,先把其他寄存器配置好(如果不是单通道模式,那就一个一个通道的关闭吧),设置为 中功率 --> 空闲模式 --> 对应通道失调寄存器 写入0x800000(或上电复位值本身就是) --> 设置为 内部满量程(增益)校准模式 --> 校准完成自动进入空闲模式 --> 设置为 内部零电平(失调)校准 --> 校准完成自动进入空闲模式; 应当在校准完成后,读取 失调寄存器、增益寄存器的值,保存起来,然后以后上电、重启后,应在设置为 空闲模式/待机模式 时,才准写入这二个寄存器的值。 系统校准,也就是外部校准,需要在外部手动短接零电平 或 满量程电平,不过不需要设置 空闲模式、中功率那些,按理说,外部校准应该比内部校准准确度更好。 满量程校准,会重新设置 增益寄存器的值,零电平校准,会设置 失调寄存器的值。
|