Getting rid of 1sec LCD Startup Rubbish

Go To Last Post
14 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hey guys,

I'm designing a project that uses a LCD. So far, I can see text on the LCD perfectly, but it displays rubbish for about 1 second while it wakes up until the correct data has been sent. So far i've tried placing a capacitor to delay the contrast pin, but this still isn't slow enough.

Is there a way (short of using a micro pin to switch on the contrast pin after a sufficiently long enough delay) to create a 1 or 2 sec delay with hardware?

Make Atmel Studio better with my free extensions. Open source and feedback welcome!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You could use an RC time constant and maybe a comparator to get the delay. If the contrast is analog, you might have to use a comparator to keep the garbage from gradually fading in. 555 timer is similar option.

Please note - this post may not present all information available on a subject.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The contrast's an analogue. I have a 10k pot performing as a voltage divider - so the contrast's voltage is anywhere between 0V (blank screen) and 5V (All dark). I just need the LCD to be completly blank for 1 sec, then either fade in or just switch on the the divided voltage.

I think it's easiest to drive the contrast pin with a micro port and a transistor. I'll just have to scrimp for an unused port.

Make Atmel Studio better with my free extensions. Open source and feedback welcome!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Are you using a standard hd44780 display? It shouldn't show garbage for one second...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Why not control the contrast voltage from a PWM output of your AVR?
Then you can adjust it in software.

But I think you need to fix your code instead to remove the garbage, normally it doesn't show garbage for 1 sec.
Do you init you LCD just after reset?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi,

Its going to be easist to connect the other side of the pot to a micro pin I think, as you hinted at in your OP. No real external hardware needed...

But as people said I'd try to fix it in software first if possible, check all your initilization levels of the LCD and whatnot.

Regards,

-Colin

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I would think you could fix this in software also. try cls in beginning of data stream or allow more time before sending any data. control reset pin with avr, apply power but keep lcd in reset for some time...just some thoughts.
what LCD are you using?

"faster than the speed of dark"

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Dean
If a 'standard' LCD then the display should show a row of blocks untill it has been initialised. If it is displaying garbage than there seems to be some random activity on the port lines driving it; after it has been initialized.
So to provide good advice we do need to know what flavour of display you are using.
But there should be no need to hold off the contrast to stop garbage being displayed, no matter which LCD type you use.

Keep it simple it will not bite as hard

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Ok, sorry for the lack of information. I'm using 16x1 displays with the standard HD chipset. I think i'm just missing an init command, as the display shows the blocks, which then dissapear to show garbagem and then my data appears. In any case, my design requires a 16x2 line display wich i'll purchase soon - then i'll see if the problem persists.

Make Atmel Studio better with my free extensions. Open source and feedback welcome!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
I think i'm just missing an init command

Are You not initializing the display controller at all?

As of January 15, 2018, Site fix-up work has begun! Now do your part and report any bugs or deficiencies here

No guarantees, but if we don't report problems they won't get much of  a chance to be fixed! Details/discussions at link given just above.

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

It sounds to me as if you are writting to the display prior to initialzing it.

Keep it simple it will not bite as hard

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Try pullup`s or pull down resistors on all lines of the LCD.
Greetings

Make love, not war!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Alu wrote:
Try pullup`s or pull down resistors on all lines of the LCD.

I've used 4 or 5 different text LCD modules and have never needed pull up or pull down resistors. They've all shown a row of block characters during initialization but never garbage.

Don

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

you don't need pull ups fo shizzle.
you must be sending the lcd data ABCmini, what about disconnecting the TX from the ucontroller and power up the LCD. what happens? Is it garbage then?

"faster than the speed of dark"