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.
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(); }
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
**Attention** This is a public forum