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.

[参考译文] AM5718-HiRel:AM5718 的 MCSPI2 用于控制 ADS8668、并在使用 spidev_test 进行测试期间返回 SPI2 数据错误

Guru**** 2434950 points
Other Parts Discussed in Thread: AM5718, ADS8668

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1546571/am5718-hirel-the-mcspi2-of-am5718-is-used-to-control-ads8668-and-spi2-returned-data-errors-during-testing-using-spidev_test

器件型号:AM5718-HiRel
主题中讨论的其他器件:AM5718ADS8668

工具/软件:

您好、专家:  

    我使用 TI 的 am5718 作为处理器、SDK 版本:TI-PROCESSOR-SDK-LINUX-am57xx-EVM-04.03.00.05。

    在项目中、我使用 SPI2 连接模数转换器 ads8668。 由于 ads8668 上的所有操作都是读写寄存器操作,因此我想使用“Linux 用户空间接口“与它进行通信。

    器件树配置如下:

系统启动后、您可以在/dev 目录中看到 spidev2.0、但在运行测试程序 spidev_test 时、返回的数据不是预期值。

后者 — l 用于内部环路测试。

本测试的目的是首先测试 SPI 本身、如果其工作正常、则测试模数转换器电路。

您能帮我找出测试问题所在吗?这是因为数模转换器的引脚连接导致了故障吗? 如果是、如何在 SPI 本身上执行环回测试?

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

    尊敬的 Jiabin:

    是否可以运行以下命令:

    • ./spidev_test -v -D /dev/spidev2.0 -p “HelloWorld"</s>“

    这将是一个更详细的实验。 预期 TX 缓冲区将具有 HelloWorld、并且假设 RX 未进行任何连接、RX 缓冲区将没有任何内容。

    此致、

    Takuma

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

    您好 Takuma、

    感谢您的答复。

    我尝试了你的建议,结果如下:

    我认为出现故障的原因是 SPI 连接到模数转换器、但很难更改电路。我强制切断了 SPI 和模数转换器之间的连接、但结果仍然不正确。

    我认为 SDI 和 SDO 需要短路、因此我想知道在这种情况下是否可以将其配置为环回模式。我想知道是否可以使用 SPI 的环回测试、但我在命令参数中添加了'- l'、但它没有正确执行。 打印日志显示该参数无效。

    我想知道如何实施环回测试。
    另一个问题是、如果我将位配置为 16 或 32、我想知道 SPI 是否可以正常工作。

    此致、

    Jibin

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

    嗨、Jibin、

    驱动程序中不支持环回。 驱动程序理解的 MODE_BITS 如下:

    spidev_test -l 的作用是将 SPI_LOOP 模式位设置为:

    此致、

    Takuma

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

    您好 Takuma、

    感谢您的答复。

    用户提示说这是一个环回、

    我们指的是同一个版本吗?

    我无法在您在 SDK 软件包中回复的图像内找到内容。

    此致、

    Jibin

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

    嗨、Jibin、

    [报价 userid=“563928" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1546571/am5718-hirel-the-mcspi2-of-am5718-is-used-to-control-ads8668-and-spi2-returned-data-errors-during-testing-using-spidev_test/5954104

    我们指的是同一个版本吗?

    [/报价]

    我指的是较新内核版本、即 Linux 内核版本 6.12、该版本在 SDK 11.0 SDK 中用于较新版本的 AM6x 器件。 但是、应在 AM6x 和 AM5x 之间使用相同的驱动程序、因此缺少 SPI_LOOP 应适用于您的 SDK 版本和器件。 我将发布一个更大的屏幕截图、其中包含文件名 spi-OMAP2-mcspi.c、它是定义了 mode_bits 的 McSPI 驱动程序:

    并在此处链接驱动程序: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/spi/spi-omap2-mcspi.c?h=ti-linux-6.12.y#n1489 

    [报价 userid=“563928" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1546571/am5718-hirel-the-mcspi2-of-am5718-is-used-to-control-ads8668-and-spi2-returned-data-errors-during-testing-using-spidev_test/5954104

    用户提示说这是一个环回、

    [/报价]

    是的、用户提示说它是环回。 在提示符下选择“l"将“将设置 spidev_test 用户应用程序中的 SPI_LOOP 模式位、但 SPI-OMAP2-mcspi 驱动程序无法理解这一点。

    如果您想查看以下内容、我将在此链接 spidev_test 用户应用程序源代码: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/tools/spi/spidev_test.c?h=ti-linux-6.12.y#n265

    spidev_test 应用程序是上游 Linux 的通用示例、因此并非所有器件都完全支持所有可配置模式。

    此致、

    Takuma

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

    您好 Takuma、

    感谢您的答复。

    然后、我将尝试与硬件短路。

    再次感谢。