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.

[参考译文] MSP-EXP430F5529LP:具有BQ76PL536EVM-3通信的BMS

Guru**** 2538930 points
Other Parts Discussed in Thread: BQ76PL536, BQ76PL536EVM-3, MSP-EXP430F5529LP, MSP-TS430PN80USB, MSP430F5529

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/573465/msp-exp430f5529lp-bms-with-bq76pl536evm-3-comms

部件号:MSP-EXP430F5529LP
主题中讨论的其他部件:BQ76PL536EVM-3,BQ76PL536 MSP-TS430PN80USBMSP430F5529

您好论坛

我正在尝试使用BQ76PL536EVM-3和MSP-EXP430F5529LP使用应用报告SLAA478来制作电池管理系统。

到目前为止,我已经从 'PL536'上移除了电阻R49,R53和R60,并且我修改了可用软件,以使用WFP 1.5 代替WFP 1.1 (在MSP430 LP上)来获取'PL536的故障信号。

但是,当所有数据都连接好后,我看不到任何数据通过USB发送到主机PC (使用PuTTY验证)。 事实上,使用CCS,我看不到3个bq76PL536器件中的任何器件在代码中被分配了地址。

但是,实际上MSP430 LP (WFP LP)上的红色LED 1.1 指示灯一直亮起(表示MSP和BQ之间存在连接/通信问题)。 此外,连接到'PL536 EVM的某些电池似乎正在通过其平衡电阻器放电,即使它们的电压低于包装中的其它电池。

是否有人经历过这种情况? 是否有人有解决方案?

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

    您好,

    由于您使用的是MSP-EXP430F5529LP而不是MSP-TS430PN80USB,因此我建议仔细阅读 SLAA478中的1.1 部分 ,以确保BQ76PL536EVM-3和MSP-EXP430F5529LP之间的所有连接都正确无误。 然后,使用原始的未更改的提供代码,尝试在修改代码/连接之前使示例工作。 请记住,MSP-TS430PN80USB和MSP-EXP430F5529LP之间的USB接口不同。 有关 详细信息,请参阅“LaunchPad用户指南”中的2.2 3节。 在SLAA478的2.1 3节中,它讨论了通信端口以及用户必须如何在'main.h'文件中定义它。 默认情况下,USB接口已被选中,这就是您在UART/串行端口上看不到任何内容的原因。

    有关平衡电阻器的相关问题,我建议在 电池管理-电量表论坛上发布BQ76PL536的这些类型的问题

    此致,

    詹姆斯

    MSP客户应用程序

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

    1)是的,我已经在BQ76PL536EVM-3和MSP-EXP430F5529LP之间建立了正确的连接,如应用程序的第1.1 节所示。 我已进行表1和表2中提供的所有连接。

    2)我尝试使用原始代码,但发生了同样的情况。 在这种情况下,我无法连接故障信号,因为代码需要连接到MSP430上的WFP 1.1 ,但此引脚在LaunchPad上已连接了一个LED。 我原以为将故障信号重新分配给未使用的针脚(WFP 1.5)会解决问题,但没有解决。

    3) SLAA478中的Section 2.1 3引用的'main.h'文件中的代码部分如下:

    //通信协议定义
    //#定义UART_COMM
    #define USB_COMM
    #define MAX_STR_LENGTH 128
    // UART的定义
    #ifdef UART_COMM
    包括"UART.h"
    #define MCLK_FREQ 800万 // MCLK frequency of MCU,in Hz
    #endif
    // USB文件的定义
    #ifdef USB_COMM
    #include "..\sourcecode\USB_Common\descriptors.h"
    包括"USB_Common\USB.h" // USB特定功能
    #include "USBCDC_构造.h"
    #define MCLK_FREQ USB_MCLK_FREQ // MCLK frequency of MCU,in Hz
    #ifdef _CDC_
    #include "USB_CDC_API\UsbCdc.h"
    #endif
    #endif

    USB通信已定义,UART通信已被注释掉。

    在这样的设置下,我应该不能使用USB A到microUSB电缆来查看电池变量的变化,或者至少看到两台设备之间的某种通信形式? 或者我必须启用UART通信,然后使用UART到RS232/USB电缆来执行此操作?

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

    感谢您检查连接。 让我们尝试在MSP-EXP430F5529LP上使用反向通道UART,这意味着注释掉USB部分,而取消注释'main.h'文件中的UART部分。 由于您使用的是LaunchPad ,我将SLAA478表6中显示的原始UART引脚更改为LaunchPad用户指南的第2.2 6节中提到的引脚。 您可能还必须参考原理图或快速用户指南以了解特定的针脚名称。 请记住正确的RX -> TX和TX -> RX连接。

    请告诉我这是否允许您与设备进行通信。

    此致,

    詹姆斯

    MSP客户应用程序

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

    你好,James

    我尝试了你的建议。

    ‘m注释“ain.h”中的USB代码部分和取消注释UART部分都不能解决问题。 同样的事情也会发生。

    当程序运行时,如果将其挂起,则会将光标置于两个函数中:‘Spi_read_reg'或'bq_pack_address_discovery'。 这些函数似乎是程序卡住/循环的位置。

    对于第二个建议,F5529上的背信道UART引脚是WFP 4.4 (TX)和WFP 4.5 (RX)。

    这些通过跳线连接至EZ-FET lite。 不过,我还是在'UART.H'文件中分别从WFP 3.3 和WFP 3.4 改为WFP 4.4 和WFP 4.5。 仍然没有变化;同样的事情发生了。 这是使用随LaunchPad提供的USB A到micro USB电缆。

    此外,这些变化是否会影响'PL536和LaunchPad之间的通信? 如果我没有记错,这些设备使用SPI进行通信,因此对UART的任何更改都不会影响这两者。

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您尝试这些建议。 查看'UART.h'后,确保您已更改所有UART寄存器,以反映反向通道UART引脚的引脚。 最重要的是,这里的波特率是5.76万,所以你的终端必须匹配这个。 另外,请记住,由于针脚更改,您需要将USSCI_A模块从“0”更改为“1”。

    如果您已经这样做了,请告诉我。

    此致,

    詹姆斯

    MSP客户应用程序
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这些是我所做的更改:

    #define USI_A_MODULE 0 //选择要使用的USI_A模块[0-1]
    #define UART_BAUDRATE 5.76万 //指定波特率
    #define UART_BAUDRATE_REG (无符号短)(MCLK_FREQ/UART_BAUDRATE)

    //定义UART寄存器
    #define UART_PxIN P4IN
    #define UART_PxOUT P4OUT
    #define UART_PxDIR P4DIR
    #define UART_PxIFG P4IFG
    #define UART_PxIES P4IES
    #define UART_PxIE P4IE
    #define UART_PxSEL P4SEL
    #define UART_PxREN P4REN

    #define UART_RX_PAD BIT5 //选择UART的WFP引脚3.4
    #define UART_TX_PAD BIT4 //选择UART的WFP引脚3.3

    我忘记了将模块更改为'1',而不是'0'。 但是,执行此操作后,'main.c'不会生成。

    文件'TI_USI_SPI_Regs'中有一个错误。 我正在尝试查找导致错误的确切行。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果您知道导致错误的原因,请告诉我。 UART和SPI接口之间不应该有冲突,但可能是我漏掉了一些东西。

    同时,我修改了'SP430F55xx_uscia0_UART_01.c'代码示例,以利用反向通道UART,这样您就可以确保应用程序的这一部分工作正常。 在Putty中,我关闭(强制)本地回显和本地线路编辑,更新了正确的COM端口以匹配"MSP Application Interace" UART端口,将波特率更新为11.52万,并将Putty中的配置文件保存为"MSP430F5529",以便将来更轻松地加载。

    在下面的代码中,我评论了第107行,以证明MSP430确实带来了独特的价值。 在此配置中,在对电路板进行编程并停止调试并在Putty中打开保存的会话后,您可以键入任何内容,MSP430将发回“h”,因为这在第108行中以十六进制格式硬编码为“0x68”。 如果您取消注释第107行并注释第108行,则无论您在Putty终端中键入什么内容,都将从MSP430发回。 此外,LED1将在LaunchPad上模糊闪烁(因为它发生得很快),表示UART ISR已执行。

    /*--版权--,BSD_EX
    *版权所有(c) 2012,Texas Instruments Incorporated
    *保留所有权利。
    *
    **
    允许以源代码和二进制格式重新发布和使用,无论是否进行*修改,只要
    满足以下条件*:
    *
    ****重新发布源代码必须保留上述版权
    *声明,此条件列表和以下免责声明。
    *
    ***以二进制格式重新分发时,必须在
    
    随分发提供的*文档和/或其他材料中复制上述版权*声明,此条件列表和以下免责声明。
    *
    ***
    
    未经事先书面许可,不得使用德州仪器(TI)公司的名称或*其贡献者的名称来支持或促销由本软件衍生的产品*。
    *
    *本软件由版权所有者和贡献者"按原样"提供
    *,
    
    不提供任何明示或暗示的担保,包括但不限于*对适销性和特定*用途适用性的暗示担保。 在任何情况下,版权所有者或
    *贡献者均不对任何直接,间接,附带,特殊,
    *示范, 或后果性损害(包括但不限于
    *购买替代商品或服务;使用,数据或利润损失;
    (*或业务中断),但根据任何责任理论
    ,*无论是合同,严格责任还是侵权行为(包括疏忽或
    *其他),均因使用本软件而导致*
    ,即使已被告知此类损害的可能性。
    *
    ******************
    *
    ** MSP430代码示例免责声明
    *
    MSP430代码示例是独立的低级程序
    ,通常*以高度
    *简洁的方式演示单个外设功能或器件功能。 因此,代码可能依赖于设备的开机默认
    值*寄存器值和设置(如时钟配置),
    在合并多个示例中的代码时必须*小心,以避免潜在的副作用
    *。 另请参阅www.ti.com/grace了解GUI,并参阅www.ti.com/msp430ware
    *了解外围设备配置的API功能库方法。
    *
    **--/copyright--*//************************************************************************************************************************
    
    // MSP430F552x演示- USI_A111.52万 UART Echo ISR,DCO SMCLK
    ////
    说明:回波A接收字符,使用RX ISR。 正常模式为LPM0。
    // USI_A1 RX中断触发TX回波。
    //波特率分频器,104.8576万hz = 104.8576万/115200 =11.52万 =~9.1 (009h|01h)
    // ACLK = REFO =~3.2768万Hz,MCLK = SMCLK =默认DCO = 32 x ACLK = 104.8576万Hz
    //请参阅用户指南,了解波特率分频器表
    ////
    MSP430F552x
    // --------
    // /|\\| |//
    || |//
    --|RST |//
    | |//
    | WFP 4.4 / UCA1TXD|----------- >//
    | | 11.52万 - 8N1
    // | WFP 4.5 / UCA1RXD|<-----------
    //
    Bhargavi Nisarga
    //德州仪器(TI)
    // 2009年4月
    //使用CCSv4和IAR嵌入式工作台版本构建:4.21
    //****************************************************************************************
    
    #include <MSP430-h>
    
    int main(void)
    {
    WDTCTL = WDTPW + WDTHOLD; //停止WDT
    
    P1DIR |= BIT0; 	// WFP 1.0 = LED1
    P1OUT &=~BIT0;							//关闭LED1
    P4SEL || BIT4+BIT5; // WFP 4.4 ,5 = USI_A1 TXD/RXD
    UCA1CTL1 |= UCSWRST; //**将状态机置于复位**
    UCA1CTL1 || UCSSEL_2; // SMCLK
    UCA1BR0 = 9; // 1MHz 11.52万 (请参阅用户指南)
    UCA1BR1 = 0; // 1MHz 11.52万
    UCA1MCTL || UCBRS_1 + UCBRF_0; //调制UCBRSx=1,UCBRFx=0
    UCA1CTL1 &=~UCSWRST; //**初始化USCI状态机**
    UCA1IE |= UCRXIE; //启用USI_A1 RX中断
    
    __bis_sr_register (LPM0_bits + GIE); //输入LPM0,启用中断
    __NO_OPEINENT(); //对于调试器
    ,//
    
    回显RXed字符,确认TX缓冲区已就绪,首先
    #if defined(__TI_Compiler_version__)|| defined(__IAR_systems_icc__)
    #pragma vector=UISR_A1_vector
    __interrupt void USI_A1_ISR(void)
    #Elif defined(___GSCI_attribute__)
    
    
    
    #endif
    {
    SWITCH(__EIN_RANGE(UCA1IV,4)){
    
    案例0:break; //矢量0-无中断
    情况2: //矢量2 - RXIFG
    	P1OUT = BIT0;							//打开LED1
    同时(!(UCA1IFG&UCTXIFG)); // USI_A1 TX缓冲器就绪?
    //UCA1TXBUF = UCA1RXBUF; // TX -> RXed字符
    UCA1TXBUF = 0x68; // TX -> RXed字符
    P1OUT &=~BIT0;							//关闭LED1
    中断;
    情况4:中断; //矢量4- TXIFG
    默认值:中断;
    }
    
    

    此致,

    詹姆斯

    MSP客户应用程序

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

    我尝试实施此代码,但它没有构建。 错误由以下行引起:

    UCA1CTL1 |= UCSWRST; //**将状态机置于复位**
    UCA1CTL1 || UCSSEL_2; // SMCLK
    UCA1BR0 = 9; // 1MHz 11.52万 (请参阅用户指南)
    UCA1BR1 = 0; // 1MHz 11.52万
    UCA1MCTL || UCBRS_1 + UCBRF_0; //调制UCBRSx=1,UCBRFx=0
    UCA1CTL1 &=~UCSWRST; //**初始化USCI状态机**
    UCA1IE |= UCRXIE; //启用USI_A1 RX中断

    显然,这些变量没有界定。 这些文件不应该在msp430.h头文件中?

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

    这是我尝试构建原始程序('main.c')时出现的情况:

    第一次尝试构建程序时,程序失败,文件'TI_USI_SPI_Regs.h'旁边有一个小的黄色三角形。 每当我尝试再次构建以查找错误时,该三角形不再出现。

    编辑:

    已重新启动程序,警告再次出现:

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

    你好,Raheem,

    您使用的是什么版本的CCS? 我正在评估(也在使用) CCS v7。 我下载了代码并尝试构建它,但遇到指向'USB.c'的错误。 请记住,我没有对任何其他文件进行任何更改。 从第336行中删除"UPCS0 +"后,代码生成时没有任何错误。 我在 这条线程中找到了这个解决方案

    接下来,我将尝试进行与您相同的更改,以查看是否可以复制您的错误。

    此致,

    詹姆斯

    MSP客户应用程序

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

    在进行上述更改后,接下来我将'main.h'中的#define从"USB_COMM"更改为"UART_COMM",如下所示。

    //通信协议定义
    #define UART_COMM
    //#define USB_COMM
    #define MAX_STR_LENGTH 128
    // UART
    #ifdef UART_COMM
    #include "UART.h"
    #define MCLK_FREQ 800万 // MCLK frequency,以Hz
    #endif
    // USB文件的定义
    #ifdef USB_COMM
    #include "USB_common.h\common #include "usb.USB".us\common.\common"。
    // USB特定函数
    #include "USBCDC_构造.h"
    #define MCLK_FREQ USB_MCLK_FREQ // MCU的MCLK频率,以Hz
    #ifdef _CDC_为单位
    #include "USB_CDC_API\UsbCDC.h"
    #endif
    #endif 

    接下来,我更改了'UART.h',以使用背信道UART引脚,WFP 4.4 和WFP 4.5 ,如下所示。

    #ifndef UART_H_
    #define UART_H_
    
    #define USI_A_module 1. //选择要使用的USI_A模块[0-1]
    #define UART_BAUDRATE 5.76万 //指定波特率
    #define UART_BAUDRATE_REG (unsigned short)(MMCLK_FREQ/UART_BAUDRATE)
    
    //定义UART寄存器
    #define UART_PxIN P4IN
    #define UART_PxOUT P4OUT
    #define UART_PxDIR P4DIR
    #define UART_PxIFG P4IFG
    #define UART_PxIES P4IES
    #define UART_PxIE P4IE
    #define UART_PxSEL P4SEL
    #define UART_PxREN P4REN
    
    #define UART_RX_PAD BIT5 // SELECT UART unsigned PINS 4.5
    #define UART_TX_PAD BIT4 // SELECT UART PINS 4.4 #
    
    
    包括"TI_USI_UART_REGs.h"
    //全局函数
    void InitUARUART(void);
    Writn void StartUARTRx Rx(void); ARTn StopUIC_exterf_extrf;
    
    
    void; voidexterf; void
    
    
    

    重建后我没有遇到任何错误。 也许您在'main.h'中评论了太多的代码行?

    此致,

    詹姆斯

    MSP客户应用程序

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

    你好,James

    我正在使用CCS v7。 我‘m找不到错误的来源,我在'主...小时'中有与你相同的注释。

    我所做的是从工作区中删除所有项目,然后重新安装CCS v7。 这‘m解决了问题–现在构建"主系统"时没有错误。

    我尝试使用'SP430F55xx_uscia0_UART_01.c'代码示例,现在工作正常,没有错误。

    我目前没有将LaunchPad连接到'PL536,但看着终端通过PuTTY,我仍然看不到任何接收/传输. LaunchPad中是否应该没有显示"PL536 devices were found (未找到PL536设备)"的输出字符串?

    此外,我最近了解到'PL536EVM上的IC2已死机,这使我无法同时使用IC2和IC3。 这意味着,实际上,LaunchPad只能处理IC1。 ‘d,我对“ata_flash.h”文件进行了以下更改:

    //电池组定义
    #define number_of_BQ_devices 1 //3 BQ76PL536设备已连接
    #define number_of_cells 6 //系统中的最大单元数
    #define MAX_CELS_NUMBER_IN_BQ 6 //MAX每个BQ76PL536设备的单元数
    #define CEL_BEATING_EN 1 //设置为1以启用单元格平衡
    #define one_minute 60. 

    此致

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

    你好,Raheem,

    解决这些构建错误的工作做得很好! 也许另一个项目/工作区会对其产生某种影响。 在CCS中,我通常为每个项目保留一个单独的工作区,而且当我将项目导入CCS时,我一定要在完成导入过程之前选中“Copy projects into workspace”(将项目复制到工作区)选项。 这样,它会将原始项目复制到工作空间中,因此如果需要,您可以删除工作空间而不删除原始项目。

    现在,在将代码更改为UART通信的LaunchPad编程后,LED1 (WFP 1.0)打开。 但是,在查看SLAA478以了解这意味着什么之后,我注意到图1中的信号/针脚与表1中列出的不匹配。 查看'bq_pack.h'文件中的#defines,代码中的信号与表1中的针脚描述匹配。 我将提交反馈以相应地更新图1。

    回到WFP 1.0 ,在'bq_pack.h'中被定义为"OUT BQ_LED"。 在'main.c'中,我在第155行处设置了一个断点。 在这个while ()循环中,如果未发现BQ设备,则会打开LED1 (WFP EVM),这很有意义,因为我没有BQ 1.0 或没有连接它。 因此,代码永远不会达到它可以将信息发送到终端的程度。

    此致,

    詹姆斯

    MSP客户应用程序

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我担心,如果IC2和IC3死机,BQ76PL536EVM-3可能会有其它问题。 理想情况下,这不会影响任何事情,但肯定会影响。

    在LaunchPad上,我返回到USB CDC,而不是UART。 在对LaunchPad进行编程后,我进入设备管理器,在“其它设备”下显示MSP430 CDC,但未正确安装驱动程序。 按照SLAA478中2.1 .3.1 一节的说明,我继续安装SLAA478文件夹中的‘SP430_CDC.inf'驱动程序。 说明中提到了将设备连接到主机PC,然后打开虚拟CDC COM端口的终端的正确过程(根据说明,波特率无关紧要)。 使用连接到LaunchPad的BQ76PL536EVM-3尝试此操作,该程序使用您在'data_flash.h'文件中所做的更改进行编程。 您对单个BQ设备的配置看起来正常,但BQ76PL536EVM-3上的其它设备可能会损坏。

    请告诉我,您是否可以通过'main.c'中的while ()循环,该循环检查BQ设备并通过保持LED1打开。

    此致,

    詹姆斯

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

    你好,James

    我花了一天的时间与bq76PL536EVM-3的供应商交谈,发现该器件是返回器件。 因此,EVM很可能存在其他问题。 考虑到IC1仍在工作,我想相信,如果EVM上的通信区域仍然正常工作,MSP将能够通过SPI从EVM读取数据,但我不确定。 我将在论坛的“电池管理”部分发帖,看看是否有方法测试bq76PL536EVM-3上的通信接口。 我这样做是为了在等待更换部件时保持占用状态。

    关于LaunchPad,我从未被提示输入驱动程序。 我尝试安装了SP430_CDC.inf',但收到了错误'The thire-part INF does not contain digital signature informature'(第三部分INF不包含数字签名信息)。 我现在正试图解决这个问题。

    当我在'main.c'中浏览代码时,我会进一步更新你,看看我是否可以通过while ()循环。

    此致

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

    你好,Raheem,

    听起来您正在取得良好的进展。 关于驱动程序,当我为UART通信配置了设备时,我没有在右下角看到设备弹出窗口,但在为USB通信对其编程后,我停止了调试,并断开了LaunchPad与PC的连接/重新连接。 右下角出现一个弹出窗口,提示尚未安装驱动程序。 进入“Device Manager (设备管理器)”并找到“Virtual COM (虚拟COM)”后,我手动将驱动程序指向“SP430_CDC.inf'()”所在的SLAA478文件夹。 我也收到了有关使用驱动程序的警告,但我刚刚接受了该警告并完成了安装。 希望这有助于澄清我所做的事情。

    如果有任何不明确的地方,请告诉我。

    此致,

    詹姆斯

    MSP客户应用程序

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

    你好,James

    通过从UART切换回USB CDC,我假定您意味着在'main.h'中启用USB通信,并在'UART .h'中恢复到以前的UART设置。 这就是我所做的。 接下来,我断开并重新连接了LaunchPad,但没有弹出窗口要求提供驱动程序。 但是,在“设备管理器”中,我看到的是:

    我假设“端口”下存在USB串行设备(COM5)意味着已安装驱动程序。 但是,我从未被提示,所以也许它是自动安装的?

    关于'main.c'中的while ()循环,我无法通过该循环。 LED1打开,出现延迟,然后循环自动重复。 我认为这可能足以表明EVM上的隔离通信接口已损坏。

    此致

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

    通过从UART切换回USB CDC,我假定您意味着在'main.h'中启用USB通信,并在'UART.h'中恢复到以前的UART设置。 这就是我所做的。[/QUOT]

    正确。 我没有在'UART.h'中做任何更改,因为将'main.h'中的#define更改为"USB_COMM"会使用'USB.h'。

    接下来,我断开并重新连接了LaunchPad,但没有弹出窗口要求提供驱动程序。 但是,在“设备管理器”中,我看到的是:[/QUOT]

    这很奇怪。 可能是因为我使用的是Windows 7,而您使用的是Windows 8或10。 当我换回USB_COMM并连接LaunchPad时,即显示弹出窗口。 进入设备管理器后,我在"其他设备"下找到了USB CDC。 单击它并重新配置驱动程序,LaunchPad现在在设备管理器中显示为虚拟COM端口。 如果您已经为USB_COMM配置了代码并对主板进行了重新编程,但您仍然看到它为USB串行设备(COM5),我会尝试用'MSP430_CDC.inf'文件手动重新配置该驱动程序。

    关于'main.c'中的while ()循环,我无法通过该循环。 LED1打开,出现延迟,然后循环自动重复。 我认为这可能足以表明EVM上的隔离通信接口已损坏。[/QUET]

    如果你不能通过while ()循环,似乎不能通过SPI找到单个设备,如果主板连接正确,这是奇怪的。 但是,如果主板损坏,这将是合理的。 希望您可以获得一个正常工作的BQ EVM。

    此致,

    詹姆斯

    MSP客户应用程序

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

    要注意的是,您是否正在为具有3.3V或5V电压的BQ76PL536EVM-3供电? 也许EVM正以5V I/O运行,这就是ICx和/或SPI接口不工作的原因。 您是否可以根据 bq76PL536A和bq76PL536A-Q1 EVM快速入门指南中的第3.1 1节,确保将JP5设置为3.3V操作? 如果不使用电压转换器,5V I/O将影响MSP430。

    此致,

    詹姆斯

    MSP客户应用程序

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

    你好,James

    我再次尝试断开连接并重新连接,但USB串行设备(COM5)仍然显示。 我看不到'Other Devices'(其它设备)部分,也看不到虚拟COM端口。 我尝试更新USB串行设备的驱动程序,Windows显示'The best software for my device is already installed'(已经安装了最适合我的设备的软件)。 我正在使用Windows 10。

    对于为bq76PL536EVM-3供电,板上有20个跳线。 JP1至JP18是跳线,用于将电池连接到1k精密电阻器;只有JP19和JP20位于隔离通信接口区域。

    收到主板后,JP20被配置为连接EXT-5VDC和USB引脚。 JP19正在连接5.0V和3.3V引脚。

    根据 我在bq76PL536A和bq76PL536A-Q1 EVM快速入门指南中的3.1 第1节中的理解,JP20需要将USB引脚连接到第三引脚,而JP19应该将3.3V引脚连接到第三引脚。 这是否正确?

    最后,LaunchPad为SPI提供的5V电源是否重要? 我使用的是J3的5V和GND,而不是40引脚BoosterPack区域的5V和GND。

    此致

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

    你好,James

    我尝试了我在上一篇文章中解释的配置,LED1现在稳定闪烁。 我计划切换回UART,以查看终端上是否发生任何情况。 有结果时会发布更新。

    此致

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

    你好,James

    使用UART通信时,COM端口上有活动,使用PuTTY进行验证。 从MSP430发送到主机PC的唯一消息是“电池组处于初始模式模式”。

    接下来,我决定尝试在云端使用GUI Composer V2创建GUI,因为我使用的是CCS v7。 我将项目上载到我的CCS云,然后从那里对MSP430进行编程。 这一次,通过CCS云连接到COM端口后,我看到实际的电池电压数据被发送到主机PC。 但随后,系统进入警报模式,LaunchPad上的LED1保持打开。 我又运行了这个程序,发生了同样的事情,除了一些电池电压数据不规律,读数超过25V。 我再次运行程序,然后它将我的电池组置于方形的第一个;唯一被传输的消息是 “The battery pack is in initial_mode Mode”(电池组处于初始模式):

    我逐步完成了该计划,看看实际发生了什么。 我发现它从未进入UARTCommunicationTask()函数('main.c'中的第567行)。 只需执行Timer1SecExpiredTask()函数('main.c'中的第277行),在该函数内还有另一个函数bq_pack_start_conv()。 此函数使程序将'spi_if.c'转至函数spi_write_reg(),该函数运行4次。 然后,程序返回到main()函数末尾的'main.c'。

    由于UART通信不起作用,我决定恢复到USB通信。 CCS云无法打开USB串行设备COM端口的终端,因此我无法查看是否实际传输了任何内容。 尽管如此,我还是浏览了一下代码,看看发生了什么。

    当程序进入USBCommunicationTask()函数('main.c'中的第701行)时,它在交换器的情况下输入了ST_ENUM_ACTIVE,然后进入缺省操作,这不是什么。 然后,程序返回到低功耗模式,等待1秒计时器的下一次中断。

    您是否知道导致这些问题的原因? 在等待新EVM交付时,我仍在使用损坏的EVM -这可能是原因吗?

    编辑:


    当我完成键入时,终端上有一个更新。 下面是我现在看到的内容:

    但是LED1仍在闪烁,这意味着仍然存在通信,并且该信息包实际上并未处于警报模式。 上述最新情况是大约15分钟内仅有的一次。

    此致