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.

bq76940电压均衡与MOS管问题

Other Parts Discussed in Thread: BQ76940

我打开均衡管理时发现VC14电压变低了,但我使用的时NMOS,应该是电压变高才能导通三极管进行均衡

请问bq76940均衡时分PMOS和NMOS么?

  • 建议确认下电路。你现传的是BC14的高端电路,而非故障部分。
  • 问题找到了,是从官网下载的头文件错了。bqMaximo_Ctrl_G2553.h头文件里定义的各个寄存器结构体,除了CELLBAL1,CELLBAL2,CELLBAL3都是按大端定义的bit,但这3个寄存器是按小端定义的,导致我控制bat15时实际是控制了bat14。改下头文件定义就好了

    下面屏蔽的是官网原有的定义,打开的是改后的定义。

    union
    {
    struct
    {
    #if 0
    unsigned char RSVD :3;
    unsigned char CB5 :1;
    unsigned char CB4 :1;
    unsigned char CB3 :1;
    unsigned char CB2 :1;
    unsigned char CB1 :1;
    #else
    unsigned char CB1 :1;
    unsigned char CB2 :1;
    unsigned char CB3 :1;
    unsigned char CB4 :1;
    unsigned char CB5 :1;
    unsigned char RSVD :3;
    #endif
    }CellBal1Bit;
    unsigned char CellBal1Byte;
    }CellBal1;

    union
    {
    struct
    {
    #if 0
    unsigned char RSVD :3;
    unsigned char CB10 :1;
    unsigned char CB9 :1;
    unsigned char CB8 :1;
    unsigned char CB7 :1;
    unsigned char CB6 :1;
    #else
    unsigned char CB6 :1;
    unsigned char CB7 :1;
    unsigned char CB8 :1;
    unsigned char CB9 :1;
    unsigned char CB10 :1;
    unsigned char RSVD :3;
    #endif
    }CellBal2Bit;
    unsigned char CellBal2Byte;
    }CellBal2;

    union
    {
    struct
    {
    #if 0
    unsigned char RSVD :3;
    unsigned char CB15 :1;
    unsigned char CB14 :1;
    unsigned char CB13 :1;
    unsigned char CB12 :1;
    unsigned char CB11 :1;
    #else
    unsigned char CB11 :1;
    unsigned char CB12 :1;
    unsigned char CB13 :1;
    unsigned char CB14 :1;
    unsigned char CB15 :1;
    unsigned char RSVD :3;
    #endif
    }CellBal3Bit;
    unsigned char CellBal3Byte;
    }CellBal3;