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**** 2608865 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/748438/tms570ls3137-issue-with-spi-handler-driver-chip-select

器件型号:TMS570LS3137

在 AUTOSAR_MCAL_TMS570LSx-05.30.00中、  

在连接外部闪存驱动器时、我们面临 SPI 处理程序/驱动程序芯片选择问题。 下面是详细信息。
请检查并提供您的意见。
随附的是开放点问题列表、供您参考。

为了与外部闪存芯片通信、需要按顺序传输多个 SpiChannels。 芯片选择必须在整个序列中被拉低。 因此、已将 CsMode 配置为连续[SiC!]。

然而、当测量 SPI 总线时、我们可以看到在传输期间、芯片选择线路被释放了一小段时间:

首先、我们认为芯片选择在传输通道之间发布。 但实际上情况并非如此。 在上图中、第一个通道传输一个字节(0x9F)、第二个通道传输四个字节(0xFF)。 简而言之、芯片选择切换在最后一个发送字节前可见。 我们尝试了不同的方案、但情况似乎总是如此。

从我们的角度来看、SPI 处理程序/驱动程序违反了 AUTOSAR 要求。 根据发行说明、AUTOSAR_MCAL_TMS570LSx-05.30.00支持 AUTOSAR 规范4.0.3版。 在本 AUTOSAR 发行版的“SPI 处理程序/驱动程序要求”中,我们找到了以下要求:

[BSW12033]芯片选择模式-保持模式
对于分配给 SPI 硬件单元的 SPI 通道,芯片选择模式“保持”应可用:
在传输开始前选择分配的芯片选择引脚。 如果传输完成、片选将保持激活状态。 SPI 硬件将保持分配状态。

这似乎不能由驱动程序正确完成、发行说明中也没有说明与 AUTOSAR 的这种偏差。

我们考虑使用 CS_Via GPIO 而不是 CS_Via 外围设备引擎来检查它是否起作用。 但根据德州仪器(TI)的数据、MCAL 根本不支持 CS_VIA GPIO (请参阅 OPL_TI 中的开放点1)。
“SPI 处理程序/驱动程序规范”状态:

[SPI370]⌈可以定义芯片选择处理是由硬件外设自主管理、而无需驱动器进行显式芯片选择控制、还是 SPI 驱动器将芯片选择线路显式驱动为 DIO […]。⌋()

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

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

    e2e.ti.com/.../7215.SPIConfig.zipPlease查找所监控的 SPI 线路的屏幕截图。 此外、随附的是 SPI 生成的配置文件、供您分析。 如果您需要更多信息、请告诉我。

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

    我们正在调查此问题、并尝试在工作台上重现此问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Niveditha、

    我们无法重现您提到的问题。 在最后一个字节之前、我们能够传输数据、而无需切换芯片选择。

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

    您好 Vishwanath、

    我将代表 Niveditha 回答。

    我想指出的是、在我们这边、当 SpiJob 中存在多个 SpiChannels 时、问题就会出现。

    例如、上述通信迹线的第二次传输是个 SpiSequence、其中包含个 SpiJob、而 SpiJob 又包含个 SpiChannels (第一个字节的值为0x05、然后是一个字节的值为0x00)。

    第3次传输也是如此:这是个 SpiSequence、其中包含个 SpiJob、而 SpiJob 又包含个 SpiChannels (第一个字节的值为0x9F、然后是3个字节的值为0x00)。

    您应该在上面提供的 SPI 配置中找到相同的配置。

    您能否确认您的测试方案与所描述的方案相匹配?

    感谢您的支持!

    此致、
    Reinhard

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

    您好 Reinhard、

    我们已测试了与您的配置类似的配置-包含一个作业的序列包含两个通道。 我们使用了 SPI1而不是 SPI4。 我们没有发现 CS 有任何问题。 我要附加 used.e2e.ti.com/.../2376.Spi_5F00_Cfg.he2e.ti.com/.../0638.Spi_5F00_PBcfg.c 文件

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

    您好,Vishwanath,

    是否有可能使用 SPI4来重建问题? 我们的客户硬件设计将使用 SPI 单元4。

    非常感谢您的支持!

    此致、
    Reinhard

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

    您是否在项目中使用了其他 SPI? 您是否也会在其他 SPI 上看到类似的问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Vishwanath,

    是的、我们也在项目中使用其他 SPI 单元、但我们在那里看不到连续芯片选择的问题。

    但是、请注意、只有 SPI4在一个作业中配置了多个通道、而所有其他 SPI 单元在该项目中具有"单通道到单个作业"分配。

    感谢您的支持!

    此致、
    Reinhard

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

    我们能够在工作台上重现此问题。 我们将把它输入到我们的错误跟踪工具中。