Rev 4268 Rev 4371
1 #!/usr/bin/python 1 #!/usr/bin/python
2   2  
3 # Setuup of LION1CELL MLAB module 3 # Setuup of LION1CELL MLAB module
4   4  
5 import time 5 import time
6 import sys 6 import sys
7 from pymlab import config 7 from pymlab import config
8   8  
9 while True: 9 while True:
10 #### Sensor Configuration ########################################### 10 #### Sensor Configuration ###########################################
11 cfg = config.Config( 11 cfg = config.Config(
12 i2c = { 12 i2c = {
13 "port": 0, # I2C bus number 13 "port": 6, # I2C bus number
14 }, 14 },
15   15  
16 bus = [ 16 bus = [
17 { 17 {
18 "type": "i2chub", 18 "type": "i2chub",
19 "address": 0x73, 19 "address": 0x73,
20 20
21 "children": [ 21 "children": [
22 {"name": "guage", "type": "lioncell", "channel": 7, }, 22 {"name": "guage", "type": "lioncell", "channel": 7, },
23 ], 23 ],
24 }, 24 },
25 ], 25 ],
26 ) 26 )
27   27  
28   28  
29 cfg.initialize() 29 cfg.initialize()
30 guage = cfg.get_device("guage") 30 guage = cfg.get_device("guage")
31   31  
32   32  
33 guage.WriteFlashByte(48, 0, 21, 0x0D) # Design Capacity 3350 mAh 33 guage.WriteFlashByte(48, 0, 21, 0x0D) # Design Capacity 3350 mAh
34 guage.WriteFlashByte(48, 0, 22, 0x16) # 34 guage.WriteFlashByte(48, 0, 22, 0x16) #
35 print "Design Capacity " 35 print "Design Capacity "
36 guage.WriteFlashByte(48, 0, 23, 0x5E) # Design Energy 12060 mWh 36 guage.WriteFlashByte(48, 0, 23, 0x5E) # Design Energy 12060 mWh
37 guage.WriteFlashByte(48, 0, 24, 0x38) # 37 guage.WriteFlashByte(48, 0, 24, 0x38) #
38 print "Design Energy" 38 print "Design Energy"
39 #guage.WriteFlashByte(64, 0, 0, 0x9) # External Voltage Measurement 39 #guage.WriteFlashByte(64, 0, 0, 0x9) # External Voltage Measurement
40 #print "External Voltage Measurement" 40 #print "External Voltage Measurement"
41 #guage.WriteFlashByte(64, 0, 7, 0x2) # Two Cells 41 #guage.WriteFlashByte(64, 0, 7, 0x2) # Two Cells
42 #print "Two Cells" 42 #print "Two Cells"
43 guage.WriteFlashByte(64, 0, 4, 0x64) # 7 LED (1+6), Shift Register 43 guage.WriteFlashByte(64, 0, 4, 0x64) # 7 LED (1+6), Shift Register
44 print "LED" 44 print "LED"
45 #guage.WriteFlashByte(104, 0, 14, 0x28) # Voltage Measurement Range 10240 mV 45 #guage.WriteFlashByte(104, 0, 14, 0x28) # Voltage Measurement Range 10240 mV
46 #guage.WriteFlashByte(104, 0, 15, 0x00) # 46 #guage.WriteFlashByte(104, 0, 15, 0x00) #
47 #print "Voltage Measurement Range" 47 #print "Voltage Measurement Range"
48 guage.WriteFlashByte(82, 0, 0, 0x0D) # Set initial cell capacity 3350 mAh 48 guage.WriteFlashByte(82, 0, 0, 0x0D) # Set initial cell capacity 3350 mAh
49 guage.WriteFlashByte(82, 0, 1, 0x16) # 49 guage.WriteFlashByte(82, 0, 1, 0x16) #
50 print "Initial cell capacity" 50 print "Initial cell capacity"
51 guage.WriteFlashByte(83, 0, 0, 0x20) # Set Chem ID 51 guage.WriteFlashByte(83, 0, 0, 0x20) # Set Chem ID
52 guage.WriteFlashByte(83, 0, 1, 0x17) # 52 guage.WriteFlashByte(83, 0, 1, 0x17) #
53 print "Chem ID" 53 print "Chem ID"
54 guage.reset() # Reset Guage 54 guage.reset() # Reset Guage
55 print "Reset" 55 print "Reset"
56 time.sleep(1) 56 time.sleep(1)
57   57  
58 flash = guage.ReadFlashBlock(48, 0) 58 flash = guage.ReadFlashBlock(48, 0)
59 print "48 - ", 59 print "48 - ",
60 print " ".join([hex(i) for i in flash]) 60 print " ".join([hex(i) for i in flash])
61 flash = guage.ReadFlashBlock(64, 0) 61 flash = guage.ReadFlashBlock(64, 0)
62 print "64 - ", 62 print "64 - ",
63 print " ".join([hex(i) for i in flash]) 63 print " ".join([hex(i) for i in flash])
64 flash = guage.ReadFlashBlock(104, 0) 64 flash = guage.ReadFlashBlock(104, 0)
65 print "104 - ", 65 print "104 - ",
66 print " ".join([hex(i) for i in flash]) 66 print " ".join([hex(i) for i in flash])
67   67  
68 print "DesCap =", guage.DesignCapacity(), "mAh" 68 print "DesCap =", guage.DesignCapacity(), "mAh"
69 flash = guage.Chemistry() 69 flash = guage.Chemistry()
70 print "Chemistry = ", 70 print "Chemistry = ",
71 print " ".join([hex(i) for i in flash]) 71 print " ".join([hex(i) for i in flash])
72   72  
73 try: 73 try:
74 while True: 74 while True:
75 # Battery status readout 75 # Battery status readout
76 print "NominalAvailableCapacity =", guage.NominalAvailableCapacity(), "mAh, FullAvailabeCapacity =", guage.FullAvailabeCapacity(), "mAh, AvailableEnergy =", guage.AvailableEnergy(), "* 10 mWh" 76 print "NominalAvailableCapacity =", guage.NominalAvailableCapacity(), "mAh, FullAvailabeCapacity =", guage.FullAvailabeCapacity(), "mAh, AvailableEnergy =", guage.AvailableEnergy(), "* 10 mWh"
77 print "Temp =", guage.getTemp(), "degC, RemainCapacity =", guage.getRemainingCapacity(), "mAh, cap =", guage.FullChargeCapacity(), "mAh, U =", guage.Voltage(), "mV, I =", guage.AverageCurrent(), "mA, charge =", guage.StateOfCharge(), "%" 77 print "Temp =", guage.getTemp(), "degC, RemainCapacity =", guage.getRemainingCapacity(), "mAh, cap =", guage.FullChargeCapacity(), "mAh, U =", guage.Voltage(), "mV, I =", guage.AverageCurrent(), "mA, charge =", guage.StateOfCharge(), "%"
78 time.sleep(3) 78 time.sleep(3)
79   79  
80 except IOError: 80 except IOError:
81 err = err + 1 81 err = err + 1
82 print "IOError" 82 print "IOError"
83 continue 83 continue
84   84  
85 except KeyboardInterrupt: 85 except KeyboardInterrupt:
86 sys.exit(0) 86 sys.exit(0)