Other Parts Discussed in Thread: HALCOGEN,
我现在在用TI的TMS570LS1224。封装是PGE。我是主设备,使用了HALCoGen。我要实现SPI功能。我现在
1:把99号引脚(MIBSPI5SOMI[0])配置成SIMO功能;
2:98号引脚(MIBSPI5SOMI[0]) 配置成了GIO,作为CS功能;
3:97号引脚(MIBSPI5SOMI[1])配置成了SOMI功能;
4:100号引脚(MIBSPI5CLK)配置成CLK功能。
我用下面代码发送和接收数据。
mibspiSetData(mibspiREG5, 0, &sed_data);
mibspiTransfer(mibspiREG5, 0);
while( !mibspiIsTransferComplete(mibspiREG5 , 0 ) ); // 等待传输完成
mibspiGetData( mibspiREG5, 0, &rx0);
return rx0
用下面代码与W25Q128芯片的SPI通信。
W25Q_CS_LOW(); /* 拉低片选 */
spi_wait_us(1);
SPI_Read_Write_One_Byte( W25X_ManufactDeviceID ,0); /* 发送读 ID 命令 0x90 */
SPI_Read_Write_One_Byte( 0, 0 ); /* 发送读 ID 命令 0x90 */
SPI_Read_Write_One_Byte( 0,0 ); /* 发送读 ID 命令 0x90 */
SPI_Read_Write_One_Byte( 0, 0); /* 发送读 ID 命令 0x90 */
deviceid = SPI_Read_Write_One_Byte(0xFF, 1) << 8; /* 读取高8位字节 */
deviceid |= SPI_Read_Write_One_Byte(0xFF, 1); /* 读取低8位字节 */
W25Q_CS_HIGH(); /* 拉高片选 */
spi_wait_us(100);
用示波器探测管脚 100(CLK),99(SIMO),98(CS),97(SOMI),运行上面代码。
发现CS能在通信时正确的拉低。通信完毕后正确拉高。
SIMO和CLK都有正确的波形。
在读取芯片ID时,SOMI上也能看到正确的波形。但是上述代码并没有返回deviceid。
跟踪进去以后,发现代码 mibspiGetData( mibspiREG5, 0, &rx0); 并没有得到数据。请问这可能是什么原因?