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.

[参考译文] LP-MSPM0G3519:MSPM0G3519 和 TSC2046E 之间的 SPI 帧长度兼容性

Guru**** 2815505 points

Other Parts Discussed in Thread: TSC2046E

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1605815/lp-mspm0g3519-spi-frame-length-compatibility-between-mspm0g3519-and-tsc2046e

器件型号: LP-MSPM0G3519
主题中讨论的其他器件: TSC2046E

大家好!

关于 SPI、有两个问题。

(1)–1
SPI 帧长度不能设置为大于 16
在某些情况下、SPI 数据长度大于 16 位。
例如、关于 TSC2046E、帧数据长度为 24 位。

是否可以实现超过 16 个的 SPI 帧。
如果可能、请告诉我们方法。

(1)–2
无法动态设置 SPI 帧长度
是否可以动态更改 SPI 帧长度。
如果可能、请告诉我们方法。
我们在 DL_SPI_transmitDataBlocking16 之前尝试了“DL_SPI_setDataSize"。“。

(2)
当连续发送 SPI 帧时、/CS(芯片选择)变为高电平。
是否可以避免复数帧之间的高/CS?
有一个函数“DL_SPI_setDataSize"。“。 我们尝试了该功能来更改传输帧长度。
但是、我们不能动态更改帧数据长度。
我们在 DL_SPI_transmitDataBlocking16 之前称为“DL_SPI_setDataSize"。“。
我们使用复数形式“DL_transmitData16"或“或“DL_SPI_fillTXFIFO32"。“。

此致、

ITO

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

    尊敬的 Ito:

    我会从我身边检查,并回复你明天。 谢谢!

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

    尊敬的 Ito:

    [引述 userid=“584182" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1605815/lp-mspm0g3519-spi-frame-length-compatibility-between-mspm0g3519-and-tsc2046e

    (1)–1
    SPI 帧长度不能设置为大于 16
    在某些情况下、SPI 数据长度大于 16 位。
    例如、关于 TSC2046E、帧数据长度为 24 位。

    是否可以实现超过 16 个的 SPI 帧。
    如果可能、请告诉我们方法。

    [/报价]

    从数据中可以看出、我们最多只能在硬件级支持 16 位。

    [引述 userid=“584182" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1605815/lp-mspm0g3519-spi-frame-length-compatibility-between-mspm0g3519-and-tsc2046e ](1)–2
    无法动态设置 SPI 帧长度
    是否可以动态更改 SPI 帧长度。
    如果可能、请告诉我们方法。
    我们在 DL_SPI_transmitDataBlocking16..之前尝试了“DL_SPI_setDataSize"</s>“

    根据我的理解、是的、您可以使用此 API 来更改帧长度

    当 SPI 帧持续发送时、/CS(芯片选择)变为高电平。
    是否可以避免复数帧之间的高/CS?
    有一个函数“DL_SPI_setDataSize"。“。 我们尝试了该功能来更改传输帧长度。
    但是、我们不能动态更改帧数据长度。
    我们在 DL_SPI_transmitDataBlocking16 之前称为“DL_SPI_setDataSize"。“。
    我们使用复数“DL_transmitData16"或“或“DL_SPI_fillTXFIFO32"。“。

    有一种方法可以使传输具有连续时钟和 CS:您可以看到 SPH = 1。 在这种情况下、您可以尝试发送 16 位+ 8 位数据以实现 24 位

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

    1) 上次我尝试这一点,我不得不禁用/启用 SPI 单元识别帧大小的变化。 我建议您将其发送为 3 个字节。

    2) 我建议为/CS 使用 GPIO、而不是硬件/CS。 这样你就知道(肯定的)什么时候它将被断言(取消)。

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

    您好、Zoey 和 Bruce、

    感谢你的帮助。

    我想尝试在保持 CS 置为有效的同时发送三个字节 (8 位× 3)。
    您是否有任何样片展示了如何在保持 CS 的同时以连续时钟发送数据、或者如何使用 GPIO 引脚作为 CS 信号?
    过去的 E2E 常见问题解答参考也可以使用。
    此致、
    ITO

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

    (1) 只是移位和与【注意字节顺序】的问题、(2) 只是在适当的时间清除/设置 GPIO。

    我没有看到任何这样的 TI 示例。

    Keith Barkley 贡献了 GRLib 的端口(此处)、该端口与 GPIO /CS 对话 SPI、并以字节形式写入 16 位单元。 有趣的函数位于 LcdDriver 目录中。

    去年、我将 SLAA208 改编为 MSPM0+ SPI(此处)、后者也可以执行这两项操作。

    这些不是为了展示这些特定的方法而写的、而只是一个副产品、所以你必须仔细研究你不感兴趣的东西。