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.

BOOSTXL-SHARP128: BOOSTXL-SHARP128 with MSP430F5529

Part Number: BOOSTXL-SHARP128
Other Parts Discussed in Thread: MSP-EXP430FR5969,

Hi,

I would like to get my BOOSTXL-SHARP128 & MSP-EXP430FR5969 to work at the lowest possible power. Ideally I'd like to get it working with the MSP-EXP430F5529, as I need the extra GPIOs, but for now I'm using the 5969 to debug.

I've managed to get the current consumption down from ~900 uA to 140 uA by initialising all of the ports as outputs. The current consumption remains the same with the module disconnected. The only way I can get the current consumption down to LPM (sub-uA) levels is to comment out all of the myScreen functions. Can anyone help? I need to get the display module working with my Launchpad at lowest possible power asap.

Is there something I'm missing?

Thanks in advance.

#include "SPI.h"
#include "OneMsTaskTimer.h"
#include <LCD_SharpBoosterPack_SPI.h>
LCD_SharpBoosterPack_SPI myScreen(SHARP_128);
uint8_t myOrientation = 0;
uint16_t myCount = 0;
#define LCD_VERTICAL_MAX    myScreen.getSize()
#define LCD_HORIZONTAL_MAX  myScreen.getSize()


void setup() {
  Serial.begin(9600);

  myScreen.begin();
  myScreen.clearBuffer();

  pinMode(GREEN_LED, OUTPUT);
  pinMode(PUSH2, INPUT_PULLUP);
  attachInterrupt(PUSH2, interrupt, FALLING);
  digitalWrite(GREEN_LED, LOW);

  P1DIR |= BIT1+BIT2+BIT3+BIT4+BIT5+BIT6+BIT7;
  P1OUT &= (~BIT1)+(~BIT2)+(~BIT3)+(~BIT4)+(~BIT5)+(~BIT6)+(~BIT7);
  P2DIR |= BIT0+BIT1+BIT2+BIT3+BIT4+BIT5+BIT6+BIT7;
  P2OUT &= (~BIT0)+(~BIT1)+(~BIT2)+(~BIT3)+(~BIT4)+(~BIT5)+(~BIT6)+(~BIT7);
  P3DIR |= BIT0+BIT1+BIT2+BIT3+BIT4+BIT5+BIT6+BIT7;
  P3OUT &= (~BIT0)+(~BIT1)+(~BIT2)+(~BIT3)+(~BIT4)+(~BIT5)+(~BIT6)+(~BIT7);
  P4DIR |= BIT0+BIT1+BIT2+BIT3+BIT4+BIT5+BIT6+BIT7;
  P4OUT &= (~BIT0)+(~BIT1)+(~BIT2)+(~BIT3)+(~BIT4)+(~BIT6)+(~BIT5)+(~BIT7);
  
}

void loop() {
            delay(10);
            Serial.print("loop");
            myScreen.setFont(1);
            myScreen.setCharXY(10, 10);
            myScreen.print("TEST");
            myScreen.flush();         
            sleep(1000);
            myScreen.clear();
            suspend();               
}

void interrupt(){
  //delay(10);
  wakeup();
}

  • Hello,

    For Energia-related questions, we recommend posting them to https://forum.43oh.com. The "myScreen" function configures the LCD over SPI, so perhaps the SPI clock frequency requires a clock other than XT1 (or ACLK) as the source which consumes more power.

    Regards,

    James
  • Hi Kris,

    i assume that the current consumption is related to the OneMSTaskTimer which is used inside the LCD lib to toggle the VCOM signal of the LCE once per second.

    You can also init the LCD without enabling the task timer with:

    LCD_SharpBoosterPack_SPI myScreen(6, 5, 2, false, SHARP_128);

    instead of :

    LCD_SharpBoosterPack_SPI myScreen(SHARP_128);

    But then you should call this function manually once per second:

    SendToggleVCOMCommand();

    Regards,

     Stefan

  • Thanks for your replies. The timer issue makes sense.

**Attention** This is a public forum