element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Analog Devices
  • Products
  • Manufacturers
  • Analog Devices
  • More
  • Cancel
Analog Devices
Forum MAX17320G20+T 2 cell series 18650 LiPo battery balancing issue
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Analog Devices to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 2 replies
  • Subscribers 39 subscribers
  • Views 1198 views
  • Users 0 members are here
  • andy_waller
  • max17320
  • maxim
Related

MAX17320G20+T 2 cell series 18650 LiPo battery balancing issue

ninjax8
ninjax8 over 1 year ago

Hello, 

We are currently working on MAX17320G20+T based circuit for cell protection and fuel gauge of a 2 cell series LiPo battery. I've made a arduino library to read/write registers via I2C and able to get the fuel gauge registers working (BATT, PKP, VCELL, CELL1, CELL2 etc.). 

But now I'm trying to implement the battery balancing function of the IC. The cell balancing is not happening. 

We are enabling the zener for cell balancing with 80mV difference but the higher voltage cell is not going down. We have connected a small load too (LED) at the circuit output. Both cells are draining in the proportional way.
Cell 1 voltage = 3.5V
Cell 2 voltage = 3.9V
So ideally Cell 2 voltage should be 3.58 to 3.6V via the zener drop if the balancing is happening. 
But nothing is happening. 
Schematic and test code is attached
image
#include <Wire.h>
#include "MAX17320.h"

//uint8_t r_sense = 1;
void setup() {
  Wire.begin(DEVICE_ADDRESS);
  Wire.begin(NVM_ADDRESS);
  Serial.begin(9600);
}

void loop() {
  //  read_cell1();
  delay(1000);
  //  Serial.println(MAX17320::read_cell1());
  MAX17320::set_cell_balancing(ZenerEnable, mV800, 11.7, 100);
}
Function call 
void set_cell_balancing(BatteryBalancingZener zener_enable, CellBalancingConfig bal_cfg, float r_mismatch, uint8_t imbalance)
  {
    r_mismatch = 32 * r_mismatch / 125;
    uint16_t RMismatch = round(r_mismatch) << 5;
    imbalance = round(imbalance / 10);
    if (imbalance <= 31 && r_mismatch <= 31)
    {
      uint16_t code = zener_enable | static_cast<uint16_t>(bal_cfg) | static_cast<uint16_t>(RMismatch) | static_cast<uint16_t>(imbalance);
      unlock_write_protection();
      write_named_register_nvm(RegisterNvm::NBalTh, code);
      lock_write_protection();
    }
  }
Cell balancing function 
enum BatteryBalancingZener
{
  ZenerDisable = 0,
  ZenerEnable = 1 << 13,
};

enum CellBalancingConfig
{
  Disable = 0,
  /// For 2.5mV
  mV25 = 1 << 10,
  /// For 5mV
  mV50 = 2 << 10,
  /// For 10mV
  mV100 = 3 << 10,
  /// For 20mV
  mV200 = 4 << 10,
  /// For 40mV
  mV400 = 5 << 10,
  /// For 80mV
  mV800 = 6 << 10,
  /// For 160mV
  mV1600 = 7 << 10,
};
config file
Ref : Datashet : https://www.analog.com/media/en/technical-documentation/data-sheets/MAX17320.pdf (Page 70, Battery Balancing section)
Pls suggest a solution for this. And let us know if you need more information on the test results.
Best regards
  • Sign in to reply
  • Cancel

Top Replies

  • Gough Lui
    Gough Lui over 1 year ago +2
    It looks like it is a top balancing circuit - i.e. it will balance ON CHARGE by shunting current across the cell with the higher voltage during charging. You need to charge to full for balancing to take…
Parents
  • Gough Lui
    Gough Lui over 1 year ago

    It looks like it is a top balancing circuit - i.e. it will balance ON CHARGE by shunting current across the cell with the higher voltage during charging.

    You need to charge to full for balancing to take effect. It will not be balancing during discharge and the voltages will not track each other as it isn't a bottom balancing circuit.

    - Gough

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • ninjax8
    ninjax8 over 1 year ago in reply to Gough Lui

    Thank you for the reply. I haven't tested on charge. I'll do it and update. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • ninjax8
    ninjax8 over 1 year ago in reply to Gough Lui

    Thank you for the reply. I haven't tested on charge. I'll do it and update. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube