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.

[参考译文] TMS570LS3137:用于主动电池平衡的 MIBSPI 通信

Guru**** 2540720 points
Other Parts Discussed in Thread: HALCOGEN, TMS570LS0714, TMS570LS3137, EM1402EVM

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/812432/tms570ls3137-mibspi-communication-for-active-cell-balancing

器件型号:TMS570LS3137
主题中讨论的其他器件:TMS570LS0714EM1402EVMHALCOGEN

您好!

我在 TMS570LS3137中执行主动电池平衡。 可用的示例代码在具有 SPI 通信的评估板上工作。 现在、我想通过 MIBSPI 而不是 SPI 来实现它。  

在调试过程中、代码会在以下方面被击中:

G_ui32EMB1428Status = spiTransferByte (mibspiREG1、(EMB_COMMAND<<4));

if ((g_ui32EMB1428Status &(0xF0))!= 0xA0)//done =高电平、enable =低电平
  {
  while (1);
  }

g_ui32EMB1428Status  值为0xD8。  

我正在使用  代码附加 halcogen 文件。 请仔细阅读、如果有任何配置设置、请告诉我、我做的是错误的。

e2e.ti.com/.../4263.18_2D00_6_2D00_mibspi.zip

谢谢、

此致、

Gargi Pancholi
  

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

    Gargi 您好!

    在 MibSPI 模式中、多缓冲器 RAM 用于保持传输和接收的数据、控制和状态信息。 TXRAM 包含复制 SPIDAT1寄存器的发送数据条目。 您不能将 emb1428.c 中为 SPI 编写的函数用于 MibSPI。

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

    感谢王先生的答复:  

    有源电池平衡算法可与 TMS570LS3137中的 SPI 协议正常配合使用。 我们设计了 TMS570ls0714 PCB 板。 在该电路板中、DAC 设置由 SPI 协议完成、开关矩阵平衡命令由 MIBSPI 设置。 首先、我们将在具有 MIBSPI 的 TMS570ls3137中实施有源电池平衡。 但它无法正常工作。

    因此、我们有几个与 mibspi 协议相关的问题、如下所示:

    1) 1)根据您的答案,我们无法使用此 API g_ui32EMB1428Status = spiTransferByte (mibspiREG1,(EMB_COMMAN<<4));。 我们是否应该使用   mibspiSetData (mibspiREG1、0、&EMB_cmd);此 API 来检查电池平衡?

    2) 2)根据我们的原理图、SPI 通信用于 DAC 设置、MIBSPI 用于发送均衡命令以切换矩阵。 DAC 输出将根据我们设置的电流来提供。 但 MIBSPI 未正确发送电池平衡命令。 您能告诉我们 TMS570ls0714 PCB 板的 MIBSPI 设置吗?

    我们将附上原理图供您参考。

    e2e.ti.com/.../2604.ACB-Schematics.pdf

    谢谢、此致、

    Gargi pancholi

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

    您好 Gargi,

    您可以使用:spiSetData (spiREG1、0、&EMB_cmd);

    请 将 MibSPI1配置为 SPI 兼容模式、 使其运行方式与标准平台 SPI 模块完全兼容、并确保与其他 SPI 完全兼容。

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

    您好、Wang、

    感谢您的支持。

    通过 spiSetData(siREG1, 0,&EMB_cmd);,您是否意味着我们可以使用此 API 来代替此 API。

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

     

    int EMB_command=0x05;

    uint16 EMB_cmd;

     

    /*用户代码结束*/

     

    int main (空)

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

     

        EMB_cmd = EMB_COMMAND <<4;

     

        gioInit();

        

            spiDAT1_t 数据通信 fig1_t;

            dataconfig1_t.CS_hold = false;

            dataconfig1_t.WDEL  = true;

            dataconfig1_t.DFSEL  = SPI_FMT_0

            dataconfig1_t.CSNR  = 0xFE;

     

            spiInit();

     

     

            while (1)

            {

                SpiTransmitData (spiREG1、&dataconfig1_t、16、&EMB_cmd);

            }

        }

     

    如果正确、我希望在 TMS570LS3137中使用此功能实现主动电池平衡。

    首先、我对芯片选择有疑问。

    在示例代码中、它们使用 GPIO4 (CS_store)和 GPIO7 (CS_OE)作为向 EMB1428发送平衡命令的片选。

    为此、我将使用 CS1和 CS2进行如下连接以进行芯片选择。

    TMS570LS3137                      EM1402EVM

    SPI1SIMO                              GPIO3/MOSI_1

    SPI1SOMI                             GPIO4/MSO_1

    SPI1CLK                              GPIO2/SCLK_1.

    CS1                    GPIO1/CS_OE

    CS2                    GPIO0/CS_STORE

    GND                    GND

    GPIO6                  GPIO5/RS_EMB1428

    GPIO1                   FAULT_INT

    HALCOGEN 中的 CS1和 CS2功能是 SPI。

     

    请核实并告知我是否需要进行任何更改。

    谢谢、此致、

    Gargi  

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

    您好、Gargi、

    您可以为您的应用使用 SPI 兼容模式。

    一些从器件要求片选信号在几个连续的数据字传输期间保持持续有效。 其他从器件要求在连续数据字传输之间禁用片选信号。

    Hercules MCU 具有称为 CSHOLD 的功能。 如果一个字的控制字段中的 CSHOLD 位置位、则在下一个控制字段加载新的芯片选择信息之前、芯片选择信号将不会被禁用。

    因此、您可以使用 CSHOLD 功能、而不是使用 GIO 作为 SPI 芯片选择。

    如果您不想修改示例代码、使用 GIO 引脚作为芯片选择也是可以的。