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.

MSP430FG4619 LCD_A Help

Other Parts Discussed in Thread: MSP430FG4619

Hello,

I'm using the MSP430FG4619 to control four 7-segment LEDs using LCD_A. I use 2-Mux mode. The LED segments light up in the correct configuration, but they are very dim. I need a way to increase their luminosity but have not been able to get them brighter. I've tried changing the LCD clock rate, using the internal charge pump, using external voltage references, none of which have made them brighter. The segments are directly connected from the output pins to COM0/1 with no resistance. The LEDs are very bright when I drop 2V across them without using the microcontroller, so I know they work. Below I include a portion of my setup code.

Any suggestions on how to make my LED segments brighter (using LCD_A)?

-Mike Nordhill

void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
FLL_CTL0 |= XCAP18PF; // Set load cap for 32k xtal

P2DIR = 0xfe; //Port 2 Pin 0 is forward button
P2OUT = 0xfe;
P9SEL += 0x03; //LED segments
P8SEL = 0xff;
P7SEL += 0xf8;
P5SEL = 0x07; //COM1 set to LCD_A
LCDACTL = LCDFREQ_192 | LCDON | LCD2MUX; //Turn on LCD
LCDAPCTL0 = LCDS16 | LCDS20 | LCDS24 | LCDS28; //Use segments 24-31

P6SEL = 0xff; // Enable A/D channel A0-2
ADC12CTL0 = ADC12ON + SHT0_8 + MSC; // Turn on ADC12, set sampling time
ADC12CTL1 = SHP + CONSEQ_3; // Use sampling timer, set mode
ADC12IE = 0x04; // Enable ADC12IFG.2 for ADC12MEM2
ADC12MCTL0 = INCH_0; // A0 goes to MEM0
ADC12MCTL1 = INCH_1; // A1 goes to MEM1
ADC12MCTL2 = EOS + INCH_2; // A2 goes to MEM2, End of sequence
ADC12CTL0 |= ENC; // Enable conversions
__enable_interrupt(); // Enable interrupts
ADC12CTL0 |= ADC12SC; // Start conversion

DAC12_0CTL = DAC12IR + DAC12AMP_5 + DAC12ENC + DAC12SREF_2;
__bis_SR_register(0x0); //Active mode
}
  • Teh output drivers of the LCD module are designed for LCD segments., These segments are rathe a capacitive load and are pumped with an AC-like low-current signal, while an LED is a rather resistive load adn requires to be pumped with a current-limited (but rather high-current) DC signal.

    No wonder why the LEDs ar edim. I fear you will burn out the LCD drivers this way. At least you don't operate them within their specification.

    You should rather use the segment pins as normal I/O lines and control the multiplexing in a timer ISR.

    The LCD_A is NOT intended to drive LEDs.

  • Oh! I completely understand my mistake and know how to fix this. Thanks.

    -Mike

**Attention** This is a public forum