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.

[参考译文] TMS570LS3137:使两个 SPI 相互通信

Guru**** 2595770 points
Other Parts Discussed in Thread: TMS570LS3137, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1027947/tms570ls3137-to-communicate-two-spis-with-each-other

器件型号:TMS570LS3137
主题中讨论的其他器件: HALCOGENTMDX570LS31HDK

您好!

我是不熟悉 HDK、TMS570LS3137的人。 我一直在尝试与两个 SPI 通信、但我尚未完成。  

我已经选择 SPI3来发送数据、而 SPI1作为接收器并在 HalCoGen 上完成一些设置。  

为此、我从 PINMUX 中选择的引脚为:(src:tms570ls3137 (数据表)、第11页  ZWT BGA 封装球状引脚映射(337球栅阵列)

SPI3 SIMO W8              SPI1 SOMI G18

SPI3 SOMI V8              SPI1 SIMO F19

SPI3 CLCK V9.              SPI1 CLCK F18

SPI3 CS1  V5              SPI1 CS1  F3

(但我在 PINMUX 中找不到要激活的多个引脚)

然后、从 MIBSPI1端口中、我为 SCS[1]引脚模式选择了 SPI 直通模式、并将其余部分设置为 GIO 直通模式。 我也对 MIBSPI3端口下的 SPI3执行了同样的操作。

对于全局配置、我选择 SPI3作为主模式(保持为默认值)、并取消勾选 SPI1的主模式。

我将其他设置保留为默认设置并生成代码。

我不使用其他器件、因此我只将 SPI3的 SOMI 引脚与 SPI1的 SIMO 引脚连接在一起、SPI1的 SOMI 引脚与 SPI3的 SIMO 引脚连接在一起、将 CS1连接在一起、并将 CLK 连接在一起。

在搜索此主题时、我找到了一些代码、然后复制并粘贴了这些代码。

UINT16 TX_Data[16]={0x01、0x02、0x03、0x04、0x05、 0x06、0x07、0x08、0x09、0x0A、 0x0B、0x0C、0x0D、0x0E、0x0F、 0x10};
UINT16 RX_Data[16]={0};

int main (空)

/*用户代码开始(3)*/


spiInit();

_enable_IRQ ();

spiDAT1_t 数据通信 fig1_t;
dataconfig1_t.CS_hold = false;
dataconfig1_t.WDEL = true;
dataconfig1_t.DFSEL = SPI_FMT_0;
dataconfig1_t.CSNR = 0xFD;

SendspiAndGetData (spiREG1、&dataconfig1_t、16、TX_Data、RX_Data);
TransmitAndReceiveData (spiREG3、&dataconfig1_t、16、TX_Data、RX_Data);
while (1);

在调试之后、我已经看到了我给出的 Tx_Data、但对于 Rx_Data 没有什么可看的。 全为零。 我还尝试了其他配置

例如、  

SendspiData 和 spiGetData 或 spiTransmitData 和 spiReceiveData... 但无论如何、我无法相互通信。

可以帮助我查看问题吗? (我确信存在很多问题)。 我无法继续。

提前感谢、

斜角

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

    要使用 SPI 模块、请在 HALCOGen GUI 中启用 SPI 而不是 MibSPI:

    1.启用驱动程序

    2.配置 SPI1和 SPI3、而不是 MibSPI1和 MibSPI3

    3.启用 SPI1 (从器件)中断:

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

    您好、QJ Wang、

    非常感谢您提供这份详细的指南。 我已应用 这些 GUI 设置。

    我是否还必须更改 SPI1端口和/或 SPI3端口中的某些内容? (例如、在 SPI1端口下 、取消勾选 SCS[1]的 DIR)

    除了您显示的 GUI 配置外、我还在全局配置中取消勾选 SPI1的主模式。  

    这些代码是否写得不够低? 或缺失、不正确?  

    /*用户代码开始(1)*/

    UINT16 TX_Data[16]={0x01、0x02、0x03、0x04、0x05、 0x06、0x07、0x08、0x09、0x0A、 0x0B、0x0C、0x0D、0x0E、0x0F、 0x10};
    UINT16 RX_Data[16]={0};

    int main (空)

    /*用户代码开始(3)*/

    spiDAT1_t 数据通信 fig1_t;
    dataconfig1_t.CS_hold = false;
    dataconfig1_t.WDEL = true;
    dataconfig1_t.DFSEL = SPI_FMT_0;
    dataconfig1_t.CSNR = 0xFE;

    _enable_IRQ ();

    spiInit();

    while (1){

    TransmitAndReceiveData (spiREG3、&dataconfig1_t、16、TX_Data、RX_Data);

    我已将 SPI1和 SPI3的 SIMO、SOMI、CLK 和 CS1引脚一起连接在板上(一个的 SIMO 连接到其他的 SOMI)。 我 出了什么问题? 我只看到  RX_Data 的第一个块为0xFFFF。

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

    请发布您的项目和 HAL 配置(*。HCG 和*。DIL)。

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

    感谢您的关注。 其中包括:

    e2e.ti.com/.../spi_5F00_lpbck_5F00_dma.rar

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

    我发现了我犯了个错误的地方... 从 HalCoGen 中、我选择了 TMS570LS31x -> TMDX570LS31HDK、而不是 TMS570LS3137ZWT。 当然,这是一个巨大的错误,但幸运的是,现在没有问题。