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.

[参考译文] RM44L520:3线 SPI 支持 HALCoGEn? (SISO 引脚)

Guru**** 2322890 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/587712/rm44l520-halcogen-support-for-3-wire-spi-siso-pin

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

大家好、我正在使用 HALCoGen 为 RM44芯片设置项目。

我将从使用3线 SPI 连接的模拟器件连接到 PLL。
三线制 I 表示 CLK、DATA 和 CS。
但是、HALCoGen 的 SPI 驱动程序似乎等待读取标志:

uint32 spiTransmitData (spiBASE-t * SPI、spiDAT1_t * dataconfap_t、uint32 blocksize、uint16 * srcbuff)
{
//此处跳过代码以实现简单化*/ 
/*SAFETYMCUSW 567 S MR:17.1,17.4 "需要指针增量"*/ srcbuff +; /*SAFETYMCUSW 28 D MR:NA "硬件状态位读取检查"*/ while ((SPI->FLG & 0x00000100U)!= 0x00000100U) { } /*等待*/ SpiBuf = SPI->BUF; blocksize-; } 返回(SPI->FLG & 0xFFU); }

根据我的理解、红色代码等待 RXINTFLG 被置位、这种情况永远不会发生、因为它使用3线制。

我是否正确理解了这一点? 如果是、HALCoGen 驱动程序不支持3线模式、这有点奇怪。

是否有办法解决这个问题?

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

    您好、Audun、

    TRM 中的三引脚模式通常意味着不使用 CS (芯片选择)。 SPI 主器件为 SPICLK 引脚提供串行时钟。 数据在 SPISOMI 引脚上传输、在 SPISOMI 引脚上接收。 所有 SPI 器件应至少具有4个引脚(CS、CLK、SIMO、SOMI)。

    如果您不使用 SOMI 并且只 将数据写入 SPI 器件、则需要修改 HALCoGen 生成的代码。 但这种配置并不常见。

    此致、

    问  

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

    是的、我注意到 TI 的 TRMS 将 SOMI/SIMO/CLK 称为* 3引脚*模式。 但是,*3线*模式也是一项功能(SDIO、CS、CLK)。
    模拟器件在多个器件(PLL、ADC、DAC)上使用此设计。
    Wikipedia 还指出、此设计并不常见、但我一直看到它在使用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    后续问题:

    是否有任何标志/位指示传输完成?
    有几个与缓冲器(TXBUX)状态相关的标志/位、但我正在寻找可用于检测一个字已完全传输的东西。

    注意:对于半双工/3线模式、似乎有一些硬件支持、它只是无法实现它的 halcogen。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Audun、

    您可以使用 TXINTFLG (SPIFLG 的第9位)。 该位用作中断标志、指示发送缓冲区(TXBUF)为空(完全发送)。

    您可以修改 HALCoGen 为3线(CS、SIMO、CLK)模式生成的代码。

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

    在发送期间、我尝试观察到这个位(TXINTFLG)、看起来它总是很高。

    我在解释有关此位的文档时遇到了一些问题、但您的评论有所帮助。
    更具体地说:当 TXBUF 占空(被载入移位寄存器)时、这个位会变为高电平吗?当移位寄存器的内容已经在串行线路上被移出时、这个位会变为高电平吗?

    半双工:
    在 TRM (文档 spnu608、第25.2.17章)中、有一节介绍了半双工模式。
    这正是我需要的、但有一句话我不理解:
    ****
    但这将要求 SOMI 和 SIMO 线在芯片中绑定以支持
    仅 TX 或仅 RX 功能。
    ****

    "粘合剂"是什么意思? 这是否意味着两个引脚仍必须物理连接到 MCU 外部的某个器件? 如果是、是什么?

    感谢您的评论、这会消除许多不确定性。