Post Go back to editing

ad7124数据读取问题,寄存器能读能写,但是数据读不出来。

设置的单通道,能读ID,能写入寄存器也能读出寄存器的值。当就是无法读取数据。发送ox42过去,没有数据返回来的,只能接收到3个0x00.

我端口是悬空的,sync也是处于高电平状态。

请问这是什么原因导致的?

  • 今天通过错误寄存器检查了下内部情况:返回的数值:0x02A280  对应一下的值:

    ADC_CONV_ERR :此位表示转换结果是否有效。如果转换过程中发生错误,此标志位置1。

    AINM_OV_ERR :AINM上的过压检测。如果AINx输入电压比AVDD高40mV,则会提示过压保护

    AINM_OV_ERR :AINM上的过压检测。

    DLDO_PSM_ERR (0) :数字LDO错误。如果数字LDO检测到错误,此标志位置1。

    ALDO_PSM_ERR:模拟LDO错误。如果模拟LDO电压检测到错误,此标志位置1。

    然后我测了一下端口的电压:

    AVDD:3.36V

    ASS:0V

    IOVDD:3.33V  

    REGCAPD:1.66V

    REGCAPA :1.91V

    我想问问 数字LDO的值应该是1.8V, 我现在测的只有1.66V,是不是该芯片的数值LDO坏了,芯片坏掉了。

    但是模拟LDO电压值是对的,为啥也错误提醒了。

  • 没明白你意思?你ldo测得1.66,是万用表测到的?还是ADC测到的?你能读数据了?

    如果你是万用表测的1.66,报错很正常,1.66一个是接近1.6V和1.55报错值的值了了,还有你1.66V得供电,得走供电电流,如果你的pcb供电回路阻抗设计的不好,阻抗偏大,那么电流流过电阻不就电压下降了,那么等adc拿到dldo供电时实际比1.66低也不是没可能。还有这颗料的读写,只要你能复现这里的时序要求,就能读出来,大部分人读不出,或者读的值是错的,就是因为程序逻辑不符合该要求,建议用个逻辑分析仪搭配了一起,按照这波形调就好了。