请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28374S 大家好、
以下是客户提出的问题、可能需要您的帮助:
主器件使用 F28379D 的 LunchPad、而从器件使用 F28374S 芯片的产品板。
主器件和从器件都使用相应芯片的 SPI_ex3_external_loopback _FIFO_interrupts 示例。
主器件和从器件的采样修改如下:
1) 主设备:使用计时器发送以下消息、而不是使用发送中断:
// // FIFO and interrupt configuration // #if 0 SPI_enableFIFO(SPIB_BASE); SPI_clearInterruptStatus(SPIB_BASE, SPI_INT_TXFF); SPI_setFIFOInterruptLevel(SPIB_BASE, SPI_FIFO_TX2, SPI_FIFO_RX2); SPI_enableInterrupt(SPIB_BASE, SPI_INT_TXFF); #else SPI_disableFIFO(SPIB_BASE); #endif // // Configuration complete. Enable the module. // SPI_enableModule(SPIB_BASE);
2) 从器件:SPIB 作为从器件(在示例中、它是 SPIA 作为从器件端)。 配置如下:
void initSPIBSlave(void)
{
//
// Must put SPI into reset before configuring it
//
SPI_disableModule(SPIB_BASE);
//
// SPI configuration. Use a 500kHz SPICLK and 16-bit word size.
//
SPI_setConfig(SPIB_BASE, DEVICE_LSPCLK_FREQ, SPI_PROT_POL0PHA0,
SPI_MODE_SLAVE, 500000, 16);
SPI_disableLoopback(SPIB_BASE);
SPI_setEmulationMode(SPIB_BASE, SPI_EMULATION_FREE_RUN);
//
// FIFO and interrupt configuration
//
SPI_enableFIFO(SPIB_BASE);
SPI_clearInterruptStatus(SPIB_BASE, SPI_INT_RXFF);
SPI_setFIFOInterruptLevel(SPIB_BASE, SPI_FIFO_TX2, SPI_FIFO_RX2);
SPI_enableInterrupt(SPIB_BASE, SPI_INT_RXFF);
//
// Configuration complete. Enable the module.
//
SPI_enableModule(SPIB_BASE);
}
修改后、主器件的 SPIB 向 Slaver 的 SPIB 发送数据、而从器件接收数据并在中断中向主器件发送信息。 但从机当前不在中断功能中接收数据。
在逻辑分析仪中、已验证主侧是否成功发送了相关数据。
您可以帮助检查此案例吗? 谢谢。
此致、
樱桃