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.

[参考译文] 编译器/TDA3:TDA3xx 示例 Csl_McSPI_MasterSlave_App McSPI 用法

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/794298/compiler-tda3-tda3xx-example-csl_mcspi_masterslave_app-mcspi-usage

器件型号:TDA3

工具/软件:TI C/C++编译器

你(们)好

我想使用 TDA3xx-EVM 板和 TDA3xx 定制板运行 SPI 通信示例。

为此、我尝试使用 CSL_mcspi_masterSlave_app 示例。

但我不知道如何使用它。

在不修改示例的情况下生成示例、并在 TDA3xx-EVM 板和 TDA3xx 定制板上运行该示例。

因此、两个 McSPI2 RX 都超时!! 我打印了一条消息。

我进入了 while 环路。

我可以在不修改代码的情况下使用此示例吗?

或者、我是否必须进行适当的修改? 如果是、请告诉我您需要做什么。

我尝试了更多。

我将 TDA3xx 定制板的 SPI1连接到 TDA3xx-EVM 的 SPI2。

EVM 定制
SPI2-D1:17 <->SPI1-D0
SPI2-CS0:20 <-> SPI1-CS0
SPI2-SCLK:22 <-> SPI1-SCLK
SPI2-D0:18 <->SPI1-D1
GND:4 <-> GND

和 PadConfig_prcmEnable 已修改。

EVM
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_UART1_RXD、0x00040000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_UART1_TXD、0x00000000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_SPI1_CSO、0x00040000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_SPI1_SCLK、0x00040000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_SPI1_DO、0x00040000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_SPI1_D1、0x00040000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_SPI2_CSO、0x00040000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_SPI2_SCLK、0x00040000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_SPI2_DO、0x00040000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_SPI2_D1、0x00040000);

定制板
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_SPI1_CSO、0x00040000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_SPI1_SCLK、0x00040000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_SPI1_DO、0x00040000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_SPI1_D1、0x00040000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_UART2_RXD、0x00060000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_UART2_TXD、0x00060000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_UART2_CTSn、0x00070000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_UART2_RTSN、0x00060000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_SPI2_CSO、0x00040000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_SPI2_SCLK、0x00040000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_SPI2_DO、0x00040000);
HW_WR_REG32 (SOC_CORE_PAD_IO_REGISTER+CTRL_CORE_PAD_IO_SPI2_D1、0x00040000);

在定制电路板的主()函数代码的开头添加了"uartBaseAddr = SOC_UART2_base;"。

定制板是 UART2与 UART 的通信。

此设置是否正确?

我知道 TDA3xx-EVM 可以设置 MISO、D0或 D1的 MOSI、不需要修改?

如果我需要解决这个问题、请告诉我如何解决。


重建后、我将告诉您结果。

谢谢你。

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

    mcspiMasterSlave_SPI1_SPI2.c 中的多个位置存在"#if defined (SOC_TDA3XX)|| Defined (SOC_DRA78x)" 您能否确保在构建程序时定义了"SOC_TDA3XX"? (您可以将"#warning Compiling for TDA3 "置于此块中、并查看在重建应用程序时是否出现警告)。

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

    我很抱歉迟到了。

    此程序中有两个块、即 All Output Warning Directive。

    此外、我已经确认块正在调试模式下执行。 (我通过逐行调试进行了验证。)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Kim:

    CSL_mcspi_masterslave_app 示例中包含2个器件。
    McSPI1实例用作主器件、McSPI2实例用作从器件。
    我们连接 EVM 上 McSPI1和 McSPI2引脚的 SPI 引脚。

    如果您尝试在 EVM 和定制板之间进行 SPI 通信、
    您需要将应用分为两部分:一个运行主设备、一个运行从设备。
    在一个电路板上运行主侧应用、在另一电路板上运行从侧应用。
    从外部连接相应 McSPI 实例的 SPI 引脚并运行示例。

    另请注意、当主器件启动传输时、从器件侧应用程序应准备就绪。

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

    此示例是一个通过在一个 EVM 板上连接 SPI1 (主器件)和 SPI2 (从器件)来确认通信的示例。

    在上传问题之前、我尝试将此代码分为两个代码、但未成功。

    将代码分为两个并运行程序后、从器件在主器件运行之前进入超时(while Loop)。

    我真的很抱歉、但您能不能给我一个将此示例分为主从的提示?

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

    尊敬的 Kim:

    在从机端添加超时、以便在未建立连接时应用程序打印正确的状态。
    此外、在示例中、主器件和从器件的状态由 API 调用的顺序控制。

    当您在两个电路板之间运行时、从侧 Rx 应无限等待、直到主器件发送数据或根据主器件在系统中启动传输所需的时间使用适当的超时。
    您可以更新并检查。

    此致、
    Prasad

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

    如果我根据您的建议修改和运行该程序并报告结果、是否可以?

    我对您的建议非常有帮助、但如果可能、我将在此尝试完成后关闭该主题。

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

    尊敬的 Kim:

    希望您能够在设置中进行测试。
    如果问题得到解决、请在回复中标记相同的内容。

    此致、
    Prasad