|
||
|
![]() |
![]() |
Samsung Galaxy Note II Para hablar del nuevo hermano mayor del Note |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Temperatura de carga demasiado baja
Buenas, a ver si alguien puede ayudarme.
Mi Note 2 me dice que la temperatura de carga es demasiado baja y por eso no carga. He probado a cambiar el flex, a he probado a cambiar la batería, a cambiar el sotfware y nada :/ incluso le di temperatura a mi note con la cocina ![]() Por lo tanto lo unico posible es que la placa base tenga algún componente mal, ¿no? Un saludo Edit: decir que en modo ODIN si carga, aunque muy lento Edtit2: por el módulo de carga inalámbrica tampoco carga, así que sigue sin ser el flex de carga Última edición por Simeneuro Día 13/09/15 a las 17:42:23. |
|
#2
|
||||
|
||||
Por si le pasa a alguien mas, hay que parchear esto:
static int sec_bat_check_temper(struct sec_bat_info *info) { struct power_supply *psy = power_supply_get_by_name(info->fuel_gauge_name); union power_supply_propval value; int ret; int temp; int temp_adc = s3c_read_temper_adc(info); int health = info->batt_health; int low = 0; int high = 0; int mid = 0; calculate_average_adc(info, &info->temper_adc_sample, temp_adc); if (!info->adc_table || !info->adc_arr_size) { /* using fake temp * temp = 300; info->batt_temp = temp; return temp; } high = info->adc_arr_size - 1; while (low <= high) { mid = (low + high) / 2; if (info->adc_table[mid].adc > temp_adc) high = mid - 1; else if (info->adc_table[mid].adc < temp_adc) low = mid + 1; else break; } temp = info->adc_table[mid].temperature; info->batt_temp = temp; if (temp >= HIGH_BLOCK_TEMP) { if (health != POWER_SUPPLY_HEALTH_OVERHEAT && health != POWER_SUPPLY_HEALTH_UNSPEC_FAILURE) if (info->batt_temp_high_cnt < TEMP_BLOCK_COUNT) info->batt_temp_high_cnt++; dev_info(info->dev, "%s: high count = %d\n", __func__, info->batt_temp_high_cnt); } else if (temp <= HIGH_RECOVER_TEMP && temp >= LOW_RECOVER_TEMP) { if (health == POWER_SUPPLY_HEALTH_OVERHEAT || health == POWER_SUPPLY_HEALTH_COLD) if (info->batt_temp_recover_cnt < TEMP_BLOCK_COUNT) info->batt_temp_recover_cnt++; dev_info(info->dev, "%s: recovery count = %d\n", __func__, info->batt_temp_recover_cnt); } else if (temp <= LOW_BLOCK_TEMP) { if (health != POWER_SUPPLY_HEALTH_COLD && health != POWER_SUPPLY_HEALTH_UNSPEC_FAILURE) if (info->batt_temp_low_cnt < TEMP_BLOCK_COUNT) info->batt_temp_low_cnt++; dev_info(info->dev, "%s: low count = %d\n", __func__, info->batt_temp_low_cnt); } else { info->batt_temp_high_cnt = 0; info->batt_temp_low_cnt = 0; info->batt_temp_recover_cnt = 0; } if (info->batt_temp_high_cnt >= TEMP_BLOCK_COUNT) info->batt_health = POWER_SUPPLY_HEALTH_OVERHEAT; else if (info->batt_temp_low_cnt >= TEMP_BLOCK_COUNT) info->batt_health = POWER_SUPPLY_HEALTH_COLD; else if (info->batt_temp_recover_cnt >= TEMP_BLOCK_COUNT) info->batt_health = POWER_SUPPLY_HEALTH_GOOD; /* Set temperature to fuel gauge * if (info->fuel_gauge_name) { value.intval = info->batt_temp / 10; ret = psy->set_property(psy, POWER_SUPPLY_PROP_TEMP, &value); if (ret) { dev_err(info->dev, "%s: fail to set temperature(%d)\n", __func__, ret); } } dev_info(info->dev, "%s: temp=%d, adc=%d\n", __func__, temp, temp_adc); return temp; } |
#3
|
||||
|
||||
Correcto, es el termistor, he comprobado los valores con un APK y da siempre -20ºC aún teniendo el note 2 en la cocinilla
![]() me tocara comprar otra placa base. he pillado una por 40 lereles Última edición por Simeneuro Día 13/09/15 a las 18:59:45. |
![]() |
![]() |
||||||
|