Used with KL25Z Freescale board to access the Avnet Wi-Go Battery charger

Dependents:   Wi-Go_IOT_Demo IoT_World_Hackathon_WiGo_NSP_Demo Wi-Go_IOT_Demo_MKII

Fork of WiGo_BattCharger by Paul Clarke

Modified BattCharger from https://mbed.org/users/monpjc/code/WiGo_BattCharger/ - removed LED pins and added raw read.

Committer:
frankvnk
Date:
Fri Sep 06 09:06:39 2013 +0000
Revision:
3:fb966ae74766
Parent:
2:f52adda183d2
Temp modif - removed LED pins - added raw read

Who changed what in which revision?

UserRevisionLine numberNew contents of line
monpjc 0:d52ea6d270c0 1 #include "WiGo_BattCharger.h"
monpjc 0:d52ea6d270c0 2 #include "mbed.h"
monpjc 0:d52ea6d270c0 3
frankvnk 3:fb966ae74766 4 WiGo_BattCharger::WiGo_BattCharger( PinName en1, PinName en2, PinName snsen, PinName sense,
frankvnk 3:fb966ae74766 5 PinName supplystate, PinName chargestate )
frankvnk 3:fb966ae74766 6 : _en1(en1), _en2(en2), _snsen(snsen), _sense(sense),
frankvnk 3:fb966ae74766 7 _supplystate(supplystate), _chargestate(chargestate)
monpjc 0:d52ea6d270c0 8 {
monpjc 0:d52ea6d270c0 9 _en1 = 0; //100mA Charge
monpjc 0:d52ea6d270c0 10 _en2 = 0;
monpjc 0:d52ea6d270c0 11 _snsen = 1; //Off
monpjc 0:d52ea6d270c0 12 }
monpjc 0:d52ea6d270c0 13
monpjc 1:4c20371cd5c2 14 void WiGo_BattCharger::init( int n )
monpjc 0:d52ea6d270c0 15 {
monpjc 2:f52adda183d2 16 switch(n) {
monpjc 1:4c20371cd5c2 17 default:
monpjc 1:4c20371cd5c2 18 case 0: //100mA Charge
monpjc 1:4c20371cd5c2 19 _en1 = 0;
monpjc 1:4c20371cd5c2 20 _en2 = 0;
monpjc 1:4c20371cd5c2 21 break;
monpjc 2:f52adda183d2 22
monpjc 1:4c20371cd5c2 23 case 1: //500mA
monpjc 1:4c20371cd5c2 24 _en1 = 0;
monpjc 1:4c20371cd5c2 25 _en2 = 1;
monpjc 1:4c20371cd5c2 26 break;
monpjc 2:f52adda183d2 27
monpjc 1:4c20371cd5c2 28 case 2: //724mA
monpjc 1:4c20371cd5c2 29 _en1 = 1;
monpjc 1:4c20371cd5c2 30 _en2 = 0;
monpjc 1:4c20371cd5c2 31 break;
monpjc 2:f52adda183d2 32
monpjc 1:4c20371cd5c2 33 case 3: //Suspend
monpjc 1:4c20371cd5c2 34 _en1 = 1;
monpjc 1:4c20371cd5c2 35 _en2 = 1;
monpjc 1:4c20371cd5c2 36 break;
monpjc 1:4c20371cd5c2 37 }
monpjc 0:d52ea6d270c0 38 }
monpjc 0:d52ea6d270c0 39
monpjc 0:d52ea6d270c0 40 void WiGo_BattCharger::sense_en( int n)
monpjc 0:d52ea6d270c0 41 {
monpjc 0:d52ea6d270c0 42 if( n == 0 )
monpjc 0:d52ea6d270c0 43 _snsen = 1;
monpjc 0:d52ea6d270c0 44 else
monpjc 0:d52ea6d270c0 45 _snsen = 0;
monpjc 0:d52ea6d270c0 46 }
monpjc 0:d52ea6d270c0 47
frankvnk 3:fb966ae74766 48 unsigned short WiGo_BattCharger::readRaw( void )
frankvnk 3:fb966ae74766 49 {
frankvnk 3:fb966ae74766 50 return _sense.read_u16();
frankvnk 3:fb966ae74766 51 }
frankvnk 3:fb966ae74766 52
monpjc 0:d52ea6d270c0 53 float WiGo_BattCharger::read( void )
monpjc 0:d52ea6d270c0 54 {
monpjc 0:d52ea6d270c0 55 return _sense;
monpjc 0:d52ea6d270c0 56 }
monpjc 0:d52ea6d270c0 57
monpjc 0:d52ea6d270c0 58 int WiGo_BattCharger::charging( void )
monpjc 0:d52ea6d270c0 59 {
monpjc 0:d52ea6d270c0 60 return _chargestate;
monpjc 0:d52ea6d270c0 61 }
monpjc 0:d52ea6d270c0 62
monpjc 0:d52ea6d270c0 63 int WiGo_BattCharger::supply( void )
monpjc 0:d52ea6d270c0 64 {
monpjc 0:d52ea6d270c0 65 return _supplystate;
monpjc 0:d52ea6d270c0 66 }
monpjc 0:d52ea6d270c0 67
monpjc 2:f52adda183d2 68 int WiGo_BattCharger::level( void )
monpjc 2:f52adda183d2 69 {
monpjc 2:f52adda183d2 70 float returnValue = 0;
monpjc 2:f52adda183d2 71 float batt_level = read();
monpjc 2:f52adda183d2 72
monpjc 2:f52adda183d2 73 returnValue = ((batt_level - BATT_0) * (BATT_100 - BATT_0)) * 10000;
monpjc 2:f52adda183d2 74
monpjc 2:f52adda183d2 75 if( returnValue > 100 )
monpjc 2:f52adda183d2 76 returnValue = 100;
monpjc 2:f52adda183d2 77
monpjc 2:f52adda183d2 78 if( returnValue < 0 )
monpjc 2:f52adda183d2 79 returnValue = 0;
monpjc 2:f52adda183d2 80
monpjc 2:f52adda183d2 81 return (int)returnValue;
monpjc 2:f52adda183d2 82 }
frankvnk 3:fb966ae74766 83
frankvnk 3:fb966ae74766 84