mirror of https://github.com/meshcore-dev/MeshCore
23 changed files with 47 additions and 415 deletions
@ -0,0 +1,15 @@ |
|||||
|
#include "StationG3Board.h" |
||||
|
|
||||
|
void StationG3Board::powerOff() { |
||||
|
#ifdef P_PA1_EN |
||||
|
setPAModeHigh(false); |
||||
|
rtc_gpio_hold_en((gpio_num_t)P_PA1_EN); |
||||
|
#endif |
||||
|
|
||||
|
#ifdef P_PRIMARY_LNA_EN |
||||
|
setPrimaryLNAControl(true); |
||||
|
rtc_gpio_hold_en((gpio_num_t)P_PRIMARY_LNA_EN); |
||||
|
#endif |
||||
|
|
||||
|
ESP32Board::powerOff(); |
||||
|
} |
||||
@ -1,40 +1,30 @@ |
|||||
#include "ThinknodeM2Board.h" |
#include "ThinknodeM2Board.h" |
||||
|
|
||||
|
|
||||
|
|
||||
void ThinknodeM2Board::begin() { |
void ThinknodeM2Board::begin() { |
||||
pinMode(PIN_VEXT_EN, OUTPUT); |
pinMode(PIN_VEXT_EN, OUTPUT); |
||||
digitalWrite(PIN_VEXT_EN, !PIN_VEXT_EN_ACTIVE); // force power cycle
|
digitalWrite(PIN_VEXT_EN, !PIN_VEXT_EN_ACTIVE); // force power cycle
|
||||
delay(20); // allow power rail to discharge
|
delay(20); // allow power rail to discharge
|
||||
digitalWrite(PIN_VEXT_EN, PIN_VEXT_EN_ACTIVE); // turn backlight back on
|
digitalWrite(PIN_VEXT_EN, PIN_VEXT_EN_ACTIVE); // turn backlight back on
|
||||
delay(120); // give display time to bias on cold boot
|
delay(120); // give display time to bias on cold boot
|
||||
ESP32Board::begin(); |
ESP32Board::begin(); |
||||
pinMode(PIN_STATUS_LED, OUTPUT); // init power led
|
pinMode(PIN_STATUS_LED, OUTPUT); // init power led
|
||||
} |
} |
||||
|
|
||||
void ThinknodeM2Board::enterDeepSleep(uint32_t secs, int pin_wake_btn) { |
uint16_t ThinknodeM2Board::getBattMilliVolts() { |
||||
esp_deep_sleep_start(); |
analogReadResolution(12); |
||||
} |
analogSetPinAttenuation(PIN_VBAT_READ, ADC_11db); |
||||
|
|
||||
void ThinknodeM2Board::powerOff() { |
uint32_t mv = 0; |
||||
enterDeepSleep(0); |
for (int i = 0; i < 8; ++i) { |
||||
|
mv += analogReadMilliVolts(PIN_VBAT_READ); |
||||
|
delayMicroseconds(200); |
||||
} |
} |
||||
|
mv /= 8; |
||||
|
|
||||
uint16_t ThinknodeM2Board::getBattMilliVolts() { |
analogReadResolution(10); |
||||
analogReadResolution(12); |
return static_cast<uint16_t>(mv * ADC_MULTIPLIER); |
||||
analogSetPinAttenuation(PIN_VBAT_READ, ADC_11db); |
|
||||
|
|
||||
uint32_t mv = 0; |
|
||||
for (int i = 0; i < 8; ++i) { |
|
||||
mv += analogReadMilliVolts(PIN_VBAT_READ); |
|
||||
delayMicroseconds(200); |
|
||||
} |
|
||||
mv /= 8; |
|
||||
|
|
||||
analogReadResolution(10); |
|
||||
return static_cast<uint16_t>(mv * ADC_MULTIPLIER ); |
|
||||
} |
} |
||||
|
|
||||
const char* ThinknodeM2Board::getManufacturerName() const { |
const char *ThinknodeM2Board::getManufacturerName() const { |
||||
return "Elecrow ThinkNode M2"; |
return "Elecrow ThinkNode M2"; |
||||
} |
} |
||||
|
|||||
Loading…
Reference in new issue