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.

[参考译文] MSPM0G3507:MSPM0G3507 SPI 从模式将一帧中的输入输出组合在一起

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1619768/mspm0g3507-mspm0g3507-spi-slave-mode-combine-input-output-in-one-frame

器件型号: MSPM0G3507

您好:

是否可以使 MSPM0G 3/4 线 SPI 从模式适用于以下输入: SPI.png

  1. 一个帧始终为 16 位。 时钟速度低于 500kHz。
  2. 在正常情况下、它从主器件接收整个帧 16 位、8 位输入加 8 位输入数据  
  3. 在某些情况下、它接收带有 8 位指令的前半帧、根据上升沿的时钟、预加载的 8 位输出数据应立即呈现在输出引脚上、并馈送到主器件。

是否可以实施? 3 线 Pico 似乎无法实现? 可接受的情况是 PICO 连接到 POCI 以构建输出吗? 在指令 8 位的前半帧的周期中、输出引脚必须为高阻态。

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

    在这种情况下、可能需要将 PICO 连接到 POCI、并根据之前的 8 位数据在从器件中配置 POCI 引脚。 这是我能想到的最简单的方法。

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

    好的、谢谢。 如果可以、请详细说明如何使用代码示例-  

    帧大小、FIFO 电平、高阻态、传输触发、环回避免等全部包含在 PICO 配置、POCI 配置、IRQ 处理程序中

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

    您可以根据 IOMUX 寄存器中的 PF 更改引脚功能、从未连接到 SPI 功能

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

    您好:

    有人能帮助解决另一个问题 吗?在外设模式下、Pico 中断状态下、对于 Motorola 模式、是否可以使用芯片选择 CS“完成“(或者说 cs_deassert)中断 IIDX 来知道物理帧已结束?  

    此致  

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

    尊敬的 EK:

    很抱歉晚才回复。 我刚回到办公室。

    CS 无法触发中断。

    我可以想到的是,这是:

    • 可以将 SPI 帧设置为 8 位
    • 启用接收中断
    • 每次接收到 8 位数据时、检查该命令是否为写入或读取
      • 如果写入、则将 PICO 更改为 Hi-Z
      • 如果读取、则保持 PICO 作为 SPI 功能

    我不知道您为什么需要 CS 中断功能。 如果您必须这样做、权变措施可以使用另一个输入 IO 重新连接到硬件中的 CS 引脚。 并启用此输入 IO 的中断来监控此处的情况。

    此致、

    Zoey

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

    您好、Zoey、

    是的、这种解决方法也很好。 谢谢。

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

    您好、Zoey:

    由于 Hi-Z 设置** DL_GPIO_enableHiZ (GPIO_SPI_IOMUX_PICO) **对我不起作用、您能帮您确切的代码句子吗?

    它应该像 IOMUX->SECCFG.PINCM[GPIO_SPI_IOMUX_PICO]=句子

    但不清楚如何使用:
    IOMUX_PINCM_PF_MASK
    IOMUX_PINCM_PF_OFS
    IOMUX_PINCM_PC_OFS
    IOMUX_PINCM_PC_MASK
    IOMUX_PINCM_PC_UNCONNECTED
    IOMUX_PINCM_PC_CONNECTED

    假设已经存在:
    #define GPIO_SPI_PICO_PORT GPIOB
    #define GPIO_SPI_PICO_PIN DL_GPIO_PIN_8
    #define GPIO_SPI_IOMUX_PICO (IOMUX_PINCM25)
    #define GPIO_SPI_IOMUX_PICO_FUNC IOMUX_PINCM25_PF_SPI1_PICO。

    提前感谢。

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

    尊敬的 EK:

    我建议不要启用 Hi-Z 模式、而是更改引脚功能。

    请使用以下代码:

      DL_GPIO_initPeripheralOutputFunction (
        IOMUX_PINCM25、 IOMUX_PINCM25_PF_UNCONNECTED);
    执行此代码行后、GPIO 不会连接到任何模块、默认设置为 Hi-Z。
    此致、
    Zoey