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

Dependents:   KL25Z_Batt_Test

Committer:
monpjc
Date:
Fri May 17 15:32:44 2013 +0000
Revision:
1:4c20371cd5c2
Parent:
0:d52ea6d270c0
Child:
2:f52adda183d2
Batt init now has selectable charge rate

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
monpjc 0:d52ea6d270c0 4 WiGo_BattCharger::WiGo_BattCharger( PinName battlow, PinName battmed, PinName battfull, PinName en1, PinName en2, PinName snsen, PinName sense, PinName supplystate, PinName chargestate ) : _battlow(battlow), _battmed(battmed), _battfull(battfull), _en1(en1), _en2(en2), _snsen(snsen), _sense(sense), _supplystate(supplystate), _chargestate(chargestate)
monpjc 0:d52ea6d270c0 5 {
monpjc 0:d52ea6d270c0 6 _battlow = BATT_LED_OFF; //Default State
monpjc 0:d52ea6d270c0 7 _battmed = BATT_LED_OFF;
monpjc 0:d52ea6d270c0 8 _battfull = BATT_LED_OFF;
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 1:4c20371cd5c2 16 switch(n)
monpjc 1:4c20371cd5c2 17 {
monpjc 1:4c20371cd5c2 18 default:
monpjc 1:4c20371cd5c2 19 case 0: //100mA Charge
monpjc 1:4c20371cd5c2 20 _en1 = 0;
monpjc 1:4c20371cd5c2 21 _en2 = 0;
monpjc 1:4c20371cd5c2 22 break;
monpjc 1:4c20371cd5c2 23
monpjc 1:4c20371cd5c2 24 case 1: //500mA
monpjc 1:4c20371cd5c2 25 _en1 = 0;
monpjc 1:4c20371cd5c2 26 _en2 = 1;
monpjc 1:4c20371cd5c2 27 break;
monpjc 1:4c20371cd5c2 28
monpjc 1:4c20371cd5c2 29 case 2: //724mA
monpjc 1:4c20371cd5c2 30 _en1 = 1;
monpjc 1:4c20371cd5c2 31 _en2 = 0;
monpjc 1:4c20371cd5c2 32 break;
monpjc 1:4c20371cd5c2 33
monpjc 1:4c20371cd5c2 34 case 3: //Suspend
monpjc 1:4c20371cd5c2 35 _en1 = 1;
monpjc 1:4c20371cd5c2 36 _en2 = 1;
monpjc 1:4c20371cd5c2 37 break;
monpjc 1:4c20371cd5c2 38 }
monpjc 0:d52ea6d270c0 39 }
monpjc 0:d52ea6d270c0 40
monpjc 0:d52ea6d270c0 41 void WiGo_BattCharger::sense_en( int n)
monpjc 0:d52ea6d270c0 42 {
monpjc 0:d52ea6d270c0 43 if( n == 0 )
monpjc 0:d52ea6d270c0 44 _snsen = 1;
monpjc 0:d52ea6d270c0 45 else
monpjc 0:d52ea6d270c0 46 _snsen = 0;
monpjc 0:d52ea6d270c0 47 }
monpjc 0:d52ea6d270c0 48
monpjc 0:d52ea6d270c0 49 float WiGo_BattCharger::read( void )
monpjc 0:d52ea6d270c0 50 {
monpjc 0:d52ea6d270c0 51 return _sense;
monpjc 0:d52ea6d270c0 52 }
monpjc 0:d52ea6d270c0 53
monpjc 0:d52ea6d270c0 54 int WiGo_BattCharger::charging( void )
monpjc 0:d52ea6d270c0 55 {
monpjc 0:d52ea6d270c0 56 return _chargestate;
monpjc 0:d52ea6d270c0 57 }
monpjc 0:d52ea6d270c0 58
monpjc 0:d52ea6d270c0 59 int WiGo_BattCharger::supply( void )
monpjc 0:d52ea6d270c0 60 {
monpjc 0:d52ea6d270c0 61 return _supplystate;
monpjc 0:d52ea6d270c0 62 }
monpjc 0:d52ea6d270c0 63
monpjc 0:d52ea6d270c0 64 void WiGo_BattCharger::LEDupdate( void )
monpjc 0:d52ea6d270c0 65 {
monpjc 0:d52ea6d270c0 66 float batt_level;
monpjc 0:d52ea6d270c0 67 sense_en(1);
monpjc 0:d52ea6d270c0 68 batt_level = read();
monpjc 0:d52ea6d270c0 69 if( batt_level <= BATT_0 ) {
monpjc 0:d52ea6d270c0 70 _battlow = BATT_LED_OFF;
monpjc 0:d52ea6d270c0 71 _battmed = BATT_LED_OFF;
monpjc 0:d52ea6d270c0 72 _battfull = BATT_LED_OFF;
monpjc 0:d52ea6d270c0 73 }
monpjc 0:d52ea6d270c0 74 if( batt_level > BATT_0 && batt_level <= 0.605 ) {
monpjc 0:d52ea6d270c0 75 _battlow = BATT_LED_ON;
monpjc 0:d52ea6d270c0 76 _battmed = BATT_LED_OFF;
monpjc 0:d52ea6d270c0 77 _battfull = BATT_LED_OFF;
monpjc 0:d52ea6d270c0 78 }
monpjc 0:d52ea6d270c0 79 if( batt_level > 0.605 && batt_level <= BATT_100 ) {
monpjc 0:d52ea6d270c0 80 _battlow = BATT_LED_ON;
monpjc 0:d52ea6d270c0 81 _battmed = BATT_LED_ON;
monpjc 0:d52ea6d270c0 82 _battfull = BATT_LED_OFF;
monpjc 0:d52ea6d270c0 83 }
monpjc 0:d52ea6d270c0 84 if( batt_level > BATT_100 ) {
monpjc 0:d52ea6d270c0 85 _battlow = BATT_LED_ON;
monpjc 0:d52ea6d270c0 86 _battmed = BATT_LED_ON;
monpjc 0:d52ea6d270c0 87 _battfull = BATT_LED_ON;
monpjc 0:d52ea6d270c0 88 }
monpjc 0:d52ea6d270c0 89 }