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.

[参考译文] AM3358:具有 GPIO 芯片选择的 McSPI

Guru**** 2582405 points
Other Parts Discussed in Thread: AM3358

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/594608/am3358-mcspi-with-gpio-chip-selects

器件型号:AM3358

您好!

我有一个电路板(我们设计)、它仅使用 SPI 0、上面有4个从器件、并将 AM3358用作单个主器件。  由于 AM3358 (OMAP3)上只有2个芯片选择引脚输出、因此我们需要通过 GPIO 控制芯片选择。  我们在这样做时取得了一些成功,但遇到了一些问题。  请注意、我们使用的是 QNX、但我的问题是有关 AM3358中的寄存器设置(而不是直接使用 QNX 代码)

我的问题是:

1) 1) AM3358 McSPI 在使用 GPIO 控制芯片选择(AM3358不控制芯片选择)时能否与多个从器件(单个主器件)配合使用?  参考手册似乎表明:

"24.3.1.3.2可编程 SPI 使能生成
McSPI 能够生成或不生成 SPI 使能。 如果芯片选择管理取消置位、A
点对点连接是必需的。 只能将从器件的单个主器件连接到
SPI 总线。"

(我在这里假设"芯片选择管理无效"是指设置 MCSPI_MODULCTRL[PIN34]=1 (见下面)。  是这样吗?)

"24.3.2.12 3引脚或4引脚模式
外部 SPI 总线接口可通过位字段配置为使用受限的引脚集
MCSPI_MODULCTRL[PIN34]、根据目标应用:
•如果将 MCSPI_MODULCTRL[PIN34]清零(默认值)、则使用控制器处于4引脚模式
SPI 引脚 SPICLK、SOMI、SIMO 和芯片使能 CS。
•如果 MCSPI_MODULCTRL[PIN34]设置为1、则控制器使用 SPI 引脚 SPICLK 处于3引脚模式、
SOMI 和 SIMO。
在3引脚模式下、必须将控制器置于单通道主模式
(MCSPI_MODULCTRL[单通道]置位)并在总线上仅连接一个 SPI 器件。"

2) 2)我们需要设置哪些寄存器(如果有)来指示我们使用 GPIO 来控制芯片选择(AM3358不控制芯片选择)?

从上面的24.3.2.12节中、我们似乎应该将 MCSPI_MODULCTRL[PIN34]设置为1。  MCSPI_MODULCTRL[单通道]是否应设置为0或1?

3)当使用 GPIO 控制芯片选择(AM3358不控制芯片选择)时、我们是否需要设置/清除 MCSPI_CHxCONF[FORCE]来启动事务?  参考手册似乎 表明我们不需要:

"24.3.2.12 3引脚或4引脚模式
(笑声)

在3引脚模式下、与芯片选择管理相关的所有选项都是无用的:
•MCSPI_CHxCONF[ePOL]
•MCSPI_CHxCONF[TCS0]
•MCSPI_CHxCONF[FORCE]
在此模式下,芯片选择引脚 SPIEN 被强制为‘0’。”

我们根据经验发现、我们确实需要设置/清除 MCSPI_CHxCONF[FORCE](尽管我们认为我们不必这么做)。

下面是我已经完成和发现的一些更多内容(所有这些都是在通过 GPIO 控制芯片选择时):

-当 MCSPI_MODULCTRL[PIN34]=0并且 MCSPI_MODULCTRL[单通道]=1时、McSPI 的所有4个通道在非 DMA 模式下似乎工作正常。  但是、在 DMA 模式下、只有通道1工作。  在除1之外的通道上的 DMA 模式下、我看到芯片选择、但没有时钟。

-如果 MCSPI_MODULCTRL[PIN34]=1且 MCSPI_MODULCTRL[单通道]=1、则所有通道都不起作用。

-如果 MCSPI_MODULCTRL[PIN34]=1并且 MCSPI_MODULCTRL[单通道]=0、通道1适用于 DMA 和非 DMA 模式、但其他通道不工作。  例如、通过查看通道2、对于非 DMA 模式、我看到 MOSI 数据、时钟和芯片选择工作正常、但 MISO 上的数据未正确返回(并且我注意到、在芯片选择无效后、AM3358从不停止输出时钟和数据)。  对于通道2上的 DMA 模式、我只看到切换的芯片选择。

谢谢、

Tim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    工厂团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Biser。  我期待收到工厂团队的回复。