bq769x0.cpp - Battery management system based on bq769x0 for ARM mbed
Copyright (C) 2015-2016 Martin Jäger (http://libre.solar)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this program. If not, see
<http://www.gnu.org/licenses/>.
*/
/*
TODO:
- CRC check for cell voltage readings
- Enable values like 1.5 mOhm for shunt resistor
- Decrease current limit if only charge OR discharge FET is on (current goes through body diode of other FET with high voltage drop) or enable ideal diodes
- Rework error handling (checkStatus method)
*/
/* Battery management system based on bq769x0 for ARM mbed
* Copyright (c) 2015-2018 Martin Jäger (www.libre.solar)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <math.h> // log for thermistor calculation