Other Parts Discussed in Thread: ADS1220
- 设计说明
- 此板卡为温度采集模块,主要完成ADC数据的采集和处理、参数配置、温度数据收发、日志信息的存储。MCU为MSP430FR6972,AD为ADS1220,传感器为PT100;
- MSP430与ADS1220连接关系
SPI4线+DRDY共5线相连接
- SPI配置
SPI设置时钟为2MHz,DRDY中断方式,其他为通用配置
- 时序图
程序操作说明:DRDY下降沿触发,进入中断之后,使能片选,发送RDATA命令(0x10),读取数据;
- 每50ms读取ADC数据:
操作步骤,按照图65时序,读取ADC数据:DRDY下降沿触发,进入中断之后,使能片选,发送RDATA命令(0x10),读取数据;
- 每5s获取ADC寄存器状态
通过SPI发送ADC读取寄存器命令,读取ADC返回寄存器状态值;
- 存在问题
- 每5s获取ADC寄存器状态,通过SPI发送ADC读取寄存器命令,读取ADC返回寄存器状态值不是预设值;
- 出错率,正常情况一天1-2次;使用风扇吹板卡,2-5分钟出现1次;
- 当读取AD寄存器与预设不对时,使用示波器测试MSP430,SPI输出的时钟、数据波形正常,读取的数据不正确
- 复位SPI,再次读取AD寄存器值,寄存器值正确,复位操作如下:
UCA1CTLW0 |= UCSWRST; /*Hold peripheral in reset*/
UCA1CTLW0 &= ~UCSWRST; /*Release peripheral for use*/
出现问题后,重新执行上边2条语句后,SPI通讯正常;过几分钟仍然出现通讯异常;