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.

[参考译文] RM48L930:MibSPI 环回不起作用

Guru**** 2481465 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/677399/rm48l930-mibspi-loopback-not-working

器件型号:RM48L930

您好!

我无法使 mibspi 环回正常工作。  我正在使用 MibSPI1。  从我的代码中,我调用 mibspiInit(),然后调用 mibspiEnableLoopback (mibspiREG1,0)。

在 HALCoGen 中、我的数据格式0设置为2.5Mbps、Charlen = 8位、WDelay = 0。  使用默认 MIBSPI 延迟设置。  传输组0: 选定数据格式0、每次传输5个字、OneShot 模式、TRG_Always 和 TRG_disabled。  此外、还选择了芯片选择保持。  

当我运行代码时、我可以在 MIBSPI1SIMO 引脚上看到我的数据、并按预期更正时钟和数据。  芯片选择按预期激活。  但是 ,mibspiGetData( mibspiREG1, 0, rxBuf ) 返回所有 FFs,而不是返回预期的数据。  我还尝试启用模拟回路、但操作没有区别。

您能不能建议我缺少什么来使 MIBSPI1环回工作?

谢谢、

Keith

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

    您能看一下 Halcogen 中包含的示例 example_mibspiDma.c 吗? 尽管此示例使用 DMA 加载要传输的数据、但仍在回路模式下运行。 您应该能够从该代码开始、并努力实现您尝试实现的特定配置。 请注意、此示例的源代码位于 C:\ti\Hercules \HALCoGen\v04.06.01\examples\RM48x
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    卡盘、

    我查看了示例 SPI DMA 代码。  为了启用环回、它不会调用使用 IOLPKTSTCR 寄存器的 mibspi.c 中的 API。  相反、它会声明一个名为的本地 fcn

    mibspiEnableInternalLoopback (mibspiREG1);  

    此功能是一种不测试 SPI SIMO/SOMI 引脚的不同回送方法。  此函数设置 Mibspi1 GCR1寄存器的位16:

    mibspi->GCR1 |= 1U <<16U;

    我的观察结果:  

    1.在 mibspiInit()之后调用此本地函数实际上不会导致内部回送工作。  为什么?  因为参考手册指出 SPIEN (位24)设置为1后 SPIGCR1寄存器设置不能更改,这是 mibspiInit()中的最后一步。  我测试了这个: 在 mibspiInit()中,如果 我在同样的代码行中将位16设置为1,其中位24也被设置,那么内部回送将按预期工作。  有什么意见?

    2.回到 mibspi API 函数 mibspiEnableLoopback (mibspi_t * mibspi、loopBackType_t Loopbacktype)、 根据 TI 的 mibspiInit ()视频教程、我的代码在 mibspiInit()之后调用此函数。  但它不会导致回送工作。  我尝试了数字和模拟回路模式。  但是、当我在这个 API 调用之后和启动一个 MibspiTransfer 之前在调试器中单步执行时、然后手动(在调试器中)将 IOLPKTSTCR 寄存器设置为0xA00来启用回送、那么回送工作正常。  

    所以我对(2)的问题是,为什么 mibspiEnableLoopback ()无法成功地写入寄存器 IOLPKTSTCR,而是通过调试器手动在设置中进行冲压?  是否有关于 Mibspi 或 SPI 寄存器访问的勘误表?

    谢谢、

    Keith

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

    我正在审核一些可能未解决的旧论坛帖子。 由于此帖子已打开并最终锁定、我想检查您是否能够解决问题或需要进一步的指导?

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

    是的、此问题已解决。 我不认为界面在 Halcogen 中启用。

    谢谢、此致、