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.

CCS/MSP430F427A: Questions about interfacing with LCD module

Part Number: MSP430F427A

Tool/software: Code Composer Studio

sir can you please tell methe voltage between r33 &r23,same as between all the registers for lcd interfacing with msps430f427a

  • Hello,

    Please read through Chapter 25 in the MSP430x4xx Family User's Guide. Also, another good LCD reference is the Designing With MSP430™ MCUs and Segment LCDs app note. These resources will answer your questions.

    Regards,

    James

  • Thank you so much sir but my problem was as it is.
  • Hello,

    These resources should address your questions. Have you read through them carefully? Please clarify your initial question, since it's hard to understand what you're asking. There's not a voltage between registers. Thanks.

    Regards,

    James
  • Sir i am unable to run this lcd , i have read all the documents which you have referred . Is there any other specification which help me , like for crystal or any other ??
  • Or is there any calculated pair of register which was used in lcd module ,i mean values of R03,R13,R23,R33(Which mentioned in LCD module section 25) ,MSP430F427A
  • Why are you asking about the voltage? What exactly is the problem you have with the LCD, and why do you think it is related to voltage?
  • Hello,

    Unfortunately, we will not be able to get back to you about this thread until after the holiday season at the beginning of 2019. Thank you for your patience and understanding.
  • Hello Meet,

    Clemens Ladisch said:
    Why are you asking about the voltage? What exactly is the problem you have with the LCD, and why do you think it is related to voltage?

    Have you had a chance to look into 's helpful questions or have you resolved your question? Thanks.

    Regards,

    James

  • Sir actually i am unable to run this LCD with msp430f427a , in which LCD module is there , i am trying all possible solutions but still i am unable to do it .
  • Hello,

    Meet Agrawal said:
    Sir actually i am unable to run this LCD with msp430f427a , in which LCD module is there , i am trying all possible solutions but still i am unable to do it .

    Can you share more details about what you've tried? For an LCD to work properly, it will need to be supported by the MSP430's LCD module, the hardware connections between the MSP430 and the LCD will need to be correct, and the software configuring and controlling the LCD will also need to be correct. Please elaborate on each of these points in your design.

    For example, Table 1 in the Designing With MSP430™ MCUs and Segment LCDs app note compares different MSP430 LCD modules. The MSP430F427A includes the "LCD" module. Can you confirm that the LCD you're using is supported by the LCD's parameters?

    Regards,

    James

  • 1. Hardware :
    > i have connected controller and capacitor of reference
    > i have connected one crystal 32kHz
    > i have connected registers between R33,R23,R13,R03
    > i have connected capacitor for stability between R23 and ground , R13 and ground .
    > i have connected my lcd (which i am using in from last 15 years in my product with msp436 controller)
    > i have connected one jtag fro for programming .
    that's it .

    now in software i am using this code please also check it .

    2. Software ::
    #include <msp430F427A.h>

    #define a 0x01
    #define b 0x02
    #define c 0x04
    #define d 0x08
    #define e 0x10
    #define f 0x20
    #define g 0x40
    #define dp 0x80

    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"
    dp // display "."
    };

    int main(void)
    {
    int i;
    WDTCTL = WDTPW + WDTHOLD; // Stop WDT
    FLL_CTL0 |= XCAP14PF; // Configure load caps
    for (i = 0; i < 10000; i++); // Delay for 32 kHz crystal to
    // stabilize

    // Initialize LCD
    LCDCTL |= LCDP2 | LCD4MUX | LCDON; // 4-Mux LCD, segments S0-S23
    BTCTL |= BTFRFQ1; // Set freqLCD = ACLK/128

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

    while(1)
    {
    LCDMEM[12] = 0xFF;

    }
    }
  • Hello,

    Meet Agrawal said:
    1. Hardware :
    > i have connected controller and capacitor of reference
    > i have connected one crystal 32kHz

    Are these connections on a PCB? This is important because how the crystal gets connected can affect the load capacitance. A schematic would be helpful too.

    Meet Agrawal said:
    > i have connected registers between R33,R23,R13,R03

    I think you mean "resistors" here instead of "registers". The resistor value R is typically 680kOhm but can range from 100kOhm to 1MOhm depending on LCD requirements as described in Section 25.2.4 in the user's guide. Are they all the same resistance and within this range? Note that the bottom resistor Rx can be a different value to adjust the contrast as illustrated by Figure 25-1 in the user's guide. However, to ensure maximum contrast for debugging purposes, replace the resistor Rx between R03 and GND with a short.

    Meet Agrawal said:
    2. Software ::
    #include <msp430F427A.h>

    #define a 0x01
    #define b 0x02
    #define c 0x04
    #define d 0x08
    #define e 0x10
    #define f 0x20
    #define g 0x40
    #define dp 0x80

    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"
    dp // display "."
    };

    Double-check your segment definitions based on the connections between the MSP430 and the LCD.

    Meet Agrawal said:
    int main(void)
    {
    int i;
    WDTCTL = WDTPW + WDTHOLD; // Stop WDT
    FLL_CTL0 |= XCAP14PF; // Configure load caps
    for (i = 0; i < 10000; i++); // Delay for 32 kHz crystal to
    // stabilize

    Double-check that your effective load capacitance matches the crystal as described in Section 2.1 in the MSP430™ 32-kHz Crystal Oscillators app note. While debugging your code, can you confirm if you reach the while(1) loop?

    Meet Agrawal said:
    // Initialize LCD
    LCDCTL |= LCDP2 | LCD4MUX | LCDON; // 4-Mux LCD, segments S0-S23
    BTCTL |= BTFRFQ1; // Set freqLCD = ACLK/128

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

    In your code, BTFRFQ1 produces an LCD frequency of ACLK/128 which creates fLCD = 256Hz. According to the equation in Section 13.2.4 in the user's guide, this would support an LCD frame frequency, fFRAME, equal to 32Hz. Does that match your LCD's frequency specs?

    Also, you're using LCDP2. This means that only segments S0 to S19 are functional according to page 727 in the user's guide. Does this match the number of segments on your LCD? In the for() loop, you're increasing i from 0 to 24 which is more than the number of segments by LCDP2.

    Meet Agrawal said:
    while(1)
    {
    LCDMEM[12] = 0xFF;

    Last but probably the most important feedback, LCDMEM starts at address 0x0091, which corresponds to LCDMEM[0]. At LCDMEM[12], this corresponds to address 0x009D or n = 24. Thus, you're trying to control segments 24 and 25 (according to Figure 25-2 in the user's guide), but since you're using LCDP2, these segments aren't enabled. This is most likely why you can't control the LCD.


    Regards,

    James

  • sir i am able to glow the lcd but , if i write 1 then instead of 2 segment 4 segment will on in background and if we reduce the contrast then also its main segment contrast will reduced.
  • Hello,

    Did you read through my detailed feedback above and make those corrections? Most likely, this is why you're having issues with the LCD. Revisit the LCD memory mapping and make sure it matches your LCD module connections. As I pointed out above, the configuration settings are important.

    Regards,

    James

**Attention** This is a public forum