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

CC3200 SPI与C8051F340进行通讯出错。

Other Parts Discussed in Thread:CC3200, CC3200SDK

你好,我在使用C8051F340与CC3200进行SPI通讯时出错。CC3200使用的是SPI_DEMO的例子,在通讯中CC3200作为从机,C8051F340作为主机。通过逻辑分析仪测8051的输出是正确的没有错误的,但是在CC3200就出现接收错误。

CC3200的例子里我只修改了CS片选:

MAP_SPIConfigSetExpClk(GSPI_BASE,MAP_PRCMPeripheralClockGet(PRCM_GSPI),
SPI_IF_BIT_RATE,SPI_MODE_SLAVE,SPI_SUB_MODE_0,
(SPI_HW_CTRL_CS | //由硬件控制
SPI_4PIN_MODE | //工作在4线模式
SPI_TURBO_OFF | //涡轮模式关闭
SPI_CS_ACTIVELOW | //CS片选信号
SPI_WL_8)); //8字节长度

然后我的中断处理函数是这样的:

static void SlaveIntHandler()
{
unsigned long ulRecvData;
unsigned long ulStatus;

ulStatus = MAP_SPIIntStatus(GSPI_BASE,true);

MAP_SPIIntClear(GSPI_BASE,SPI_INT_RX_FULL|SPI_INT_TX_EMPTY);

// if(ulStatus & SPI_INT_TX_EMPTY)
// {
// MAP_SPIDataPut(GSPI_BASE,g_ucTxBuff[ucTxBuffNdx%TR_BUFF_SIZE]);
// ucTxBuffNdx++;
// }

if(ulStatus & SPI_INT_RX_FULL)
{
MAP_SPIDataGetNonBlocking(GSPI_BASE,&ulRecvData);
g_ucTxBuff[ucRxBuffNdx%TR_BUFF_SIZE] = ulRecvData;
Report(" %04X ",ulRecvData);
ucRxBuffNdx++;
}

}

C8051的选择是CS低电平选中,一次传输8个字节,每个字节内容为0到15,但是SPI接收为乱码。

请问下能否有工程师给个调试3200的办法

Kevin Qiu1:

CC3200 SDK中C:\ti\CC3200SDK_1.5.0\cc3200-sdk\example\spi_demo例程可以作为主设备或从设备, 有两块CC3200的话可以先测下CC3200的SPI, 用逻辑分析仪测下CC3200的信号是否正常,检查C8051F340与CC3200是否进行了共地连接

,

user6458813:

您好,我手上也只有一块CC3200,C8051F340与CC3200是共地连接的。只是我发现,当我在C8051F340用调试模式,一次一次送参数的时候,CC3200是接收到的值最后一位是正确的。请问下CC3200是哪里设置有问题?SPI_SUB_MODE_0灭有设置错误。唯一的改动就是SPI_CS_ACTIVELOW 因为我设置了8051的片选触发是低电平触发

,

Kevin Qiu1:

我没有C8051F340,无法复现你的环境,先看下手册地8章SPI部分www.ti.com.cn/…/swru367d.pdf

赞(0)
未经允许不得转载:TI中文支持网 » CC3200 SPI与C8051F340进行通讯出错。
分享到: 更多 (0)