This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430FR6972: 寄存器配置后读取错误

Part Number: MSP430FR6972
Other Parts Discussed in Thread: ADS1220

 

  1. 设计说明
  • 此板卡为温度采集模块,主要完成ADC数据的采集和处理、参数配置、温度数据收发、日志信息的存储。MCU为MSP430FR6972,AD为ADS1220,传感器为PT100;

 

  • MSP430与ADS1220连接关系

SPI4线+DRDY共5线相连接

 

  • SPI配置

SPI设置时钟为2MHzDRDY中断方式,其他为通用配置

 

  1. 时序图

 

程序操作说明:DRDY下降沿触发,进入中断之后,使能片选,发送RDATA命令(0x10),读取数据;

  • 50ms读取ADC数据:

操作步骤,按照图65时序,读取ADC数据:DRDY下降沿触发,进入中断之后,使能片选,发送RDATA命令(0x10),读取数据;

 

  • 5s获取ADC寄存器状态

通过SPI发送ADC读取寄存器命令,读取ADC返回寄存器状态值;

 

 

 

  1. 存在问题
  • 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通讯正常;过几分钟仍然出现通讯异常;