Newb and the noisy data lines

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

I have a prototype board with green Kynar wire to pilot a LCD. Problem is that the data lines (8) do not seem to react as the same speed, some 'lag' and I had to add a rather large number of NOPs between LCD clock cycles to make it work properly.
Problem is the display is sluggish!

So, I wanted to now if my newb instinct to add some small caps would work ? Or will it make things worse ?

Something like 15pF ?

Author of simavr - Follow me on twitter : @buserror

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

Please be a more precise.

What LCD ?
What AVR
What clockspeed

.... and a picture might help too

Nard

A GIF is worth a thousend words   She is called Sylvia (2018), lives at Mint18.3 https://www.linuxmint.com/

Dragon broken ? http://aplomb.nl/TechStuff/Dragon/Dragon.html for how-to-fix tips

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

The usual lcd modules are slow! Just look at the specs on the datasheet. As for adding capacitance, I doubt that would help. Capacitance is like friction - you get it when you don't want it - adding it will only tend to slow the change in data more.

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

Maybe moddify the software? You know, different aproach. Instead of a bazilion nops, make a timer interrupt and some circular buffer. Instead of waiting for the data to transfer, you can do all sorts of useful stuff during that time. Or get a different display, SPI controlled.

There are pointy haired bald people.
Time flies when you have a bad prescaler selected.

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

apart from the interface timing being slow, also look at the specs on the lcd glass itself - the time it takes to activate/deactivate a pixel. This is temperature dependant and is in the order of many 10's of milliseconds. Also consider the human brain is slow to interpret fast changing things. Anything faster than 10 times a second is too fast.

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

I don't see from the original post how the conclusion of "noisy data lines" was reached. So, you have to add NOPs? Take a look at the timing diagram for the LCD. That will be the standard of what you need to do.

Jim

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA http://www.orelectronics.net

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

Barring the LCD timing being slow.

Make sure your data & control lines are set as outputs. Otherwise the logic states are achieved by enabling/disabling the internal pull-ups. Due to the capacitive load on the lines, it will take some time for the signal to reach a valid state.

Assuming you have configured the ports correctly you can try adding terminating resistors, to ground, at the far end of the bus (as close to the LCD as possible).

Writing code is like having sex.... make one little mistake, and you're supporting it for life.

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

I am using a hitachi based 16x2 with a mega 162 at 8mhz on a protoboard with the wire wrap lines all over the place and with a small delay loop i call in between setting and clearing the 'E' line. This works juust fine and the display works fluidly.

What makes you think the lines are noisy?
Is the display showing odd charachters?

Jim

I would rather attempt something great and fail, than attempt nothing and succeed - Fortune Cookie

 

"The critical shortage here is not stuff, but time." - Johan Ekdahl

 

"If you want a career with a known path - become an undertaker. Dead people don't sue!" - Kartman

"Why is there a "Highway to Hell" and only a "Stairway to Heaven"? A prediction of the expected traffic load?"  - Lee "theusch"

 

Speak sweetly. It makes your words easier to digest when at a later date you have to eat them ;-)  - Source Unknown

Please Read: Code-of-Conduct

Atmel Studio6.2/AS7, DipTrace, Quartus, MPLAB user