This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430FR69891 - Rules for setting internal pull-ups with external pull-ups in place

Other Parts Discussed in Thread: MSP430FR69891

We’re reading through the MSP430FR69891 spec and wasn’t clear on how to program the inputs for the device.  It indicates that there are internal pull-ups for the input lines but doesn’t indicate whether or not we should be programming them with internal pull-ups if we have external pull-ups as well.

 

For example, if we have a GPIO line with an external pull-up resistor on it, do we program that input to be an “input with pull-up” or as a normal input?  I was guessing that we program it as an input (without pull-ups) and let the external resistor do its job.  However, it could be read that since it has an external pull-up, we have to program the pin to indicate that the input is an “input with pull-up.”

  • Hi,

    The best way to understand this is with reference to the port schematic which can be found in the datasheet on P86.

    The Internal Pull-up is shown as as a resistor on this diagram. This resistor is directly attached to the Port I/O line and is enabled via the switch that is controlled by PxREN.y. If it is enabled via the switch it will be fed from the multiplexer with either VCC for pull up of from VSS for a pull down. The direction is set by the value that is written to PxOUT.y.

    I believe that at initial power up the PxREN.y switch is disabled so the port will initially be an input with no pull/up or pull down. Your external pull up will control the state of the port immediately after power up.

    To use the internal Pull up/down you need to enable it in software so there will be an initial delay until the software updates the state of the PxREN.y bits, and set the appropriate pull Up/Down with PxOUT.y.

    With an external Pull-up, programming the internal pull up as well will cause the internal pull up to be enabled in parallel with the external pull up so will reduce the resistance giving you a stronger pull up. (which may be useful in some cases). If you use an external pull up and enable PxREN.y and mistakenly set or leave PxOUT.y as zero you will have an external pull up fighting the internal pull down and will then get an undefined port state and excessive current consumption.

    Overall, if you have external resistor do not enable the internal ones. If you do not have an external resistor, enabling the internal one will define the port state if the pin is not connected. To ensure the lowest power consumption, unconnected port pins should be defined with either the internal OR external resistors.

    Roy

**Attention** This is a public forum