F
F
ftp272013-03-15 11:47:28
Do it yourself
ftp27, 2013-03-15 11:47:28

Flickering LCD SBLCDA4 on MSP430?

As their subject is already clear, I have some problems with setting up the display on the MSP430. This display, SBLCDA4, is used in the MSP-EXP430FG4618 development board , though I have an MSP430F4784 MK.
MVI_0081-1.gif
It was exactly according to the scheme of this debug board that I assembled the scheme for my project, but, unfortunately, the display flickers quite noticeably: to understand this, it was necessary to order boards as soon as possible. And here they come, but the problem is not corrected. I tried a lot of firmware, and of course, examples from TI prepared exactly for this display.
This code would have to light up all segments of the display:

#include "msp430.h"
void main(void)
{
int i;
WDTCTL = WDTPW + WDTHOLD;                               
FLL_CTL0 |= XCAP10PF;                                   
LCDACTL = LCDON + LCD4MUX + LCDFREQ_128;
LCDAPCTL0 = LCDS0+LCDS4+LCDS8+LCDS12+LCDS16+LCDS20;
P5SEL = BIT2+BIT3+BIT4;                         
for( i = 0; i < 11; i ++)
{
         LCDMEM[i] = 0xFF;                                              
}

_BIS_SR(LPM3_bits);                                     
}

He certainly lights them, but without the proper speed, creating flicker as in the animation above.
After several futile attempts to do something on the software side, I decided to see what is on the legs of the display. Poked the oscilloscope on the leg COM3:
3d067245f1f487cb0348c6681cb193f3.jpg
Does not look very correct. Once again, I began to study the circuit of the test board, and noticed one 10uF capacitor, which is placed on the leg of the LCDCAP. Since there is no ceramics of this denomination, I had to poke an electrolytic one there. The result was not long in coming:
ae3c64f01fde0c95f4660fcedace696f.jpg
On the oscilloscope, of course, changes are visible, but on the display, the changes are not very noticeable. It's still flickering... Tell me, please, what can be done about it...
UPD: I took readings from two legs. COM3[Yellow] and COM2[Blue]
7c472465e2e678623e788550cba481f5.jpg
UDP2:By the way. The documentation provides an oscillogram of the desired mode. It looks like I currently have
ad41a2f84aa99bed6c2101eb11fe962e.png
UDP3: As a result of long selections, nevertheless, the required number of segments that should have been involved in the project was identified. Nothing flickers with this set. So it was decided to leave it like that.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
N
nerudo, 2013-03-15
@ftp27

I may not understand something, but com0 is sort of like a digital select signal and should be either zero or one. You have at least 4 different levels on it (very beautiful, which is strange). Maybe this is where we should start. Although I can be wrong, because. I have never worked with such indicators, and some kind of datasheet is completely useless ...

P
PM1630, 2013-03-15
@PM1630

Never encountered.
Perhaps a stupid assumption...
But judging by this
Board.h:
#define LCD_TEST 1 // Set to 1 to include LCD test functions
and this LCD.h
#if LCD_TEST > 0 extern void testAll(void); extern void testSymbol(void); extern void testArrow(void); extern void testFunc(void); extern void testBatt(void); extern void testSigLvl(void); extern void testPwrLvl(void); extern void testSpecialChar(void); extern void testChar(void); #endif // LCD_TEST
By default, it looks like a test is started there, which blinks all the elements of the indicator.
And I see something very similar in the video ...
No? LCD_TEST to zero?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question