ULP Advisor > Rule 4.1 Terminate unused GPIOs

ULPAdvisorBanner.PNG

ULP Advisor - Rule Table

ULP 1.1 Ensure LPM usage
ULP 2.1 Leverage timer module for delay loops
ULP 3.1 Use ISRs instead of flag polling
ULP 4.1 Terminate unused GPIOs
ULP 5.1 Avoid processing-intensive operations: modulo, divide.
ULP 5.2 Avoid processing-intensive operations: floating point
ULP 5.3 Avoid processing-intensive operations: (s)printf()
ULP 6.1 Avoid multiplication on devices without hardware multiplier
ULP 6.2 Use MATHLIB for complex math operations
ULP 6.3 Use Low Energy Accelerator (LEA) software library
ULP 7.1 Use local instead of global variables where possible
ULP 8.1 Use 'static' & 'const' modifiers for local variables
ULP 9.1 Use pass by reference for large variables
ULP 10.1 Minimize function calls from within ISRs
ULP 11.1 Use lower bits for loop program control flow
ULP 11.2 Use lower bits for port bit-banging
ULP 12.1 Use DMA for large memcpy() calls
ULP 12.1b Use DMA for potentially large memcpy() calls
ULP 12.2 Use DMA for repetitive transfer
ULP 13.1 Count down in loops
ULP 14.1 Use unsigned variables for indexing
ULP 15.1 Use bit-masks instead of bit-fields

Let us know what you think! Feedback, suggestions & comments
are welcome @ ULPAdvisorFeedback@list.ti.com

What it means

When an unused port pin is left undefined or non-terminated, the floating voltage or shoot-through current on the pin can increase the overall current consumption.

Risks, Severity

Considerable additional supply current due to undefined input voltages.

Why it is happening

This remark is issued when a port on the MSP430 device is not initialized/terminated:

Remedy

To remedy this ULP rule violation, each and every port on the MSP430 device needs to be initialized/terminated. Each port pin should have the following:

  P1DIR = 0xFF;
  P1OUT = 0x00;
  
  P1SEL = 0xBE;
  
  P1SEL2 = 0xEF;

Code Example

See the rest of the code examples for all MSP430 devices here!

More Resources

Want to squeeze a few more nanoAmps out of your application? Leverage the e2e (Engineer-to-Engineer) online community to get all of your ULP questions answered! Or, if you are an Ultra-Low Power pro, give back to the community with your expertise.

Go to MSP430's e2e online forum! 

If you are posting on the forums in relation to this rule, try using the tag "ULP_4.1"

Known Issues

Notice that ULP Advisor detects the number of ports & GPIO pins on the device basing strictly on the device number and does not have the knowledge on the actual package for the device. Therefore, it always assumes the largest package available to the device. In the event that a smaller package is actually used in the application, certain port pins might not be available on the device package. If this is the case, this remark can be safely ignored as these pins are internally terminated to ensure lowest power consumption and therefore the application is not required to configure/terminate these port pins.

For devices with Port 11 but no Port 12, ULP Advisor still checks for Port 12 initialization. This is a known bug and will be fixed in the upcoming release. At the moment, the workaround for this issue is to initialize Port 11 using Port F registers (16-bit wide).

E2e.jpg For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article Compiler/diagnostic messages/MSP430/10372 here.