diff --git a/code/application/source/sf_app/code/source/battery/sf_battery.c b/code/application/source/sf_app/code/source/battery/sf_battery.c index 1279f3862..106356b2a 100644 --- a/code/application/source/sf_app/code/source/battery/sf_battery.c +++ b/code/application/source/sf_app/code/source/battery/sf_battery.c @@ -85,8 +85,8 @@ UINT32 sf_battery_voltage_convert(UINT32 resistanceGnd, UINT32 resistanceVin, UI SARADC reference voltage:1.8V */ - volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 511; - + //volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 511; + volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 2696; return volt; } @@ -94,8 +94,8 @@ UINT32 sf_battery_convert_to_adc(UINT32 resistanceGnd, UINT32 resistanceVin, UIN { UINT32 adcVal = 0; - adcVal = volt * resistanceGnd * 511 / 27 / (resistanceGnd + resistanceVin); - + //adcVal = volt * resistanceGnd * 511 / 27 / (resistanceGnd + resistanceVin); + adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin); return adcVal; } @@ -187,7 +187,8 @@ UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval) vos_util_delay_ms(1); - *pval = adc_readData(0); + *pval = adc_readVoltage(0); + //*pval = adc_readData(0); //printf("[%s:%d] *pval:%d\n", __FUNCTION__, __LINE__,*pval); getAdcFlg = 0; return SUCCESS; @@ -278,7 +279,8 @@ UINT32 sf_battery_adc_value_get_once(void) UINT32 liPolymerVoltageVal = 0; UINT32 batVoltageVal = 0; static UINT8 getBatAdcFlg = 0; - + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + if(getBatAdcFlg) return SUCCESS; @@ -288,19 +290,27 @@ UINT32 sf_battery_adc_value_get_once(void) if(sf_adc_value_get(SF_ADC_DC, &batAdc) == SUCCESS) { dcVoltageVal = sf_battery_voltage_convert(10, 100, batAdc); - dcVoltageVal += 2; + dcVoltageVal += 2; + if(puiPara->BatteryLogSwitch) + printf("DC ADC Value:%d After Convert:%d(%d.%dV)\n",batAdc,dcVoltageVal,dcVoltageVal/10,dcVoltageVal%10); + } if(sf_adc_value_get(SF_ADC_LI, &batAdc) == SUCCESS) { liPolymerVoltageVal = sf_battery_voltage_convert(15, 100, batAdc); liPolymerVoltageVal += 2; + if(puiPara->BatteryLogSwitch) + printf("Li ADC Value:%d After Convert:%d(%d.%dV)\n",batAdc,liPolymerVoltageVal,liPolymerVoltageVal/10,liPolymerVoltageVal%10); + } if(sf_adc_value_get(SF_ADC_BATT, &batAdc) == SUCCESS) { batVoltageVal = sf_battery_voltage_convert(15, 100, batAdc); batVoltageVal += 2; + if(puiPara->BatteryLogSwitch) + printf("Bat ADC Value:%d After Convert:%d(%d.%dV)\n",batAdc,batVoltageVal,batVoltageVal/10,batVoltageVal%10); } _DcVoltageVal = dcVoltageVal; diff --git a/rtos/code/driver/na51089/source/mcu/sf_battery.c b/rtos/code/driver/na51089/source/mcu/sf_battery.c index 0bd105289..883111522 100644 --- a/rtos/code/driver/na51089/source/mcu/sf_battery.c +++ b/rtos/code/driver/na51089/source/mcu/sf_battery.c @@ -90,8 +90,8 @@ UINT32 sf_battery_voltage_convert(UINT32 resistanceGnd, UINT32 resistanceVin, UI SARADC reference voltage:1.8V */ - volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 511; - + //volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 511; + volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 2696; return volt; } @@ -99,7 +99,8 @@ UINT32 sf_battery_convert_to_adc(UINT32 resistanceGnd, UINT32 resistanceVin, UIN { UINT32 adcVal = 0; - adcVal = volt * resistanceGnd * 511 / 27 / (resistanceGnd + resistanceVin); + //adcVal = volt * resistanceGnd * 511 / 27 / (resistanceGnd + resistanceVin); + adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin); return adcVal; } @@ -189,7 +190,9 @@ UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval) //vos_util_delay_us(400); vos_util_delay_ms(1); - *pval = adc_readData(0); + *pval = adc_readVoltage(0); + //*pval = adc_readData(0); + //printf("[%s:%d] 1 *pval:%lu\n", __FUNCTION__, __LINE__,*pval); getAdcFlg = 0; return SUCCESS; @@ -280,7 +283,8 @@ UINT32 sf_battery_adc_value_get_once(void) UINT32 liPolymerVoltageVal = 0; UINT32 batVoltageVal = 0; static UINT8 getBatAdcFlg = 0; - + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + if(getBatAdcFlg) return SUCCESS; @@ -290,19 +294,26 @@ UINT32 sf_battery_adc_value_get_once(void) if(sf_adc_value_get(SF_ADC_DC, &batAdc) == SUCCESS) { dcVoltageVal = sf_battery_voltage_convert(10, 100, batAdc); - dcVoltageVal += 4; + dcVoltageVal += 4; + if(puiPara->BatteryLogSwitch) + printf("DC ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,dcVoltageVal,dcVoltageVal/10,dcVoltageVal%10); } if(sf_adc_value_get(SF_ADC_LI, &batAdc) == SUCCESS) { liPolymerVoltageVal = sf_battery_voltage_convert(15, 100, batAdc); liPolymerVoltageVal += 4; + if(puiPara->BatteryLogSwitch) + printf("Li ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,liPolymerVoltageVal,liPolymerVoltageVal/10,liPolymerVoltageVal%10); } if(sf_adc_value_get(SF_ADC_BATT, &batAdc) == SUCCESS) { batVoltageVal = sf_battery_voltage_convert(15, 100, batAdc); batVoltageVal += 4; + if(puiPara->BatteryLogSwitch) + printf("Bat ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,batVoltageVal,batVoltageVal/10,batVoltageVal%10); + } _DcVoltageVal = dcVoltageVal;