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.

[参考译文] CCS/TM4C1294NCPDT:ROM_SSIConfigSetExpClk -我应该使用什么协议?

Guru**** 2455560 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/640254/ccs-tm4c1294ncpdt-rom_ssiconfigsetexpclk---what-protocol-should-i-use

器件型号:TM4C1294NCPDT

工具/软件:Code Composer Studio

您好!

我的 Tiva 必须将几个字节作为主器件发送到 SPI 从器件。  

根据从器件数据表、时序应如下所示:  

在 ROM_SSIConfigSetExpClk 中、第三个参数是协议、可以是:

SSI_FRF_MOTO_MODE_0

SSI_FRF_MOTO_MODE_1

SSI_FRF_MOTO_MODE_2

SSI_FRF_MOTO_MODE_3

SSI_FRF_TI

SSI_FRF_NMW

1.如何选择协议?

在我的项目中、SPI 从 PD3 (时钟)、PD1 (MOSI)、PD0 (MISO)发送。

我使用的是 SSI2。 我对吗?

3.是否必须使用 SSIAdvModeSet?  示例代码中未提及。  

谢谢、

Zvika  

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

    您应该使用 SSI_FRF_MOTO_MODE_0。
    2.是的、PD3 (SPICLK)、PD1 (SPITX)和 PD0 (SPIRX)用于 SSI2
    3、不、我认为您不需要使用高级模式。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles、

    根据 spmu289d.pdf 中的示例代码:

    //
    //启用 SSI 模块。
    //
    SSIEnable (SSI0_BASE);
    //
    //发送一些数据。
    //
    i32Idx = 0;
    while (pcChars[i32Idx])

    SSIDataPut (SSI0_BASE、pcChars[i32Idx]);
    i32Idx++;


    我是否应该标记邮件结束? 如何操作?
    我的从器件有3个寄存器、每个寄存器具有不同的数据长度。
    我认为上述样本仅适用于8位长度寄存器。 我对吗?

    谢谢、
    Zvika
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    示例说明了如何发送 ASCII 字符串。 它将继续发送、直至到达 ASCII 代码为0的 NULL。 请参阅下的其他示例 \examples\peripherals\SSI。

    您的从器件具有不同的数据长度、这意味着什么? 我不知道您有什么从器件。 这三个寄存器是什么、每个寄存器有多长时间? 您需要设置与三个寄存器中最小长度匹配的 SSI 模块数据长度。 假设这三个寄存器分别为8位、16位和24位、那么您需要将 SSI 设置为8位。 要与16位长度的寄存器通信、您需要写入两次。 需要写入三次。