微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > ADS1291 讀取Status 24bits錯誤

ADS1291 讀取Status 24bits錯誤

时间:10-02 整理:3721RD 点击:

大家好

目前我使用MSP430F5522 控制 ADS1291

ADS1291 使用外部 Clock =2.048 MHZ

SPI Clock =4MHZ

目前已經可以寫入/讀取 ADS1291 ID 暫存器(0X52) 以及其他寫入的暫存器

CONFIG1 0x03

CONFIG2 0xA0

Lead-Off Control Register 0X10

CH1     0x10

CH2     0x81

LOFF_STAT 0X40

RESP1 0x02

 

 

 

 

但是在讀取Status 輸出結果的時候 卻是錯誤的

應該為 0XC0

            0X00

            0X00

 

 

不知道各位知不知道為甚麼這種情形會發生呢?

 

目前轉換出來的資料波形很雜亂  波形在我上一篇問題裡有PO出來

 

請各位厲害的專家 幫幫我

以下是我MSP430F5522接收ADS1291 資料 部分的韌體

 

   P2OUT |= START;                       //START=1 開始做ADC轉換     

while (!(UCB0IFG&UCTXIFG));           // RDATAC   

UCB0TXBUF = 0x10;     

while(1)                       //進入NOSTOP迴圈後 便一值讀出ADC資料  

{    

while((P2IN & DRDY_0));       //P2.1 DRDY_0 是否為LOW ?   如果為LOW 則跳出迴圈(ADC資料準備好了)      

for (i = 0; i < 3; i++)      // Read Status register  會先傳狀態暫存器  總共三筆 3*8=24BITS    

 {     

 while (!(UCB0IFG&UCTXIFG));                       

 UCB0TXBUF = 0x00;       

 if(UCB0STAT & UCOE)     

 {      

 while (!(UCB0IFG&UCRXIFG));      

STAT0[0] = UCB0RXBUF;     

}       

 while (!(UCB0IFG&UCRXIFG));     

STAT0[i] = UCB0RXBUF;                //i=0,1,2 三筆狀態資料    

 }      

 for (i = 0; i < 6; i++)       // Read Channel data  再傳CH值 ADS1291 2CH *24BITS=48BITS 一次傳8BITS    

{     

while (!(UCB0IFG&UCTXIFG));                

UCB0TXBUF = 0x00;       

while (!(UCB0IFG&UCRXIFG));         //ADS:MSB  UART:LSB SPI:MSB     

RESU0[i] = UCB0RXBUF;    

 }

 

請各位幫我看看是哪部分出了問題

感激大家

另外

我發現

STAT[2] = 0XAE

RES[0] = 0X2C

RES[1] = 0XC0

RES[2] = 0X01

RES[3] = 0XAE

RES[4] = 0X2C

RES[5] = 0Xc0

其中我已經Power Down CH2 

但是還是有讀到值

而且還和之前的data 有重複

不知道這是什麼問題呢?

感激

上一篇:AMC1200
下一篇:dac5682z芯片配置及DA输出

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top