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.

[参考译文] TMS570LC4357:SPI 通信

Guru**** 2393725 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/1333368/tms570lc4357-spi-communication

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

我希望         使用 驱动程序 函数 uint32 spiTransmitData (spibase_t *spi、spiDAT1_t *dataconfig_t、uint32 blocksize、uint16 * srcbuff);uint32  spiReceiveData (spibase_t *spi、 spidat1_t *dataconfig_t、uint32 blocksize、uint16 * destbuff); 只需  解释   在 代码中   的使用和构建通信 ,解释     我 将尝试  构建的逻辑 SIR 代码  

此致

耶瓦

  

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

    e2e.ti.com/.../5226.SPI.CODE.txt

    这段 代码 我 已经 写了  spiTransmit 数据函   数和 SPI 接收数据函数 采取 spi.c 驱动程序代码 SIR 直接 调用从 寄存器 spiREG3的函数,将工作 SIR ,请 告诉我  

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

    您好、Jeev、

    此 代码 我 已经 编写了  spiTransmit 数据函   数和 SPI receive data 函数 采用 spi.c 驱动程序代码 SIR 直接 从 寄存器 spiREG3调用函数,将工作 SIR, 请 告诉我 [/报价]

    您应确保在 HALCoGen 中启用 SPI3驱动程序、

    此外、您应确保为 SPI3配置所需的参数、

    此外、您应该启用 SPI3引脚的引脚多路复用、

    完成这些操作后、通过 SPIREG3调用发送和接收函数将起作用。

    --
    谢谢。此致、
    Jagadish。

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

    感谢 您  的 回答 ,但如果 我 尝试  使 两个 SPI 通信像 一个 SPI 作为 主    ,另一个作为从,使用 相同的 功能 它 可能 SIR ,例如 SPI1 作为主, SPI2 作为 从。 在 halcogen CS 中 选择 引脚使能,使用 相同的 控制器  

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

    您好!

    感谢 您  的 回答 ,但如果 我 尝试  使 两个   SPI 通信像一个 SPI 作为 主    接口,另一个作为从接口    ,使用相同的功能有可能 SIR ,例如 作为主接口的 SPI1,作为 从接口的 SPI2。 在 halcogen CS 中 选择 引脚使能,使用 相同的 控制器 

    可以、您可以使用相同的函数。 您只需要更改寄存器基地址、对于  SPI3为 spiREG3、 对于 SPI1为 spiREG1。

    但还要记住一点、在主器件侧、数据会在您调用传输函数后立即开始移位、但在从器件侧、它不会立即传输数据、因为从器件需要主器件提供时钟。 从器件将等待、直到主器件与时钟一起发送其数据、然后从器件也并行发送数据、例如全双工通信。

    --
    谢谢。此致、
    Jagadish。

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

    halcogen 设置 相同 只知道 SIR , SPI1,SPI3,上一个 什么 你 说的  SPI3 , 在 代码中 两个独立的传输函数寄存器 和 接收函数,  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 代码中   ,两个独立的传输函数分别用于寄存器和接收函数, 

    很抱歉、我不明白您的观点。

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

       执行代码后没有 SIR 一次 ,如果 我遇到 任何 问题 ,   我会给你发短信,但最后一个怀疑 SIR ,我会问 新的 线程 有关 SCI 协议  

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

    尊敬的 SIR  :如果您 有   与  使用 spiTransmitData 和 spiReceiveData 进行 SPI 通信相关的代码       ,这是测试和工作的,请通过 引用  我将构建 我的代码向我发送 SIR  

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

    您好、Jeev、

    请参阅以下常见问题解答中提供的 SPI 示例:

    (+)[常见问题解答] TMS570LC4357:适用于 Hercules 控制器的示例和演示(例如 TMS570x、RM57x 和 RM46x 等)-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    在这些示例中、我使用了"spiTransmitAndReceiveData"函数、按照类似的方式、您可以使用"spiTransmitData"函数。

    它们之间的区别是"spiTransmitAndReceiveData"函数将同时执行发送和接收、 这意味着如果主器件发送一些数据、则从器件也会发送一些数据、因为 SPI 是全双工通信、因此此函数将从 TX 缓冲区发送数据、并将数据接收到 Rx 缓冲区中。

    但是、如果您在主器件侧使用"spiTransmitData"此函数、那么它将发送数据、但它将忽略从器件接收的数据。

    --
    谢谢。此致、
    Jagadish。

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

    感谢     您提供示例以及您的 支持  

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

    while ((SPI->FLG & 0x00000100U)!= 0x00000100U)
    {
    } 亲爱的 先生,      在  这  while 循环中它被击中如何  解决 这个 问题  代码 也 我  在 前面的 消息本身, 帮助 我   克服  这个 问题,  为什么 会发生这种情况  

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

    如何 解决 这个 问题  ,先生,请帮我

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

    您好、Jeev、

    我们轮询的该位只不过是 RXINTFLG:

    如果该位未置位意味着没有可用的新数据。

    我想知道、您如何操作器件主设备或从设备、如何发送新数据?

    请共享用于调试的代码?

    --
    谢谢。此致、
    Jagadish。

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

    好, 亲爱的  先生 ,我已经附上了 我完整的文件  e2e.ti.com/.../TWO_5F00_SPI_5F00_TEST.zip

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

    您好、Jeev、

    您的项目看起来非常混乱。

    在 HALCoGen 中、您将启用 SPI2和 SPI4:

    所以、您的初始化代码是为 SPI2和 SPI4生成的、

    不过、您是否正在尝试在 SPI1和 SPI3上发送/接收数据?  

    这是如何工作的? 在不同 SPI 上进行不同 SPI 的初始化和发送/接收数据?

    --
    谢谢。此致、
    Jagadish。

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

    对不起 ,先生,首先 我选择了 SPI1 和 SPI3       ,然后我更改了 SPI2和 SPI4,我错过了   在 代码中     更改 SIR 的一些地方,谢谢先生,我将更改 检查,先生。