EFR32 Series 1 – What is the maximum value resistor to use for a GPIO pull-up / down?
Maximum external pull-up / down resistor value for Industrial rated devices operating in temperatures up to -40/85° C.
EFR32 (all GPIOs except PB14/PB15): 10 M ohms
EFR32 (PB14/PB15): 9.1 M ohms
Maximum external pull-up / down resistor value for High Temperature Industrial rated devices operating in temperatures up to +125° C.
EFR32 (all GPIOs except PB14/PB15): 4.12 M ohms
EFR32 (PB14/PB15): 1.8 M ohms
Use of an external pull-up or pull-down resistor instead of the internal pull-up or pull-down on an EFR32 GPIO provides an opportunity for reduced current draw in certain applications, particularly in battery powered designs. The reason for this is the maximum value resistance that works as a pull-up or pull-down for an EFR32 GPIO pin is much greater than the internal pull-up or pull-down resistance listed in the EFR32 datasheets (around 43k ohms), which equates to significant power savings in which one or more pull-up or pull-down resistors are frequently drawing current. For example, a battery operated open / closed sensor switch may be required to have a pull-up or pull-down on the switch circuit. The firmware may be monitoring for a high level on the switch / GPIO circuit. In the case of a normally closed switch, when the switch is engaged, the resulting circuit to ground through the switch is detected by the firmware and acted upon. Depending upon how often or how long the switch is activated, the resulting power drain through the pull-up or pull-down could significantly shorten the overall lifespan of the battery. In this type of situation, use a large value external resistor instead of the internal pull-up or pull-down configuration of the GPIO pin in order to reduce the current draw and extend battery life.
To arrive at 9.1M ohms / 10 M ohms / as the maximum safe resistor pull-up / down value to use in temperature range -40° C to 85° C, we first determine the GPIO maximum input leakage current. Characterization testing of Engineering IC test lots have revealed an upper limit of 30 nA for industrial temperature rated devices and an upper limit of 110 nA for high temperature industrial rated devices. The exception are GPIOs PB14/PB15 which are revealed to have an upper limit of 50 nA in the range of -40° C to 85° C, and 250 nA at 125° C.
Refer to the datasheet table 4.37 for Input leakage current (IIOLEAK), Input low voltage (VIOIL) and Input high voltage (VIOIH)
Having determined the leakage current, we then calculate the minimum input high voltage for the GPIO by multiplying the minimum IOVDD Operating supply voltage, 1.62 V (table 4.2 of the datasheet) by 0.7 (Table 4.37), giving us 1.134 V (1.62 * 0.7 = 1.134 V). Next, we determine the allowable voltage drop across the external pull-up by subtracting the minimum Input high voltage from the minimum IOVDD Operating supply voltage, (1.62 V – 1.134 V = 0.486 V). By using Ohm’s Law to divide the voltage drop of the external pull-up by the threshold leakage current value and multiplying the result by 0.95, we safely determine the appropriate pull-up resistor value with a 5% margin. For high temperature industrial range of -40° C to +125° C, (0.486 V / 0.000000110 A * 0.95 = 4.2 M ohms), we reduce the pull-up resistor value to 4.12 M ohms as the nearest commercially available resistor value. For the temperature range of -40° C to +85° C, (0.486 V / 0.00000003 A * 0.95 = 15.39 M ohms), we limit the pull-up resistor value to 10 M ohms. The reason is anything greater in resistance than 10 M ohms is simply not reliable as the circuit will be affected by the resistances of many contaminants such as moisture and dirt, etc. For EFR32 GPIO PB14/15, the equation is (0.486 V / 0.00000005 A * 0.95 = 9.2 M ohms), where we limit the pull-up resistor to 9.1 M ohms as the nearest commercially available resistor value.
Similarly, for the pull-down value we calculate the maximum input low voltage for the GPIO by multiplying 0.3 (table 4.37) by the minimum IOVDD Operating supply voltage, (0.3 V * 1.62 V = 0.486 V). The result, 0.486 V, is the allowable voltage drop for the external pull-down resistor. By using Ohm’s Law to divide the voltage drop of the external pull-down by the threshold leakage current value and multiplying the result by 0.95, we safely determine the appropriate pull-down resistor value with a 5% margin. For the high temperature industrial range of -40° C to +125° C, (0.486 V / 0.00000011 A * 0.95 = 4.2 M ohms), and for the temperature range of -40° C to +85° C, (0.486 V / 0.00000003 A * 0.95 = 15.39 M ohms), we again limit the pull-down resistor value to 10 M ohms for reliability.
The same formulas used above when applied to PB14/15 for the temperature range of -40° C to +125° C result in maximum pull-up/down resistor values of 1.8 M ohms. (0.486 V / 0.00000025 A * 0.95 = 1.85M ohms).