Ver Fonte

update:补充更新yhm27xx的通用demo

Jiangqian há 9 meses atrás
pai
commit
0bd856fc48
1 ficheiros alterados com 47 adições e 46 exclusões
  1. 47 46
      luat/demo/yhm27xx/main.lua

+ 47 - 46
luat/demo/yhm27xx/main.lua

@@ -44,43 +44,43 @@ local set_4V5   = 0xC0       --4.5V
 local set_4V525 = 0xD0       --4.525V
 
 --充电电流常用参数,默认充电电流为250mA,即0.5倍*500=250mA
-local set_0I2 = 0x20        --0.2倍,0.2*500=100mA
-local set_0I5 = 0x00        --0.5倍,0.5*500=250mA
-local set_0I7 = 0x40        --0.7倍,0.7*500=350mA
-local set_0I9 = 0x60        --0.9倍,0.9*500=450mA
-local set_I = 0x80          --  1倍,1.0*500=500mA
-local set_1I5 = 0xA0        --1.5倍,1.5*500=750mA
-local set_2I = 0xC0         --  2倍,2.0*500=1000mA
-local set_3I = 0xE0         --  3倍,3.0*500=1500mA
+local set_0I2 = 0x22        --0.2倍,0.2*500=100mA
+local set_0I5 = 0x02        --0.5倍,0.5*500=250mA
+local set_0I7 = 0x42        --0.7倍,0.7*500=350mA
+local set_0I9 = 0x62        --0.9倍,0.9*500=450mA
+local set_I = 0x82          --  1倍,1.0*500=500mA
+local set_1I5 = 0xA2        --1.5倍,1.5*500=750mA
+local set_2I = 0xC2         --  2倍,2.0*500=1000mA
+local set_3I = 0xE2         --  3倍,3.0*500=1500mA
 
 local V_table={
-    ["224"] = "4.0V",
-    ["240"] = "4.1V",
+    ["14"] = "4.0V",
+    ["15"] = "4.1V",
     ["0"] = "4.2V",
-    ["16"] = "4.225V",
-    ["32"] = "4.25V",
-    ["48"] = "4.275V",
-    ["64"] = "4.3V",
-    ["80"] = "4.325V",
-    ["96"] = "4.35V",
-    ["112"] = "4.375V",
-    ["128"] = "4.4V",
-    ["144"] = "4.425V",
-    ["160"] = "4.45V",
-    ["176"] = "4.475V",
-    ["192"] = "4.5V",
-    ["208"] = "4.525V",
+    ["1"] = "4.225V",
+    ["2"] = "4.25V",
+    ["3"] = "4.275V",
+    ["4"] = "4.3V",
+    ["5"] = "4.325V",
+    ["6"] = "4.35V",
+    ["7"] = "4.375V",
+    ["8"] = "4.4V",
+    ["9"] = "4.425V",
+    ["10"] = "4.45V",
+    ["11"] = "4.475V",
+    ["12"] = "4.5V",
+    ["13"] = "4.525V",
 }
 
 local I_table={
-    ["32"] = "100mA",
+    ["1"] = "100mA",
     ["0"] = "250mA",
-    ["64"] = "350mA",
-    ["96"] = "450mA",
-    ["128"] = "500mA",
-    ["160"] = "750mA",
-    ["192"] = "1000mA",
-    ["224"] = "1500mA",
+    ["2"] = "350mA",
+    ["3"] = "450mA",
+    ["4"] = "500mA",
+    ["5"] = "750mA",
+    ["6"] = "1000mA",
+    ["7"] = "1500mA",
 }
 
 local charge_status_table={
@@ -99,7 +99,7 @@ sys.taskInit(function()
     local result, data = yhm27xx.cmd(gpio_pin, sensor_addr, id_register)
     sys.wait(200)
     --设置充电电压为4V
-    result,data = sensor.yhm27xx(gpio_pin, sensor_addr, V_ctrl_register, set_4V)
+    result,data = yhm27xx.cmd(gpio_pin, sensor_addr, V_ctrl_register, set_4V)
     if result == true then
         log.info("yhm27xxx 设置电压成功")
     else
@@ -107,30 +107,31 @@ sys.taskInit(function()
     end
     sys.wait(200)
     --充电电流设置为1倍
-    result,data = yhm27xx.cmd(gpio_pin, sensor_addr, I_ctrl_register, set_0I5)
+    result,data = yhm27xx.cmd(gpio_pin, sensor_addr, I_ctrl_register, set_0I7)
 
     if result == true then
         log.info("yhm27xxx 设置电流成功")
     else
         log.info("yhm27xxx 设置电流失败")
     end
-
     log.info("读寄存器的值...")
-    sys.wait(200)
-    yhm27xx.reqinfo(gpio_pin, sensor_addr)
-    local result, data = sys.waitUntil("YHM27XX_REG", 200)
-    local Data_reg={}
-
-    if result then
-        for i=1,9 do
-            Data_reg[i] = data:byte(i)
+    adc.open(adc.CH_VBAT)
+    while true do
+        sys.wait(3000)
+        yhm27xx.reqinfo(gpio_pin, sensor_addr)
+        local result, data = sys.waitUntil("YHM27XX_REG", 500)
+        local Data_reg={}
+        -- log.info("result", result, "data", data)
+        if result then
+            for i=1,9 do
+                Data_reg[i] = data:byte(i)
+            end
+            log.info("当前电池电压", "VBAT", adc.get(adc.CH_VBAT))
+            log.info("yhm27xxx 寄存器0x00 功能:设置充电电压,   读取数据为:", V_table[tostring((Data_reg[1] & 0xF0)>>4)])
+            log.info("yhm27xxx 寄存器0x01 功能:设置充电电流,   读取数据为:", I_table[tostring((Data_reg[2] & 0xE0)>>5)])
+            log.info("yhm27xxx 寄存器0x05 功能:充电状态寄存器(只读),充电状态为:" , charge_status_table[tostring((Data_reg[6] & 0xE0)>>5)])
         end
-
-        log.info("yhm27xxx 寄存器0x00 功能:设置充电电压,   读取数据为:", V_table[tostring(Data_reg[1])])
-        log.info("yhm27xxx 寄存器0x00 功能:设置充电电流,   读取数据为:", I_table[tostring(Data_reg[2])])
-        log.info("yhm27xxx 寄存器0x05 功能:充电状态寄存器(只读),读取数据为:" , charge_status_table[tostring((Data_reg[6] & 0xE0)>>5)])
     end
-
 end)
 
 sys.run()