This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28374S:SPI 主器件和从器件之间的通信

Guru**** 2539500 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1183010/tms320f28374s-the-communication-between-the-master-and-slave-of-the-spi

器件型号: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 发送数据、而从器件接收数据并在中断中向主器件发送信息。 但从机当前不在中断功能中接收数据。

在逻辑分析仪中、已验证主侧是否成功发送了相关数据。

您可以帮助检查此案例吗? 谢谢。

此致、

樱桃

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Cherry、

    主题专家因休假而不在办公室。 请预计在1月1日的第一周之前收到回复。 对给您带来的不便深表歉意。

    此致、Santosh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Cherry、

    [引用 userid="496057" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1183010/tms320f28374s-the-communication-between-the-master-and-slave-of-the-spi 后、主控方的 SPIB 会将数据发送到 Slaver 的 SPIB、而从属方会在中断中接收数据并将信息发送到主控方。 但从机当前不在中断函数中接收数据。[/quot]

    我想澄清一点、让我自己理解、从器件在不使用中断时接收数据、但如果配置了中断、则不会接收到数据?   

    是否已检查从器件上的接收缓冲器以查看数据是否到达?

    此致、

    Marlyn