TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430F47487和USB118AD之间的SPI通信传送回来的数据有问题

/********************初始化SPI********************/
void Init_SPI0(void)
{
P3SEL = 0x0E; //setup P3 for SPI mode
P3DIR |= BIT0;UCB0CTL0 = 0x49; //Polarity,Master,8-bit, 3-Pin SPI 01001001
UCB0CTL1 = UCSSEL1 + UCSWRST; //SMCLK
UCB0BR0 = 0x82; //setup baud rate,9600
UCB0BR1 = 0x06;
UCA0CTL1 &= ~UCSWRST; //SPI EnablE

}

//******************************************************************************
// SPI_Send_OneByte,发送单个字节数据//******************************************************************************
void SPI_Send_OneByte(uchar Send_Data)
{
P3OUT &= ~BIT0; //STE = 0
UCB0TXBUF = Send_Data; //发送一个字节
while((UCB0CTL1 & UCBUSY)==0); //等待发送完成,检测UCBUSY位
P3OUT |= BIT0; //STE = 1
}

//******************************************************************************
// SPI_Receive_OneByte,SPI接收单个字节
//******************************************************************************uchar SPI_Receive_OneByte(void){
uchar ReceiveByte;
P3OUT &= ~BIT0;
UCB0TXBUF = 0xFF; //发送一个字节
while((IFG2 & UCB0RXIFG) == 0);
ReceiveByte = UCB0RXBUF;
P3OUT |= BIT0;
return ReceiveByte;
}

以上是我的SPI初始化以及传送单个字节和接受单个字节的程序。观察主控芯片的输出口的波形都是符合我要发送的数据的波形,但是主控芯片的接收口的波形是如下图一样的很奇怪的波形。每个数据端口是用3.9K电阻上拉了一个3.3V电平。没有上拉的时候波形也和图片一样。

USB118AD模块的另外一块MCU芯片msp430f149上使用就是完全正常的,主控芯片接收口的波形也是正常的高低电平。

Chunyan Zhu:

用的芯片的MSP430F47187,标题中写错了

Andy He:

你好, 

有IO口初始化的程序吗?

从主控接收波形看, 看起来跟Slave端有关系, 与主控通信的模块供电是多少? 其输出端有上下拉阻抗吗?

Regards,

Andy

Chunyan Zhu:

回复 Andy He:

 在SPI初始化的那段程序中对IO口进行了特殊功能的初始化,我使用的是3-PIN的SPI通信模式。从模块的供电电压是5V,从另外的回路里面拉的。图上的波形是没有接上拉电阻的,我接了3.92K上拉3.3V的时候,波形就和下面这张图一样。

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F47487和USB118AD之间的SPI通信传送回来的数据有问题
分享到: 更多 (0)