From 45163fae62e60fc7fdd37e1181498ccddb49fc08 Mon Sep 17 00:00:00 2001 From: Riccardo Rizzo Date: Wed, 5 Jun 2019 14:12:23 +0200 Subject: [PATCH] Changed MKRGSM1400 variant to increase the reliability Changed input source control register value to avoid module's hung due to discharge peak this change increase the reliability of the SARA when 2G band's are used --- variants/mkrgsm1400/variant.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/variants/mkrgsm1400/variant.cpp b/variants/mkrgsm1400/variant.cpp index a89a0c228..2095589a4 100644 --- a/variants/mkrgsm1400/variant.cpp +++ b/variants/mkrgsm1400/variant.cpp @@ -185,6 +185,22 @@ SERCOM sercom5(SERCOM5); #define PMIC_REG01 0x01 #define PMIC_REG07 0x07 +#define PMIC_REG00 0x00 + +static inline void set_voltage_current_thresholds() { + PERIPH_WIRE.initMasterWIRE(100000); + PERIPH_WIRE.enableWIRE(); + pinPeripheral(PIN_WIRE_SDA, g_APinDescription[PIN_WIRE_SDA].ulPinType); + pinPeripheral(PIN_WIRE_SCL, g_APinDescription[PIN_WIRE_SCL].ulPinType); + + PERIPH_WIRE.startTransmissionWIRE( PMIC_ADDRESS, WIRE_WRITE_FLAG ); + PERIPH_WIRE.sendDataMasterWIRE(PMIC_REG00); + PERIPH_WIRE.sendDataMasterWIRE(0x06); // input voltage limit = 3.88V, input current limit = 2A + PERIPH_WIRE.prepareCommandBitsWire(WIRE_MASTER_ACT_STOP); + + PERIPH_WIRE.disableWIRE(); +} + static inline void enable_battery_charging() { PERIPH_WIRE.initMasterWIRE(100000); PERIPH_WIRE.enableWIRE(); @@ -230,6 +246,7 @@ void initVariant() { enable_battery_charging(); } disable_battery_fet(!batteryPresent); + set_voltage_current_thresholds(); #endif // put GSM modem in reset on start to conserve power if it's not used