GPIO - nRF9160 - on low battery (<3.0V), some GPIOs seems to stick/switch to output mode active

nRF9160, SICA B1A, mfw 1.3.7, NCS 3.1.0

I currently try to test the situation, when the battery gets drained "too much" and the voltage drops below 3.0V (e.g. 2.9V) on VDD1,VDD2 and VDD_GPIO.

The device has several outputs, but they behave different, even if I can't see the difference in the configuration nor usage. Some are on, some are off

I agree, that this is slightly "out of spec", but it's pretty nasty, because it potentially drains the battery further.

Are there any configs to prevent such "break down effects"?

Parents
  • Used overlay:

    &pinctrl {
    
    	uart0_default: uart0_default {
    		group1 {
    			psels = <NRF_PSEL(UART_TX, 0, 23)>,
    				<NRF_PSEL(UART_RTS, 0, 25)>;
    		};
    		group2 {
    			psels = <NRF_PSEL(UART_RX, 0, 22)>,
    				<NRF_PSEL(UART_CTS, 0, 24)>;
    			bias-pull-up;
    		};
    	};
    
    	uart0_sleep: uart0_sleep {
    		group1 {
    			psels = <NRF_PSEL(UART_TX, 0, 23)>,
    				<NRF_PSEL(UART_RX, 0, 22)>,
    				<NRF_PSEL(UART_RTS, 0, 25)>,
    				<NRF_PSEL(UART_CTS, 0, 24)>;
    			low-power-enable;
    		};
    	};
    };
    
    /	{
    
    	leds {
    		led0: led_0 {
    			gpios = <&gpio0 26 0>;
    		};
    		led1: led_1 {
    			gpios = <&gpio0 27 0>;
    		};
    		led2: led_2 {
    			gpios = <&gpio0 28 0>;
    		};
    	};
    
    };
    
    &uart1 {
    	status = "disabled";
    };
    
    &i2c2 {
    	status = "disabled";
    };
    
    &spi3 {
    	status = "disabled";
    };
    

    GPIO for led0 and led1 are high, led2 is low. I don't see, that this is controlled by the app. 

Reply
  • Used overlay:

    &pinctrl {
    
    	uart0_default: uart0_default {
    		group1 {
    			psels = <NRF_PSEL(UART_TX, 0, 23)>,
    				<NRF_PSEL(UART_RTS, 0, 25)>;
    		};
    		group2 {
    			psels = <NRF_PSEL(UART_RX, 0, 22)>,
    				<NRF_PSEL(UART_CTS, 0, 24)>;
    			bias-pull-up;
    		};
    	};
    
    	uart0_sleep: uart0_sleep {
    		group1 {
    			psels = <NRF_PSEL(UART_TX, 0, 23)>,
    				<NRF_PSEL(UART_RX, 0, 22)>,
    				<NRF_PSEL(UART_RTS, 0, 25)>,
    				<NRF_PSEL(UART_CTS, 0, 24)>;
    			low-power-enable;
    		};
    	};
    };
    
    /	{
    
    	leds {
    		led0: led_0 {
    			gpios = <&gpio0 26 0>;
    		};
    		led1: led_1 {
    			gpios = <&gpio0 27 0>;
    		};
    		led2: led_2 {
    			gpios = <&gpio0 28 0>;
    		};
    	};
    
    };
    
    &uart1 {
    	status = "disabled";
    };
    
    &i2c2 {
    	status = "disabled";
    };
    
    &spi3 {
    	status = "disabled";
    };
    

    GPIO for led0 and led1 are high, led2 is low. I don't see, that this is controlled by the app. 

Children
Related