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.

[参考译文] TMS570LS1224:MibSPI 菊花链问题

Guru**** 2539500 points
Other Parts Discussed in Thread: UCC5870-Q1, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1038548/tms570ls1224-mibspi-daisy-chain-problem

器件型号:TMS570LS1224
主题中讨论的其他器件:UCC5870-Q1HALCOGEN

我将  UCC5870-Q1 与 TMS570LS1224PGE 器件搭配使用。  我尝试通过 HalCogen 和 Code Composer Studio 为 SPI 菊花链从器件配置 MibSPI。  

根据数据表、SPI 菊花链需要如下所示。 我无法根据数据表生成 SDI 线路输出。  

请告诉我如何使用 HalCoGen 和 CCS 配置 SPI 菊花链的数据传输。  

我将获得以下输出、而不是 SPI 菊花链配置所需的输出。

HalCoGen 初始化  

CCS 代码:

/*用户代码开始(0)*/
/*用户代码结束*/

/*包含文件*/

#include "sys_common.h"

/*用户代码开始(1)*/
#include "mibspi.h"
/*用户代码结束*/

/**@fn void main (void)
*@应用程序主函数简介
*@请注意、默认情况下、此函数为空。
*
*此函数在启动后调用。
*用户可以使用此函数来实现应用程序。
*

/*用户代码开始(2)*/
/*用户代码结束*/

int main (空)

/*用户代码开始(3)*/
uint16_t txBuffer[]={0XB900、0XB900、0XB900、0XB900、0XB900、0XB900、 0XB900、0XB900、0XB900、0XB900、0XB900}; //{0x0001、0x0002、0x0003、0x0004、0x0001、 0x0001、0x0001、0x0001、0x0001、0x0001};

mibspiInit();/*初始化 SPI */

// mibspiEnableLoopback (mibspiREG1、Digital_LBK);

mibspiSetData (mibspiREG1、0、txBuffer);

mibspiTransfer (mibspiREG1、0);


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

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

    您好!

    对于 SPI 菊花链配置、六个 SPI 器件共享相同的 SPI_CLK 和 SPI_CS。 SDI 和 SDO 应按如下方式进行连接:

    MCU SPI_SIMO --> DSI Device1 SDO --> SDI 器件2 SDO -->... --> SDI 器件6 SDO --> MCU SPI_SOMI。

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

    根据我们的配置、存在三个 SPI 从器件。  

    MCU SPI_SIMO -->设备1 SDI1

    器件1 SDO ->器件2 SDI  

    器件2 SDO -> 器件3 SDI

    器件 3 SDO -> MCU SPI_MOSI

    让我知道如何配置 HalCoGEN 和 CCS 来实现这一点。

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

    SPI 菊花链设置没有特殊的 HALCoGen 配置。 从 TMS570的角度来看、它不知道器件是否是菊花链。 您可以使用相同的 SPI 数据传输 API 向菊花链器件发送数据。

    UCC5870遵循16位协议、利用特定的命令数据帧、以高达4MHz 的速率进行通信。 通信帧从 NCS 下降沿开始、到 NCS 上升沿结束。 SPI 时钟在0 (CPOL=0)时空闲、并在下降沿为 SDI/SDO 数据(CPHA=1)计时。

    UCC5870具有表6-1中列出的特殊时序要求:

    您可以使用 HAlCoGen 调整 TMS570端的延迟:

    16位数据帧包括三个数据字段:芯片地址(CHIP_ADDR)、命令类型(CMD)和一个8位数据(DATA)。 无论系统配置如何、都将使用芯片地址(CHIP_ADDR)位。 但是、在使用菊花链或独立从配置时、系统中所有器件均使用0x0或0xF。  

    请参阅有关数据帧的 UCC5870数据表。

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

    感谢您的回答。 我可以获得用于实现相同功能的 CCS 代码吗?

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

    您好、Sakthi、

    我没有这个。 您可以使用 HALCoGen 生成代码。