主题中讨论的其他器件: ADS131A02
我正在实现一个到 ADS131A04的接口。 我按照 ads131a02 adc.pdf、page79中的启动顺序进行操作。 我的复位引脚连接高电平、因此它在上电时变为高电平。 我将发送软复位命令作为第一条命令、然后读取状态、直到我获得0x04的状态。 这起作用了。
当我初次成功时、我通过配置芯片进行了后续操作、发送:
ADC_TxBuff[0]= 0x6b03; // WREGS:011A AAAA nnnn nnnn = Starting reg = 0x0B、4+1寄存器写入
ADC_TxBuff[1]= 0xe83e; //寄存器0x0B & 0x0c
ADC_TxBuff[2]= 0x02a0; //寄存器0x0d & 0x0E
ADC_TxBuff[3]= 0x0f00; //寄存器0x0F & 0x10
ADC_TxBuff[4]= 0x0000;
ADC_TxBuff[5]= calc_CRC (ADC_TxBuff、10); //大小=以字节为单位的大小
在下电上电后配置是否持久?
然后、我使用命令0x4f0f 启用 ADC、使用命令0x0033唤醒器件、使用命令0x0555锁定寄存器、然后使用 STATUS 命令每23ms 读取一次 ADC。
一切看起来都很棒
但是、现在当我启动设备时、我从未收到0x04状态回复。 相反、对 RESET 命令(0x0011)的状态响应 I 得到0x2210。 对于后续命令、然后发送空命令(0x0000)、我获取状态响应0x2250。 我发送另一个空命令(0x0000)我获得状态响应0x2210。 随后的状态命令返回0x2210。
该规范指出、null 命令0x0000应在以下命令中返回 STAT_1寄存器。 STAT_1是一个8位寄存器。 STAT_1是高8位吗? 低8位中有什么?
我使用的是16位字、没有汉明。
在我看来、器件刚刚启动并开始读取。 当我请求状态(0x0000)时、不仅我获得状态响应、而且我获得四个非常高的值。 我还没有将实际的传感器连接到 ADC 芯片、因此我可以相信、非常高的数字可能是 ADC 读数。
提前感谢您的帮助。
Ken