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.

[参考译文] EM1402EVM:主动平衡演示问题

Guru**** 2335130 points
Other Parts Discussed in Thread: EM1402EVM, LAUNCHXL-TMS57004
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/608195/em1402evm-active-balancing-demo-problem

器件型号:EM1402EVM
主题中讨论的其他器件: LAUNCHXL-TMS57004

您好!
在 EM1402EVM/LaunchXL-TMS57004设置中、我在使活动平衡演示正常工作方面遇到问题。

我正在使用演示软件 tms570bms-1.0和 tms570bmsgui-1.0、下载地址为 :www.ti.com/.../tidcbz0

我按照应用手册(tidubi0.pdf)中的详细说明修改了 LaunchXL-TMS57004板、方法是移除 R8/R9并将信号连接到 J4.1/J4.2。

我在 Code Composer Studio 中编译了代码、然后在调试中运行。  当我通过 GUI 应用启用平衡时、我注意到 TMS570代码在文件 emb1428.c 第339行的无限 while (1)循环中挂起。

由于这与 SPI 相关、我尝试注释掉了文件 emb1428.h 中的"#define TMS570SPI"、它看起来会使其在仿真模式下运行 SPI。 我不确定应该是什么或是否重要。

在此模式下、代码不会挂起、平衡似乎部分起作用、因为每4秒从电池读取的电压会轻微下降1秒、这与 EM1402EVM 上的 LED D4闪烁相同。


问题似乎在于、中的低电压电池在这些时间内未接收任何电荷。

我的设置是将18650节串联锂离子电池(1p16s)中的16节串联电池(再将3节串联电池用作单独的12v 电池)。

有人对我应该在哪里解决这个问题有任何建议吗?  在继续进行自定义之前、我希望演示按预期工作。

e2e.ti.com/.../gui1.tif

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

    您尝试使用哪种平衡电流?

    在调试过程中、您能否向我发送代码屏幕截图、说明代码在何处挂起?

    作为后续说明、我将尝试使用4S 来连接12V 电池。 对于3S、在达到该电池的 UV 保护之前、您不能获得太多的电荷。

    如果您用充电电压较高的电池替换该电池、它是否起作用?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价用户="David Wiest JR"]您尝试使用哪种平衡电流?

    我没有设置(在何处设置)充电电流、并假设演示默认为适合测试的内容。
     
    [引用 user="David Wiest Jr"]在调试过程中,您是否可以向我发送代码屏幕截图,说明代码在何处挂起?



    [引用 USER="David Wiest JR">作为未来的提示、我会尝试使用4S 来连接12V 电池。 使用3S 时、在达到该电池的 UV 保护之前、您不能获得太多电荷。[/quot]

    注意到。 现在使用四节电池。

    [报价用户="David Wiest JR"]如果您用充电电压较高的电池替换该电池,它是否起作用?

    现在交换 了几节电池、所有电池电压现在介于3.8V 和4V 之间、并且 GUI 中没有显示过压或欠压。  仍然看不到任何充电电流。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我遇到与 Cliff 相同的问题。 当我在 GUI 上点击"Balancing on"时、它会继续只读取电压、但实际上不平衡任何电池。 它不会消耗任何充电电流。 是否有人找到了解决此问题的方法?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    所有、

    为便于说明、GUI 仅适用于 bq76pl455A、不适用于 EMB 芯片组。 我的理解是、如果您关注 TIDM、GUI 会通过虚拟/仿真通信端口与 TMS570通信、然后 TMS570会发送 SPI 命令(或使用 pl455 GPIO 连接 Bit-bang SPI)。

    是否有人在 SPI 线路或 UART 上放置了逻辑分析仪? 这将有助于我们弄清问题发生在哪里。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我现在对这一点作了进一步的调查。  在文件 EMB1428.c 中的函数 EMB_Stop()中,代码中似乎有问题的部分:

    248 void EMB_Stop (int nDev_ID、int channel)
    249{
    250int nRead;
    251字节 bTemp;
    252
    253switch (channel)
    254{
    255case 1:
    256EMB_SetCS (nDev_ID、nCS_BOTSTACACK);
    257break;
    258case 2:
    259EMB_SetCS (nDev_ID、EMB_BOTS_ID
    
    
    
    、nCS)
    ;264 STACK_CS case 2:255、NCS_CCS_CCS_Break;
    264、NCS_CCS_CK_CCS_CCS_C2000_256;ONCs (nSD_CC_CCS_CCS_CCS_CCS_262)
    266break;
    267case 5:
    268EMB_SetCS (nDev_ID、nCS_MIDSTACK);
    269break;
    270case 6:
    271EMB_SetCS (nDev_ID、nCS_MIDSTACK);
    272break;
    273case 7:
    274 EMB_SetCK_SetCS(nDev_ID、277_MIDSTACK);
    275break;
    276EMBACT_SS_DP_INB 8:
    nCS、nSD_9
    
    
    、
    
    
    nCS case 280;nCS、NCS_STACK_DP_282CS;NCS、NCS DP_DP_ID_DP_282CS;nCS case:nSD_DP_DP_282CS;NCS;nSD_DP_DP_DP_DP_IN_IN_IN_28
    
    285案例11:
    286EMB_SetCS (nDev_ID、nCS_TOPSTACK);
    287break;
    288案例12:
    289EMB_SetCS (nDev_ID、nCS_TOPSTACK);
    290break;
    291案例13:
    nCS 292SetCK CS (nDev_ID、293_TOPSTACK);
    EMBbreak;NCS_300_TOPSTACK
    (nCS)
    
    
    ;NCS Dev 案例29 Dev_150;NCS_TRB
    
    
    150
    ;NCS Dev_300中止295_TOPSIC (nCS);NCS_TRK 295_TRB (nCS、NCS 302_TOPSIC:nCS、NCS、NCS 302_TRB)
    
    303}
    304
    305int EMB_COMMAND = 0x00;
    306
    307 #ifndef TMS570SPI
    //为清晰起见删除了未使用的代码
    331 #else
    332g_ui32EMB1428Status = spiTransferByte (spiREG1、0);
    333 //delayus (200);
    334EMB_SetCS (nDev_ID、0);
    335delayms (2);//需要使电流斜降
    336gioSetBit (gioPORTA、6、1);//RS_EMB128高电平、将1428置于复位状态。
    337if ((g_ui32EMB1428Status &(0xF0))!= 0xA0)
    338{
    339while (1);
    340}
    341 #endif
    342delayus (200);
    343}
    

    以下屏幕截图显示了函数开始时触发 SCLK 首次上升的信号的状态。

    第一个字节启用 NSC_BOT、第二个字节从第332行的 EMB1428读取状态。


    在332行读取到 g_ui32EMB1428Status 中的值为0x80、这与波形中看到的值相匹配。  

    根据 EMB1428数据表、该值的位[7:4]分别表示故障[3:0]。

    列出的故障值1000b 表示"EMB1428仍在等待完成转换(上升沿或下降沿)时的 CS 下降沿"。

    从模拟迹线上可以看出(黄色为 SCLK、但太小、看不到蓝色已完成)、时基更长时、DONE 信号确实很高、大约需要120mS 才能衰减至0V。

    但第336行:

    gioSetBit (gioPORTA、6、1);//RS_EMB128高电平、将1428置于复位状态 

    这实际上会导致 DONE 线路在 SPI 命令之后变为低电平。

    因此、所发生的情况是代码看不到值0xA0、该值被列为"无故障条件"、因此代码会无限期停留在 while (1)处、从而有效挂起;

    我对这种情况感到困惑、对我来说、有些事情似乎并不正确。  我不熟悉此系列的 TI 芯片,我很难准确地描述错误以及为什么评估板和代码不能“开箱即用”。

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

    没人知道吗?  :-)

    我确实注意到此网页:

    http://www.ti.com/tool/TIDM-TMS570BMS#0

     我从其中下载了示例代码、显示 了一个评估板的图片、该评估板 与我拥有的评估板稍有不同、如本网页所示:

    http://www.ti.com/tool/em1402evm

    电路板是否需要不同软件存在两个问题?

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

    我对延迟回复表示歉意-回复通知已在我的收件箱中埋没。

    调试很好! 这些当然是有用的波形。

    TIDM 中使用的 EVM 是电路板的旧"工程"版本、这是开发过程中早期迭代的一个版本。 这款 EVM 是最新的、最出色的。 因此,当然可能会有一个影响到它的变化。 让我尝试深入了解一下旧版本的原理图-它应该在我们的服务器中的某个位置存档(不幸的是、不是我创建了电路板。 如果是、我可以把它拉起来!)

    如果可能、您可能需要尝试一件事:添加一些延迟、以便 CS 不会更改状态。 我想它应该只有几百毫秒。

    我知道这是比较常见的情况(转换器将电流斜升至0并因此更改"Done"引脚的状态所需的时间存在问题)