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/TMS570LS1224:使用 SPI 模块

Guru**** 2865290 points

Other Parts Discussed in Thread: TMS570LS1224, HALCOGEN, TMS570LS0432

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/927324/ccs-tms570ls1224-working-with-spi-module

器件型号:TMS570LS1224
主题中讨论的其他器件: HALCOGENTMS570LS0432

工具/软件:Code Composer Studio

你好

我使用的是 TMS570LS1224微控制器、需要通过 SPI 模块发送不同类型的数据包。我的问题是如何指定要用于代码特定部分的数据包?

此外、如何在 halcogen 中生成具有不同长度和数据类型的不同数据包?

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

    您好、Nika、

    该器件支持4种独立的数据字格式、允许配置单独的数据字长度、极性、相位、位速率等 发送的每个字都可以通过 SPIDAT1控制字段中的 DFSEL[1:0]位来选择要使用的数据格式。

    数据格式0、1、2和3可通过 SPIFMTx 控制寄存器进行配置。

     \

    因此、您可以选择下一次传输时使用的格式:

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

    非常感谢 QJ Wang

    在这些设置中、为什么使用 SPI2部分?它与 SPI1部分不同吗? 此外、您在代码中提到您使用的是 SPI2而不是 SPI1、在哪里?

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

    您好、Nika、

    只是一个示例。 数据格式部分对于 SPI1、SPI2、……MibSPI5是一样的。


    /*用户代码开始(2)*/
    UINT16 TX_Data_Master[16]={0x01、0x02、0x03、0x04、0x05、 0x06、0x07、0x08、0x09、0x0A、 0x0B、0x0C、0x0D、0x0E、0x0F、 0x10};
    UINT16 TX_Data_Slave[16]={0x11、0x12、0x13、0x14、0x15、 0x16、0x17、0x18、0x19、0x1A、 0x1b、0x1C、0x1D、0x1E、0x1F、 0x20};
    UINT16 RX_Data_Master[16]={0};
    UINT16 RX_Data_Slave[16]={0};
    /*用户代码结束*/

    void main (void)

    /*用户代码开始(3)*/

    spiDAT1_t 数据通信 fig1_t;

    dataconfig1_t.CS_hold = false;
    dataconfig1_t.WDEL = true;
    dataconfig1_t.DFSEL = SPI_FMT_0;
    dataconfig1_t.CSNR = 0xFE;


    /*通过 CPSR 启用 CPU 中断*/
    _enable_IRQ ();

    /*根据 GUI 配置初始化 SPI 模块
    * SPI1 -主器件(SIMO、SOMI、CLK、CS0)
    * SPI2 -从器件(SIMO、SOMI、CLK、CS0)
    ***/
    spiInit();

    /*通过中断模式启动 SPI2发送和接收*/
    SendspiAndGetData (spiREG2、&dataconfig1_t、16、TX_Data_Slave、RX_Data_Slave);

    /*通过轮询模式启动 SPI1发送和接收*/
    TransmitAndReceiveData (spiREG1、&dataconfig1_t、16、TX_Data_Master、RX_Data_Master);

    while (1);
    /*用户代码结束*/

    请参阅 TMS570LS0432的 SPI 主/从示例。