經由過程SPI給ads1294發送數據的時辰,聊包養網站比較ads1294的DOUT引腳一向為低,不前往數據怎么處理?

題目:法式如下,題目是主機msp430f149履行SendCode函數,經由過程SPI給ads1294發送數據的時辰,ads1294的DOUT引腳一向為低,不前往數據,且DRDY一向為高
圖1為上電時DO們會不高興的。岳,不可能反對他,畢竟正如他們教的女兒所說,男人的野心是四面八方的。UT輸入,這個測試形式,在開端就輸入50Hz的方波,請問為什么,方波不是應當在輸出端么?
圖2為履行SendCode(0x06)//發送復位操縱碼 ,SCLK和DIN引腳的電平變換,感到沒題目
圖3為RREG指令部門,發送沒題目,可包養網比較是ads1294DOUT仍然沒變換
圖4為法式卡在while((P1IN ADS1294_DRDY)!=0);之前的DOUT情形
#include
/******************************************************************************/
/* ADS1294PWDN(35引腳)與P1.2銜接 */
/* ADS1294START(38引腳)與P1.1銜接 */
/* ADS1294DRDY(47引腳)和p1.0銜接 */
/* ADS1294CS(39引腳)和p3.0銜接 */
/* ADS1294DOUT(43引腳)和p3.2銜接 */
/* ADS1294DIN(34引腳)和p3.1銜接 */
/* ADS1294SCLK(40引腳)和p3.3銜接 */
/******************************************************************************/
#define CPU_F ((double)8000000)
#define delay_us(x) __delay_cycles((long包養sd)(CPU_F*(double)x/1000000.0))
#def包養條件ine delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
#define baud 9600 //設置波特率的鉅細
#define baud_setting (uint)((ulong)CPU_F/((ulong)baud)) //波特率盤算公式
#define baud_h (uchar)(baud_setting 8) //提取高位
#define ba包養女人ud_l (uchar)(baud_setting) //低位
#define uchar unsi包養網評價gned char
#define uint unsigned int
#define ulong unsigned long
#define ADS1294_CS BIT0 // P3.0
#define ADS1294_DIN BIT1 // P3.1
#define ADS1294_DOUT BIT2 // P3.2
#define ADS1294_SCLK BIT3 // P3.3
#define ADS1294_DRDY BIT0 // P1.0
#define ADS1294_START BIT1 // p1.1
#define ADS1294_PWDN BIT2 // p1.2
#define ADS1294_CMD_WREG 0x40
unsigned char inicializacion1[3]={0x86,0x20,0xC0};//0x30測試形式,0x20慣例形式
unsigned c包養一個月價錢har inicializacion2[4]={0x60,0x60,0x60,0x60};
unsigned char inicializacion3[2]={0x03,0xD4};
//*************************************************************************
// 初始化端口
//*************************************************************************
void PortInit(void)
{
P3SEL |= BIT1+BIT2+BIT3+BIT6+BIT7; //spi效能形式同時設置P3.6 p3.7為UASRT發送和接受
P3OUT |= BIT0;//ads1包養情婦294不選通
P3DIR |= BIT0;
P3DIR |= BIT1;
P3DIR |= BIT3;
P3DIR |= BIT6; // msp430為主機形式,SOMI引腳(p3.2)標的目的設置為輸出,設置P3.6口標的目的為UART輸入
P3DIR = ~(BIT2);
//設置包養網推薦DRDY管腳
P1SEL = ~(BIT0+BIT1+BIT2);//IO效能形式
P1DIR = ~ADS1294_DRDY;
P1DIR |= (ADS1294_START+ADS1294_PWDN); //設置START和PWDN經由過程P1.1和P1.2把持
P1OUT =~(ADS1294_START+ADS1294_PWDN);//封閉STRAT,設置芯片失落電
}
//*************************************************************************
// 初始化時鐘
//*****************包養故事********************************************************
void Init_CLK(void)
{
uchar i;
BCSCTL1 =~XT2OFF; //翻開XT振蕩器
BCSCTL2 = 0X00; //將存放器的內在的事務清零
BCSCTL2|=SELM1+SELS; //MCLK為8MHZ,SMCLK為8MHZ
do{
IFG1 =~OFIFG; //肅清震蕩標志
for(i=0;i i++)
_NOP()包養網ppt; //延時等候
}
while((IFG1 OFIFG)!=0); //假如標志為1,則持續輪迴等候
IFG1 =~OFIFG;
}
//*************************************************************************
// 初始化UART,用于發送到藍牙裝備
//*************************************************************************
void UART_Init()
{
U1CTL|=SWRST; //復位SWRST
U1CTL|=CHAR; //8位數據形式
U1TCTL|=SSEL1; //SMCLK為串口時鐘
U1BR1=baud_h; //BRCLK=8MHZ,Baud=BRCLK/N
U1BR0=baud_l; //N=UBR+(UxMCTL)/8
U1MCTL=0x00; //微調存放器為0,波特率9600bps
ME2|=UTXE1; //UART1發送使能包養價格ptt
ME2|=URXE1; //UART1接受使能
U1CTL =~SWRST;
IE2|=URXIE1; //接受中止使能位
}
//*************************************************************************
// 初始化SPI
//*************************************************************************
void Init_SPI()
{
U0CTL |= SWRST;
U0CTL |= CHAR + SYNC + MM; // 8-bit, SPI, Master
U0TCTL =~ (SSEL0+SSEL1+CKPL); //肅清之前的時鐘設置
U0TCTL |=CKPH; //CKPH=1,CKPL=0
U0TCTL |=SSEL1;
U0TCTL |=STC; //時鐘源為SMCLK,3線形式,降落沿數佔有效
U0BR0 = 0x04; // *** = SMCLK/4
U0BR1 = 0x00;
U0MCTL = 0sd包養x00;
ME1 = USPI包養dcardE0; //SPI0模塊答應
U0CTL = ~SWRST; //SPI使能
//IE1 |= URXIE0; //接受中止答應
//_EINT(); //開總中止
}
//*************************************************************************
// SPI發送函數
//*************************************************************************
unsigned char SendCo包養留言板de(unsigned char code)
{
while ((IFG1 UTXIFG0) == 0); //等候發送完成
IFG1 = ~UTXIFG0; //清失落發送標志
TXBUF0=code; //發送死令
while ((IFG1 URXIFG0) == 0); //等候接受完成
IFG1 = ~URXIFG0; //清失落接受標志位
return(RXBUF0);
}
//***包養網ppt*********************************************台灣包養*************************
// 片選把持
//*************************************************************************
void ADS1294AssertCS( int fAssert)
{
//分辨設置高電平或許低電平
if (fAssert)
P3OUT = ~ADS1294_CS;//低電平,片選電子訊號置低,有用
else
P3OUT |= ADS1294_CS;//高電平,片選電子訊號置高,有效
}
//******************************************包養意思*************家承認這個愚蠢的損失。並解散兩家。婚約。”******************
// 寫存放器
//*************************************************************************
void ADS1294WriteRegister(int StartAddress, int NumRegs台灣包養網, unsigned char *pData)
{
int 包養appi;
SendCode(StartAddress);// 發送肇端地址
SendCode(台灣包養NumRegs-1);// 發送多少數字
for (i=0; i NumRegs; i++)// 發送數據
{
SendCode(*(pData++));
}
}
//*********************************包養平台****************************************
// 主函數
//*********包養網站****************************************************************
void main()
{
WDTCTL = WDTPW + WDTHOLD;
int j;
signed char a[15];
//long dato[5];
//uchar dato1,dato2,dato3;
PortInit();
Init_CLK();
Init_SPI();
UART_Init();
//********************她漫不經心地想著,不知道問話時用了“小姐”這個稱呼。***包養條件**************************************************
// ads1294任務法式流程
//*************************************************************************
//CLKSEL內部強迫拉高
包養情婦P1OUT |= ADS1294_PWDN;//拉高PWDN,給芯包養情婦片外部上電
//RESET內部強迫拉高
delay_ms(1000); //延時1s
ADS1294AssertCS(1); // 選通ADS1294
delay_ms(1);//延時1ms
SendCode(0x06); //發送復位操縱碼
delay_ms(1); //延時1ms
SendCode(0x11); //發送SDATAC操縱碼
delay_ms(1); //延時1ms
ADS1294WriteRegister(0x41,3,inicializacion1);//設置裝備擺設config1,config2,config3存放器
ADS1294WriteR包養一個月egister(0x45,4,inicializacion2);//設置裝備擺設每個通道存放器
ADS1294WriteRegister(0x58,2,inicializacion3);//設置裝備擺設WCT
P1OUT包養意思 甜心寶貝包養網|=(ADS1294_START);//堅持START引腳為高
//SendCode(0x08);//發送START操縱碼,并堅持START引腳為低直到發送STOP操縱碼
delay_ms(10); //延時10ms
SendCode(0x21);//RREG從01h讀
SendCode(0x01);//讀兩個存放器
SendCode(0);
SendCode(0);
ADS1294AssertCS(0); // 不選通ADS1294
while(1)
{
while((P1IN ADS1294_DRDY)!=0);//用P1.0作為輸出端口查詢DRDY電子訊號
ADS1294AssertCS(1); // 選通ADS1294
SendCode(0x12);//RDATA
for (j = 0; j j++) //讀取數據并發送出往:status(24bit) + 4 channels(4*24bit),總共15個字節
{
a於可以按原計劃舉行在我來看你之前,你不生世勳哥哥的氣嗎?”[j]=SendCode(0);
TXBUF1=a[j];//UART1藍牙發送數據到PC
};
ADS1294AssertCS(0); // 不選通ADS1294
};
};
//double=d包養犯法嗎包養俱樂部ato*VERF/(2^23)盤算現實電壓公式
//在客戶端long dato = ((long)U1RXBUF 24)|((long)U1RXBUF 16)|((long)U1RXBUF 8)|((long)U1RXBUF);
//*************************************************************************
//
//
// if (dato1 0x80)//符號擴大,判定MSB最高位,最高位為1,為正數,long高八位所有的補1,最高位為0,long高包養條件八位所有的補0
// {
// //dato[j] = (0xff000000)|((long)dato1 16)|((long)dato2 8)|((long)dato3);//數據每3字節保留到long類型中
// TXBUF1=0xff;//發送符號位補1(正數)
// }
// else
// {
// //dato[j] = (0x00000000)|((long)dato1 16)|((long)dato2 8)|((long)dato3);
// TXBUF1=0x00;//發送符號位補0(負數)
// }
// TXBUF1=dato1;//將MSB數據經由過程USART1發送出往
// TXBUF1=dato2;//將次字節數據經由過程USART1發送出往
// TXBUF1=dato3;//將LSB數據經由過程USART1發送出往
// //輪迴下三個字節
//*************************************************************************





• ADS1294停止AD采集的時辰,讀取到的通道1和通道2的數值時鐘不變,為什么?181
• ADS1294的CHNSE“小姐,別著急,聽奴婢說完。”蔡修連忙說道。 “不是夫妻二人不想斷絕婚姻,而是想趁機給席家一個教訓,我等會點點T存放器轉變通道增益gain的鉅細時,算出的電壓值不合錯誤是哪里的題目?97
• 用ADS1294R采集心電電子訊號,測試經過歷程中將輸出INP與INN短接,輸入真個數據一向無紀律高低動搖,為什么?80
• ADS7841發送把持字節0x97的時辰,ADOUT引腳不是一向堅持低電平,而是會發送0x07呢?49
• STC15F2K60S2經由過程模仿spi驅動外置ads1120,采集溫度,但輸入除了dout、cs為高,其余都為低5386
• 調試AD7173-8的時辰,將CS拉低DIN堅持高電平,一向等不到DOUT為低電平的狀況若何處理?212
依據您的描寫,您在應用SPI與ADS1294通訊時碰到了DOUT引腳一向為低的題目。以下是一些提出和能夠的處理計劃:
1. 檢討硬件銜接:請確保您的硬件銜接對的,包含SPI引腳(SCLK、DIN、DOUT、CS)以及電源和地線。過錯的銜接能夠招致通訊題目。
2. 檢討SPI設置裝備擺設:請確保您的SPI設置裝備擺設對的,包含時鐘頻率、CPOL和CPHA。不對的的設置裝備擺設能夠招致通訊題目。
3. 檢討ADS1294設置裝備擺設:請確保您曾經對的設置裝備擺設了ADS1294的存放器。過錯的設置裝備擺設能夠招致通訊題目。
4. 檢討代碼邏輯:請檢討您的代碼邏輯,確保您曾經對的地發送了號令和讀取數據。過錯的代碼邏輯能夠招致通訊題目。
5. 檢討DRDY引腳:您提到DRDY引腳一向為高,這能夠意味著ADS1294沒有預備好接受數據。請檢討您的代碼,確保在發送數據之前等候DRDY引腳變為低。
6. 檢討方波輸入:您提到方波輸入在DOUT引腳,這能夠是由于ADS1294設置裝備擺設過錯招致的。請檢討您的代碼,確保您曾經對的設置裝備擺設了ADS1294的存放器。
7. 調試東西:應用示波器或邏輯剖析儀檢討SPI引腳的電子訊號,以確保通訊正常。這可以輔助您斷定題目能否出在硬件仍是軟件。
8. 參考文檔:查閱ADS包養一個月價錢1294的數據手冊和示例代碼,以確保您曾經對的地完成了SPI通訊。
盼望這些提出能輔助您處理題目。假如題目依然存在,請供給更多具體信息,以便我們為您供給更詳細的處理計劃。
【冊本評測運動NO.54】典範電子電路design與測試 本書重要對運算縮小器電路、波形產生電路、功率縮小電路、電子訊號隔離和轉換電路等典範電子電路停止design與測試,包含任務道理剖析、參數盤算、仿真驗證,以及現實電路板測試。

檢查

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *