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.

MSP430F4152 LCD_A

Other Parts Discussed in Thread: MSP430F4152, MSP430FG4616, MSP430FG4618

Hello,

I work with the MSP430F4152 using the Board of TI.

I took the example code of the MSP430F471xx which also has the LCD_A module.

I connencted a Cap at Pin R33 of  4.7uF (for  the charge pump) and also implemented the resistors between R03 to R13 of 100K and R13 to R23 100K and R23 to R33 100K.

and also connected the R03 to the ground.

Nothing is displayed althogh it works on the MSP430FG4616.

I also check the 32Khz Osc and it looks O.K.

Can you please advise back.

Thanks In Advance.

 

//    MSP430x471xx Demo - LCD_A Put "0123456" on SBLCDA4 LCD with charge pump
//
//  Description; Put "0123456" on SBLCDA4 LCD. Charge pump is enabled.
//  ACLK = LFXT1 = 32768, MCLK = SMCLK = DCO = 32xACLK = 1.048576MHz
//  //*An external watch crystal is required on XIN/XOUT for ACLK*// 
// Note: A 4.7 uF or larger capacitor must be connected from pin LCDCAP to
// ground when the internal charge pump is enabled. Otherwise, damage can occur.
//
//               MSP430x471xx
//           -----------------
//       /|\|              XIN|-
//        | |                 | 32kHz
//        --|RST          XOUT|-         SBLCDA4
//          |                 |        ___________
//          |              S0 |------>|14         |
//          |              S1 |------>|13         |
//          |             ..  | ....  |..         |
//          |             S13 |------>|1          |
//    ------|LCDCAP/R33   COM0|------>|15         |
//   CAP    |             COM1|------>|16         |
//  TO GND  |             COM2|------>|17         |
//          |             COM3|------>|18         |
//          |             S14 |------>|19         |
//          |             S19 |------>|20         |
//          |              .. | ....  |..         |
//    ------|LCDCAP/R33   S21 |------>|26         |    
//          |_________________|       |___________|
//
//   K. Venkat
//   Texas Instruments Inc.
//   May 2009
//   Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 4.11B
//******************************************************************************
#include <msp430x47x4.h>

// LCD segment definitions.
#define h 0x80
#define e 0x40
#define g 0x20
#define f 0x10
#define d 0x08
#define c 0x04
#define b 0x02
#define a 0x01

const char char_gen[] = {                   // definitions for digits
  a+b+c+d+e+f,                              // Displays "0"
  b+c,                                      // Displays "1"
  a+b+d+e+g,                                // Displays "2"
  a+b+c+d+g,                                // Displays "3"
  b+c+f+g,                                  // Displays "4"
  a+c+d+f+g,                                // Displays "5"
  a+c+d+e+f+g,                              // Displays "6"
  a+b+c,                                    // Displays "7"
  a+b+c+d+e+f+g,                            // Displays "8"
  a+b+c+d+f+g                               // Displays "9"
};
void main(void)
{
  volatile unsigned int i;

  WDTCTL = WDTPW +WDTHOLD;                  // Stop WDT
  FLL_CTL0 |= XCAP14PF;                     // Configure load caps

  // Wait for xtal to stabilize
  do
  {
    IFG1 &= ~OFIFG;                           // Clear OSCFault flag
    for (i = 0x47FF; i > 0; i--);             // Time for flag to set
  }
  while ((IFG1 & OFIFG));                   // OSCFault flag still set?
 
  P5SEL =BIT1+BIT2+BIT3+BIT4;               // Set COM pins for LCD
  LCDACTL = LCDON+LCD4MUX+ LCDFREQ_128;     // 4mux LCD, ACLK/32
  LCDAPCTL0 = 0x7F;                         // Segments 0-24
  LCDAVCTL0 = LCDCPEN;                      // charge pump enable
  LCDAVCTL1 = VLCD3;                        // to 3.02V

  for( i = 0; i < 20; i ++)
  {
    LCDMEM[i] = 0;                          // Clear LCD
  }

  for (i=0;i<7;i++)
  {
    LCDMEM[i] = char_gen[i];
  }
 
  _BIS_SR(LPM3_bits);                      // Enter LPM3

}

 

 

  • Hello,

    Have you checked the pin assignment on the F4152?

    The COM0 - COM3 pins are on P5.4,5.5,5.6 & 5.7.

    You will need to change the following line:

    P5SEL =BIT1+BIT2+BIT3+BIT4;               // Set COM pins for LCD

    Also the code is specific to the LCD and how it is connected to the 430.

    Regards,

    Priya

  • Priya Hello,

    please find the changes I made and it still doesn't work.

    it's weired because with the same LCD it works with the MSP430FG4618 (this is LCD_A).

    And when I'm using the the F4152 EVM board of TI it doesn't work.

    Can you please advise.

    Thanks In Advance.

    #include  <msp430x41x2.h>

    // LCD segment definitions.
    #define h 0x80
    #define e 0x40
    #define g 0x20
    #define f 0x10
    #define d 0x08
    #define c 0x04
    #define b 0x02
    #define a 0x01

    const char char_gen[] = {                   // definitions for digits
      a+b+c+d+e+f,                              // Displays "0"
      b+c,                                      // Displays "1"
      a+b+d+e+g,                                // Displays "2"
      a+b+c+d+g,                                // Displays "3"
      b+c+f+g,                                  // Displays "4"
      a+c+d+f+g,                                // Displays "5"
      a+c+d+e+f+g,                              // Displays "6"
      a+b+c,                                    // Displays "7"
      a+b+c+d+e+f+g,                            // Displays "8"
      a+b+c+d+f+g                               // Displays "9"
    };
    void main(void)
    {
      volatile unsigned int i;

      WDTCTL = WDTPW +WDTHOLD;                  // Stop WDT
      FLL_CTL0 |= XCAP14PF;                     // Configure load caps

      // Wait for xtal to stabilize
      do
      {
        IFG1 &= ~OFIFG;                           // Clear OSCFault flag
        for (i = 0x47FF; i > 0; i--);             // Time for flag to set
      }
      while ((IFG1 & OFIFG));                   // OSCFault flag still set?
     
    //  P5SEL =BIT1+BIT2+BIT3+BIT4;               // Set COM pins for LCD
      P5SEL =0xF0;               // Set COM pins for LCD 
      LCDACTL = LCDON+LCD4MUX+ LCDFREQ_128;     // 4mux LCD, ACLK/32
      LCDAPCTL0 = 0x07;                         // Segments 0-24
      LCDAVCTL0 = LCDCPEN;                      // charge pump enable
      LCDAVCTL1 = VLCD3;                        // to 3.02V

      for( i = 0; i < 20; i ++)
      {
        LCDMEM[i] = 0;                          // Clear LCD
      }

      for (i=0;i<7;i++)
      {
        LCDMEM[i] = char_gen[i];
      }
     
      _BIS_SR(LPM3_bits);                      // Enter LPM3

    }

     

**Attention** This is a public forum