Shop OBEX P1 Docs P2 Docs Learn Events
parallel lcd questions — Parallax Forums

parallel lcd questions

PFloyd36069PFloyd36069 Posts: 135
edited 2008-08-10 01:42 in Propeller 1
hi,

is there any way to make a parallel lcd work through through the vga plug on the demoboard. the lcd needs 7 pins but the vga plug has only 5 useable pins. also dan miller's parallel lcd object doesnt seem to work right with my lcd. I just get a bunch of strange looking characters. i changed the code a bit to make it work with the 8 accessible i/o's on the demo board.

thanks,

bryan

Comments

  • Timothy D. SwieterTimothy D. Swieter Posts: 1,613
    edited 2008-08-07 08:27
    Tell us more about the LCD you are using and the code changes you made.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Timothy D. Swieter, E.I.

    www.brilldea.com·- Prop Blade, LED Painter, RGB LEDs, uOLED-IOC, eProto fo SunSPOT, BitScope
    www.sxmicro.com - a blog·exploring the SX micro
    www.tdswieter.com
  • StefanL38StefanL38 Posts: 2,292
    edited 2008-08-07 11:03
    hello,

    between the plug-pins and IO-Pins of the propeller there are 240 and 470 ohm-resistors. You can try it but the resistors have an influence on the signals.
    It depends on your LCD if this will work directly. If the LCD has 5V it will be good anyway to use voltageshifters from prop 3.3V to LCD 5V

    You cannot drive an LCD with VGA-signals created by the videohardware of the propeller. But of course you CAN use any of the 32 IO-Pins for any purpose
    If anybody does not believe this: take an LED and connect it between VGA-Pin and ground and start a small prg that makes the IO-pin switch between
    low and high. The LED will blink. Of course 240 ohm and even 470 ohm is more than nescessary for a 20mA-LED but it will blink.


    best regards

    Stefan

    Post Edited (StefanL38) : 8/7/2008 6:58:19 PM GMT
  • grasshoppergrasshopper Posts: 438
    edited 2008-08-07 14:23
    No I don't think that you can use a VGA for an LCD. If you use the demo board you can use the prototype section.
  • Capt. QuirkCapt. Quirk Posts: 872
    edited 2008-08-07 20:25
    Sounds like one or more of your data wires are in the wrong location, double check where pin #1 is on Your LCD. There is many more pin·configurations then the one shown in the LCD Object.

    Another possibility is "E" needs to be pulled low with a 4.7K resistor. The Pull-Down resistor isn't showed in to many diagrams, but I have had to use it on all my LCD's. Also I don't think you will need the data line resistors unless you are using RW to write data back to the Propeller.
  • PropabilityPropability Posts: 142
    edited 2008-08-07 22:46
    ·It should be possible but you might need a little help with a 74HC595 chip.

    I've made a 3 wire lcd (not counting the power) using that chip. It also looks like the VGA has a 5V output on pin 9 so your LCD should be fine with that.

    As you can see from my picture there are only 3 purple wires from the header.

    If you are interested then I could try to get you going on it. I will try later to see if I can make a quick VGA to 10pin header cable and try to get the lcd working on the demo or proto board .

    Pete
    922 x 519 - 86K
  • edited 2008-08-08 02:36
    I happen to be very interested in the 3-wire design.· I'm new (today)·to LCD interface issues and a solution that is easy on the pin count is what I need.· I'm a little lame on·microcontrollers, but I can usually offer advice concerning sensors, measurement, MEMS, and·most mechanical, thermal,·fluid, and chemical issues.
  • PFloyd36069PFloyd36069 Posts: 135
    edited 2008-08-10 01:42
    well here is part of·my code with the changes in bold

    '' parallel lcd driver
    '' for using a HD44780 based 4 x 20 parallel lcd
    '' dan miller 23 july 2006
    ''
    {{
               10k    5v                                  +--+
                +?----?--------------------------------+  ¦  ¦
      +------+  ¦??+                                   ¦  ¦  ?grd            nibble ops msb first
      ?      ?--¦• ¦     10                   13    15 ¦  ¦  
     grd     ¦  ¦  ¦  11 ¦  9              12 ¦  14 ¦  ¦  ??-+ 100
             ¦  ¦  ¦  ¦  ¦  ¦              ¦  ¦  ¦  ¦  ¦  ?  ¦
             ¦  ¦  ¦  ¦  ¦  ¦              ¦  ¦  ¦  ¦  ¦  ?--+
          +--¦--¦--¦--¦--¦--¦--¦--¦--¦--¦--¦--¦--¦--¦--¦--¦--+               
        1 ¦  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  •  ¦  16    LCD
             v  v  v  r  r  e  D  D  D  D  D  D  D  D  V  V
             s  c  l  s  /  n  0  1  2  3  4  5  6  7  B  B
             s  c  c     w                             +  -
    
             
    }} 
    con
    
      _clkmode      = xtal1 + pll16x                        ' use crystal x 16
      _xinfreq      = 5_000_000
    ' -------------------------------------------------------------------------
    ' IO Pins
    ' -------------------------------------------------------------------------
                                                ' LCD bus is 12..15
    E               =     [b]0[/b]                     ' Enable Bit
    RW              =     [b]1[/b]                    ' Read Write Bit
    RS              =     [b]2[/b]                    ' Register Select Bit
    obj
     delay    : "timing"
     bs2      : "BS2_Functions"    
    var
    ' -------------------------------------------------------------------------
    ' Variables
    ' -------------------------------------------------------------------------
    byte char                       ' Character To Send To LCD
    byte inst                       ' Instuction To Send To LCD
    byte index[noparse][[/noparse]2]                   ' Character Pointer
     
    
    {{ usage - uncomment the 'tester  located below to run and test this module by itself'
              otherwise, with the line tester commented out, use start thusly -->
                term      : "parallel_lcd" 
                  term.start
              repeat                        
                term.out($00)                ' clear screen
                term.str(string("Dan's Sawmill "))
                term.pos(0,2)                        ' second line, pos 0
                term.str(string("Sawmill head height"))
      
                display_height(0,3)                   ' third line , pos 0
                term.out($22)                          ' the " char
                term.pos(0,4)                          ' fourth line, pos 0
                term.str(string("2nd key for more"))
             
                ( a example from one of my programs )
     }}
    pub Start  | temp 
      
      waitcnt(clkfreq * 1 + cnt)                        ' let lcd come up  
        dira[noparse][[/noparse][b]0[/b]..[b]6[/b]] := %11111111                            ' Make  Output.
        
        outa[noparse][[/noparse]RS] := 0
        outa[noparse][[/noparse]RW] := 0
        
       
        Init_Lcd
        tester                                       ' code to check module by itself
    

    Post Edited (PFloyd36069) : 8/10/2008 1:52:32 AM GMT
Sign In or Register to comment.