mirror of
https://github.com/meshcore-dev/MeshCore.git
synced 2026-04-20 22:13:47 +00:00
xiao-nrf keep vbat_en to low to prevent issues ...
This commit is contained in:
parent
7b1582a0b9
commit
6735960a4e
2 changed files with 21 additions and 17 deletions
|
|
@ -49,20 +49,16 @@ public:
|
||||||
// Please read befor going further ;)
|
// Please read befor going further ;)
|
||||||
// https://wiki.seeedstudio.com/XIAO_BLE#q3-what-are-the-considerations-when-using-xiao-nrf52840-sense-for-battery-charging
|
// https://wiki.seeedstudio.com/XIAO_BLE#q3-what-are-the-considerations-when-using-xiao-nrf52840-sense-for-battery-charging
|
||||||
|
|
||||||
pinMode(BAT_NOT_CHARGING, INPUT);
|
// We can't drive VBAT_ENABLE to HIGH as long
|
||||||
if (digitalRead(BAT_NOT_CHARGING) == HIGH) {
|
// as we don't know wether we are charging or not ...
|
||||||
int adcvalue = 0;
|
// this is a 3mA loss (4/1500)
|
||||||
analogReadResolution(12);
|
digitalWrite(VBAT_ENABLE, LOW);
|
||||||
analogReference(AR_INTERNAL_3_0);
|
int adcvalue = 0;
|
||||||
digitalWrite(VBAT_ENABLE, LOW);
|
analogReadResolution(12);
|
||||||
delay(10);
|
analogReference(AR_INTERNAL_3_0);
|
||||||
adcvalue = analogRead(PIN_VBAT);
|
delay(10);
|
||||||
digitalWrite(VBAT_ENABLE, HIGH);
|
adcvalue = analogRead(PIN_VBAT);
|
||||||
return (adcvalue * ADC_MULTIPLIER * AREF_VOLTAGE) / 4.096;
|
return (adcvalue * ADC_MULTIPLIER * AREF_VOLTAGE) / 4.096;
|
||||||
} else {
|
|
||||||
digitalWrite(VBAT_ENABLE, HIGH); // ensures high !
|
|
||||||
return 4200; // charging value
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* getManufacturerName() const override {
|
const char* getManufacturerName() const override {
|
||||||
|
|
|
||||||
|
|
@ -60,11 +60,19 @@ void initVariant()
|
||||||
// Disable reading of the BAT voltage.
|
// Disable reading of the BAT voltage.
|
||||||
// https://wiki.seeedstudio.com/XIAO_BLE#q3-what-are-the-considerations-when-using-xiao-nrf52840-sense-for-battery-charging
|
// https://wiki.seeedstudio.com/XIAO_BLE#q3-what-are-the-considerations-when-using-xiao-nrf52840-sense-for-battery-charging
|
||||||
pinMode(VBAT_ENABLE, OUTPUT);
|
pinMode(VBAT_ENABLE, OUTPUT);
|
||||||
digitalWrite(VBAT_ENABLE, HIGH);
|
//digitalWrite(VBAT_ENABLE, HIGH);
|
||||||
|
// This was taken from Seeed github butis not coherent with the doc,
|
||||||
|
// VBAT_ENABLE should be kept to LOW to protect P0.14, (1500/500)*(4.2-3.3)+3.3 = 3.9V > 3.6V
|
||||||
|
// This induces a 3mA current in the resistors :( but it's better than burning the nrf
|
||||||
|
digitalWrite(VBAT_ENABLE, LOW);
|
||||||
|
|
||||||
// Low charging current.
|
// Low charging current (50mA)
|
||||||
// https://wiki.seeedstudio.com/XIAO_BLE#battery-charging-current
|
// https://wiki.seeedstudio.com/XIAO_BLE#battery-charging-current
|
||||||
pinMode(PIN_CHARGING_CURRENT, INPUT);
|
//pinMode(PIN_CHARGING_CURRENT, INPUT);
|
||||||
|
|
||||||
|
// High charging current (100mA)
|
||||||
|
pinMode(PIN_CHARGING_CURRENT, OUTPUT);
|
||||||
|
digitalWrite(PIN_CHARGING_CURRENT, LOW);
|
||||||
|
|
||||||
pinMode(PIN_QSPI_CS, OUTPUT);
|
pinMode(PIN_QSPI_CS, OUTPUT);
|
||||||
digitalWrite(PIN_QSPI_CS, HIGH);
|
digitalWrite(PIN_QSPI_CS, HIGH);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue