你好。 我在项目 ADC ADS1220中使用的电压。 在程序启动时、我只初始化 ADC 设置1次。 在程序运行时、我切换多路复用器的通道并设置增益。 我注意到、当程序运行时、数据速率被重置。 它设置为默认值。 我无法确定是否所有 ADC 寄存器都已复位、但该参数已完全复位。 这种情况不规律地发生。 该程序可能会正常运行几天、然后可能会发生寄存器复位、但可能会在几个小时后发生复位。 请告诉我、原因可能是什么?
电源设置:
AVDD = 5V
DVDD = 5V
AVSS = GND
REF = 2.5V
ADC 初始化函数:
void init_adc (void) { long in_adc = 0x0000A0E0; //重置设置 SPI_Send_BYTE (0x07); //延迟最小值50us + 32 * tclk del_50 (); Delay10TCYx (4); wrreg (0、4、in_adc); //从配置寄存器0开始,4个字节,值0x0000A0E0 //启动 SPI_Send_BYTE (0x08); }
程序启动时的 ADC 设置:
输入多路复用器配置= AINP 和 AINN 短接至(AVDD + AVSS)/ 2.
增益= 1
正常模式
单次模式
数据速率~ 440SPS (DR 位设置= 101)
Fosc = 3.686400MHz
SCLC = Fosc/16
在程序运行时、我使用以下函数(我选择通道并设置增益):
unsigned char Kuu[8]={0x00、0x02、0x04、0x06、0x08、 0x0A、0x0C、0x0E}; void set_u (void){ wrreg (0、1、(0x70 | Kuu[i])); } void set_uC (void){ wrreg (0、1、(0xE0 | Kuu[i])); } void set_ic (void){ wrreg (0、1 、0x02)、0x02 (void )|(void)(void)、0x02 (i)、0x02 (void)(void)、0x02 (void)、0x02 (void)、0x02 (i)、0x02 (void)