大家好
目前我使用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;
}
請各位幫我看看是哪部分出了問題
感激大家
wang po shen:
另外
我發現
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 有重複
不知道這是什麼問題呢?
感激