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.

[参考译文] PROCESSOR-SDK-TDAX:定制 TDA2Px 板上的 McSPI2复位失败

Guru**** 2539500 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/827673/processor-sdk-tdax-mcspi2-fails-on-reset-on-custom-tda2px-board

器件型号:PROCESSOR-SDK-TDAX
Thread 中讨论的其他器件:SysConfig

您好!

在中断模式下将 McSPI2初始化为主器件时、在访问 MCSPI_HL_SysConfig 中的 SOFTRESET 位(GIO_create -> mcspiMdCreateChan -> McSPIReset)后、器件将失败并显示错误。 函数 McSPIReset 的基底参数是正确的、我可以告诉它。 所有实例和通道句柄均已正确设置。 我将 VisionSDK 3.0.0与 PDK 1.9.0.17搭配使用。

同样的代码用于将 McSPI1初始化为从器件(也在中断模式中)。 为了确保初始化 McSPI1不会影响另一个实例、我尝试排除 McSPI1、但没有改变。

在不同的定制 TDA3x 板上运行代码时、初始化按预期工作。

您是否知道在该特定位置导致此错误的原因? 我还能检查什么?

感谢你的帮助。

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

    您好!

    您需要启用 McSPI2实例的时钟。
    时钟启用通过地址0x4A00 97F8处的寄存器"CM_L4PER_MCSPI2_CLKCTRL"来完成

    在 PDK 中有一个 McSPI 示例、您可以参考该示例、该示例启用时钟。
    \packages/ti\cSL\examples\mcspi\mcspiMasterSlave\mcspiMasterSlave_SPI1_SPI2.c

    此致、
    Prasad

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

    感谢您的参与。

    我引用了这个示例 packages \ti\drv\bsp_llds\mcspi\examples\mcspi_spi1tospi2\src\mcspiSample_main.c、它在为 tda3xx 构建时仅包含时钟启用代码、这就是为什么它仅在 tda3xx 板上对我有效的原因、我也是如此。

    #if defined (SOC_TDA3XX)
    static void PlatformMCSPI1PrcmEnable (void)
    {
    *((volatile UINT32 *)(0x4a009700 + 0xf0))= 0x02;
    while ((*(volatile UINT32 *)(0x4a009700 + 0xf0))!= 0x02);
    } 
    (笑声)