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

TMS570LS1224 SPI主从模式问题

 最近调试TMS570 SPI接口,使用标准SPI 主从模式通信,SPI4~SPI5互相发送数据。

硬件环境:570板子按要求连接SPI4和SPI5的4个管脚。

驱动配置:配置好主从模式后,生成驱动。

main函数中,主机调用查询模式发送数据,发现发送一个字节数据后,进入WHILE等待接收数据不能退出,造成主机无法发送剩下字节内容!

从机没有任何中断产生。

1、不知道是从机的驱动配置没有配对,还是其他原因。

2、另外,可否有SLAVE的正确配置文档和实例demo,请多多分享下,谢谢。

gaoyang9992006:

关于MIBSPI的例程,其实主从机的配置,基本差不多。可以参考一下下面的例程:

/* USER CODE BEGIN (0) */
#include "GIO.h"
#include "mibspi.h"
#include "pinmux.h"
/* USER CODE END */

/* Include Files */

#include "sys_common.h"
#include "system.h"

/* USER CODE BEGIN (1) */
#define TG_LENGTH 8
uint16 Tx_Data_SPI_1[8];
uint16 Tx_Data_SPI_2[8];
uint16 Tx_Data_SPI_3[8];
uint16 Rx_Data_SPI_1[8];
uint16 Rx_Data_SPI_2[8];
uint16 Rx_Data_SPI_3[8];
/* USER CODE END */

/** @fn void main(void)
* [url=home.php?mod=space&uid=159083]@brief[/url] Application main function
* @note This function is empty by default.
*
* This function is called after startup.
* The user can use this function to implement the application.
*/

/* USER CODE BEGIN (2) */
/* USER CODE END */

void main(void)
{
/* USER CODE BEGIN (3) */
uint8 i;
muxInit();
gioInit();
mibspiInit();
mibspiEnableGroupNotification(mibspiREG1,0,0);
// mibspiEnableGroupNotification(mibspiREG1,0,1);
// mibspiEnableGroupNotification(mibspiREG1,0,2);
_enable_IRQ();
Tx_Data_SPI_1[0] = 0x0011;
Tx_Data_SPI_2[0] = 0x0021;
Tx_Data_SPI_3[0] = 0x0031;
for(i=1;i<TG_LENGTH;i++)
{
Tx_Data_SPI_1[i] = Tx_Data_SPI_1[i-1]+1;
Tx_Data_SPI_2[i] = Tx_Data_SPI_2[i-1]+1;
Tx_Data_SPI_3[i] = Tx_Data_SPI_3[i-1]+1;

}
mibspiSetData(mibspiREG1,0,Tx_Data_SPI_1);
// mibspiSetData(mibspiREG1,1,Tx_Data_SPI_2);
// mibspiSetData(mibspiREG1,2,Tx_Data_SPI_3);
mibspiTransfer(mibspiREG1,0 );
// mibspiTransfer(mibspiREG1,1 );
// mibspiTransfer(mibspiREG1,2 );
while(1)
{
// while(mibspiIsTransferComplete(mibspiREG1, 0)==1)
// {
// mibspiGetData(mibspiREG1, 0, Rx_Data_SPI_1);
// }
}
/* USER CODE END */
}

/* USER CODE BEGIN (4) */
void mibspiGroupNotification(mibspiBASE_t *mibspi, uint32 group)
{
/* enter user code between the USER CODE BEGIN and USER CODE END. */
switch(group)
{
case 0:
mibspiGetData(mibspiREG1, 0, Rx_Data_SPI_1);
break;
case 1:
mibspiGetData(mibspiREG1, 1, Rx_Data_SPI_2);
break;
case 2:
mibspiGetData(mibspiREG1, 2, Rx_Data_SPI_3);
break;
default:
break;

}
}

复制代码
关于MIBSPI配合DMA的操作,这个在HALCOGEN的安装路径下面的examples文件夹下面有例程的

qianqian wang:

回复 gaoyang9992006:

有个问题想请教您,给您的邮箱发了个邮件,希望得到您的帮助

赞(0)
未经允许不得转载:TI中文支持网 » TMS570LS1224 SPI主从模式问题
分享到: 更多 (0)