Shop OBEX P1 Docs P2 Docs Learn Events
1.8" Color LCD 557x234 resolution, will it work with the Prop ? — Parallax Forums

1.8" Color LCD 557x234 resolution, will it work with the Prop ?

BeanBean Posts: 8,129
edited 2008-02-23 01:59 in Propeller 1
I just bought some of these hoping to use them with the propeller.
Does it look like there is a chance ?
Anyone want to write a driver in exchange for a module ?

Bean.
·

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
www.iElectronicDesigns.com



Post Edited (Bean (Hitt Consulting)) : 12/13/2007 11:56:34 PM GMT

Comments

  • deSilvadeSilva Posts: 2,967
    edited 2007-12-14 00:19
    Marcel Majoor has a driver for a very similar display.
  • deSilvadeSilva Posts: 2,967
    edited 2007-12-14 00:34
    Ah, there it was...
    it is not really THAT similar...
    {{******************************************************************************}
    { FileName............: LcdNoCtrl.spin                                         }
    { Project.............:                                                        }
    { Author(s)...........: MM                                                     }
    { Version.............: 1.00                                                   }
    {------------------------------------------------------------------------------}
    {  Control of 320xRGBx240 passive matrix LCD module (without controller)       }
    {                                                                              }
    {  Copyright (C) 2006-2007  M.Majoor                                           }
    {                                                                              }
    {  This program is free software; you can redistribute it and/or               }
    {  modify it under the terms of the GNU General Public License                 }
    {  as published by the Free Software Foundation; either version 2              }
    {  of the License, or (at your option) any later version.                      }
    {                                                                              }
    {  This program is distributed in the hope that it will be useful,             }
    {  but WITHOUT ANY WARRANTY; without even the implied warranty of              }
    {  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               }
    {  GNU General Public License for more details.                                }
    {                                                                              }
    {  You should have received a copy of the GNU General Public License           }
    {  along with this program; if not, write to the Free Software                 }
    {  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. }
    {                                                                              }
    {------------------------------------------------------------------------------}
    {                                                                              }
    { Version   Date    Comment                                                    }
    {  1.00   20070727  - Initial release                                          }
    {******************************************************************************}
    
    
    {------------------------------------------------------------------------------}
      Signals to control
        D0   Color data
        ..   Starts at higest bit with color information in RGB format:
        D7       RGBRGBRG BRGBRGBR GBRGBRGB ....
               D 76543210 76543210 76543210
             3 bytes contain 8 pixels of information
    
        XSCL Latch signal for color data (D7:D0)
             Latching of D7:D0 on falling edge
        LP   Line pulse (next row)
             Latched on falling edge
             A delay of 0.5us..1.5us is to be taken into account. This is the time
             needed for the data to latch. This time is variable and depends on the
             power supply used. Note: not tested if this is only an internal
             delay of the LCD or if this is required to be included in the code
        FRM
        FLM
        YD   Frame pulse / First Line Marker / Y Drive
             Active during last line of each frame
             Latched on falling edge OR when LP is latched
        DISP Display on/off
             0 = off
             1 = on
    
    
      Timing diagram
        column     319                0           318      319               0
        row        238               239          239      239               0
        XSCL   ////
        D7:D0  ////
        LP     ////
        YD     ////
    
    
      For a complete row 120 bytes are transferred:
        320 pixels * 3/8 (3 bytes for 8 pixels) == 120 bytes == 30 longs
    
      Time requirements:
        1 rowtime   == 120 * pixeltime + 1.5 us (internal delay time)
        1 frametime == 240 * rowtime
    
      A complete 1:1 representation of the 320xRGBx240 as a 'bitmap' requires
         (320x3x240) / 8 = 28800 bytes == 7200 longs
      This is than an 8-color 'bitmap'.
    
    
      Basic schematic (LCD connection based on U.R.T. UMS-7296FD-1CS):
      Prop   LCD     LCD           ┌─────────────────────────────────────────┐
      P0  ── D0   ── 15  ──────────┤                                         │
      P1  ── D1   ── 14  ──────────┤    │
      P2  ── D2   ── 13  ──────────┤    │
      P3  ── D3   ── 12  ──────────┤    │
      P4  ── D4   ── 11  ──────────┤    │
      P5  ── D5   ── 10  ──────────┤    │
      P6  ── D6   ──  9  ──────────┤   320 x RGB x 240   │
      P7  ── D7   ──  8  ──────────┤    │
                                   │    │
      P8  ── XSCL ──  3  ──────────┤  (U.R.T UMS-7296FD-1CS)  │
      P9  ── LP   ──  2  ──────────┤    │
      P10 ── YD   ──  1  ──────────┤    │
      P11 ── DISP ──  4  ──────────┤    │
       ┌──── Vlcd ──  7  ──────────┤    │
       │┌─── Vlog ──  5  ──────────┤    │
       ││┌── LED  ── 16  ──────────┤    │
       │││┌─ GND  ──  6  ──────────┤                                         │
       │││                        └─────────────────────────────────────────┘
       ││└───────────────────────────┐
       │└───────────────────────────┐│
       └───────────────────────────┐││  Note: Transistor symbols are used
                       24V         │││        instead of the actual MOSFETs used.
                                  │││        When using transistors remember to
                      ┌─┫          │││        include base resistors.
                    1k │          │││
                      ┣ 100      │││  This controls the LCD power supply, which
     P13 ── Vlcd ───┳ ┣───┳─┐  │││  also controls the contrast. For the used
                100k │  100u │  │││  LCD this voltage is between 21-23V.
                      10k   │  │││  P13 is a 1000 Hz PWM signal.
                              ┌─┫  │││
                          100k │  │││
                              ┣  │││
     P12 ── VlcdOn ─────────┳ └──┘││  The LCD power can be switched off.
                        100k │     ││  When the logic power is removed it is
                             │     ││  switched off too. This is essential!
     3V3 ──────────────┳────┳     ││
                       │100k │     ││
                       │          ││
                       └────────────┘│
                               24V   │  This controls the backlight level.
                                    │  With the used LCD the backlight max
                              ┌─┫    │  current is 60 mA @ 7.5V
                            1k │    │  We will drive the LED at a 5 times higher
                              ┣ 50 │  current, but only for 1/5 of the time.
     P14 ── Vback ──────────┳ └──┘  This gives a higher perceived brightness, but
                        100k │         the average current is still within limits.
                                      P14 is a 1000 Hz PWM signal (0..20%!).
    {------------------------------------------------------------------------------}}
    
    
    CON
      LcdData       = %0_11111111                              ' LCD data lines     (MOVS)
      LcdClock      = %1_00000000                              ' Data clock         (MOVS)
      LcdLine       = %0001                                    ' Line pulse         (MOVD)
      LcdFrame      = %0010                                    ' Frame              (MOVD)
      LcdOn         = %0100                                    ' Display on         (MOVD)
      LcdPowerOn    = %1000                                    ' Apply power to LCD (MOVD)
      Columns       = 320                                      ' Columns (in pixels)
      Rows          = 240                                      ' Rows
      Rgb           = 3                                        ' 3 bits for color
      ColumnBits    = Columns * Rgb                            ' Columns (in bits)
      ColumnBytes   = ColumnBits / 8                           ' Columns (in bytes - pixels * RGB / bits)
      ColumnLongs   = ColumnBytes / 4                          ' Columns (in longs)
    ' (1) RefreshRate = 60                                     ' Refresh rate; too large (>68) == no output
    ' The (1) marked lines can be included if a fixed refresh rate is required
    ' Without the (1) marked lines there is no fixed synchronization included and
    ' the code runs at its highest possible rate (69 frames a second)
      VideoSize     = ColumnBytes * Rows                       ' Number of bytes for a full screen
      VideoMemStart = $8000 - VideoSize                        ' Address start of video memory
    
    VAR
      byte Cog                                                 ' Active cog
    
    {{------------------------------------------------------------------------------
      Params  : -
      Returns : <Result>  TRUE if cog available
    
      Descript: Start
      Notes   :
     ------------------------------------------------------------------------------}}
    PUB Start: Success
      Stop
      result := Cog := cognew(@Entry, 0)
    
    
    {{------------------------------------------------------------------------------
      Params  : -
      Returns : -
    
      Descript: Stop cog
      Notes   :
     ------------------------------------------------------------------------------}}
    PUB Stop
      if Cog == 0                                              ' Only if cog is active
        return
      cogstop(Cog)                                             ' Stop the cog
    
    
    DAT
    {{------------------------------------------------------------------------------
      Params  : -
      Returns : -
    
      Descript: LCD timing, running in its own COG
      Notes   : All timings are based on a 80 Mhz clock (PLL*16 @ 5 MHz)
     ------------------------------------------------------------------------------}}
      Entry            movs    DIRA, #%1_11111111              ' Bit 08..00
                       movd    DIRA, #%00_0001111              ' Bit 17..09
                       movs    OUTA, #0
                       movd    OUTA, #0
                       ' Enable LCD power and activate
                       mov     Time, CNT                       ' Initialize for first delay
                       add     Time, StartDelay
                       waitcnt Time, StartDelay                ' Small delay
                       mov     SyncData, #LcdPowerOn           ' LCD power on
                       movd    OUTA, SyncData
                       waitcnt Time, StartDelay                ' Small delay
    
                       or      SyncData, #LcdOn                ' LCD on
    ' (1)              mov     Time, CNT                       ' Initialize for first delay
    ' (1)              add     Time, VideoRate
    
      :OneFrame        mov     VideoPointer, VideoStart        ' Point to start of video memory
                       mov     Row, #Rows                      ' Reset number of rows
                       or      SyncData, #LcdFrame             ' YD &#61569;&#61570;&#61574;
                       movd    OUTA, SyncData
      :OneRow          mov     Column, #ColumnLongs            ' Reset number of columns
      :OneColumn       rdlong  OutLong, VideoPointer           ' Get 4 bytes of RGB data
                       add     VideoPointer, #4                ' Next memory address (next long)
    
                       ' Output long as 4 bytes, low part first (which is the lowest address in memory)
      :OutOneLong      mov     Loop, #4
      :OutputOneByte   mov     OutByte, OutLong
                       and     OutByte, #LcdData               ' Keep LCD data only
                       or      OutByte, #LcdClock              ' XSCL &#61569;&#61570;&#61574;
                       movs    OUTA, OutByte
                       andn    OutByte, #LcdClock              ' XSCL &#61574;&#61573;&#61569; - latch column data
                       movs    OUTA, OutByte
                       ror     OutLong, #8                     ' Rotate for next byte to output
                       djnz    Loop, #:OutputOneByte           ' Next byte
    
                       djnz    Column, #:OneColumn             ' Repeat if not all columns done
    
                       or      SyncData, #LcdLine              ' LP &#61569;&#61570;&#61574;
                       movd    OUTA, SyncData
                       andn    SyncData, #LcdLine              ' LP &#61574;&#61573;&#61569; - latch row data
                       movd    OUTA, SyncData
    
    ' (1)              waitcnt Time, VideoRate                 ' Wait for next line time out
    
                       andn    SyncData, #LcdFrame             ' YD &#61574;&#61573;&#61569;
                       movd    OUTA, SyncData
                       djnz    Row, #:OneRow                   ' Repeat if not all rows done
                       jmp     #:OneFrame                      ' Repeat frame
    
    
      StartDelay       long    80000000 / 1000                 ' 1/1000 second delay
      VideoStart       long    VideoMemStart                   ' Start of video memory
    ' (1) VideoRate    long    80000000 / Rows / RefreshRate   ' "Refresh" rate per row
      VideoPointer     RES     1                               ' Current address in video memory
    
      Column           RES     1                               ' Column counter
      Row              RES     1                               ' Row  counter
      OutLong          RES     1                               ' RGB data to output (4 bytes)
      OutByte          RES     1                               ' RGB data to output
      SyncData         RES     1                               ' Sync data to output (MOVD)
      Time             RES     1                               ' System counter workspace
      Loop             RES     1                               ' Loop counter
    
    
  • sam_sam_samsam_sam_sam Posts: 2,286
    edited 2007-12-14 01:22
    Bean

    Where did you buy them can you give us a web link

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    ··Thanks for any·idea.gif·that you may have and all of your time finding them

    ·
    ·
    ·
    ·
    Sam
  • RaymanRayman Posts: 14,162
    edited 2007-12-14 01:40
    Do you also have that chip that takes video input for the LCD? That's exactly the sort of thing I was looking for... I read about several toys you can hack into to get this, but they're hard to find... I think I'd be interested in buying this if it takes video input and doesn't cost too much.
  • RaymanRayman Posts: 14,162
    edited 2007-12-14 01:43
    Wait a minute... Did you get the LC15007 or LV4149W/LV4141W driver?
  • BeanBean Posts: 8,129
    edited 2007-12-14 02:24
    Rayman,
    I don't think there is any driver. Just the LCD.

    Bean

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    www.iElectronicDesigns.com



    Post Edited (Bean (Hitt Consulting)) : 12/14/2007 6:41:39 PM GMT
  • BeanBean Posts: 8,129
    edited 2007-12-14 18:39
    Sam,
    I got them from ebay.

    Bean

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    www.iElectronicDesigns.com

    ·
  • RaymanRayman Posts: 14,162
    edited 2007-12-14 19:09
    How many Prop pins do you figure you'll need to interface with the LCD?
  • Timothy D. SwieterTimothy D. Swieter Posts: 1,613
    edited 2007-12-15 04:19
    Holy cats! I thought the code I wrote (well most of the code) had good documentation in it. That code the deSilva posted has some serious documentation and ascii art work!

    I have a couple odds and ends of LCD displays laying around but haven't written any drivers for them. I don't have any displays like you posted Bean. Ihave a monochrome driver I created for an LCD I used in a recent product design. When using a color LCD, the hard part is storage of screen data. All the bits and bytes for RGB add up. Not to derail this thread, but any thoughts how to deal with this?

    Judging from the data sheet glance I took, I think a carrier board will have to be made to use the LCD. There appears to be a fair amount of supporting circuitry needed to be sure the right voltages are applied. It also appears that a video signal can be applied to the display. VGA or composite? It needs more studying. I am not seeing an SPI or paraller input for R data, G data, B data, H sync, V sync, etc like I am use to seeing on the many other datasheets I have reviewed for LCDs.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Timothy D. Swieter
    tdswieter.com
    One little spark of imagination is all it takes for an idea to explode
  • AleAle Posts: 2,363
    edited 2007-12-15 16:56
    Timothy, there is no propeller font here... so it looks funny. I think Beau Schwabe posts images smile.gif
    I have to give it a shot, because I have some 640x480 (b/w) displays I want to use, but they will need more ram...
  • Fred HawkinsFred Hawkins Posts: 997
    edited 2007-12-16 04:07
  • BeanBean Posts: 8,129
    edited 2007-12-30 22:30
    I have received these displays and I am in the process of making a breakout board to convert the 0.5mm pitch FPC cable to a standard 24 Pin DIP.

    So...Is anyone interested in taking a wack at a driver ? I'll send out some samples when I get the adapters made.

    Because of the limited RAM in the propeller, even an 8 color driver would be great.

    Let me know if you think you have a good idea how write the driver. I'm assuming it's similar to a VGA monitor ???


    Bean.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    www.iElectronicDesigns.com

    ·
  • BeanBean Posts: 8,129
    edited 2008-01-11 03:23
    I have some of the adapter made. They convert the 0.5mm pitch ribbon cable to a standard 24 pin 0.6" DIP so you can plug it right into a breadboard.

    Any brave souls want to take a stab at a driver ? I'll send you one.

    Bean.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    www.iElectronicDesigns.com

    ·
  • BeanBean Posts: 8,129
    edited 2008-02-18 23:58
    I have not had the time, nor any luck getting this LCD to work with the propeller.

    I would like to offer $500 to the first person that gets one of these working with the propeller.

    The only datasheets I have is the one at the top of this thread.

    I can supply a breakout board so you can connect it to a breadboard.

    If you are interested, just send me a private message.

    Bean.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    www.iElectronicDesigns.com

    ·
  • Fred HawkinsFred Hawkins Posts: 997
    edited 2008-02-21 01:23
    Hard to do without any of the support chips (LC15007 or LV4149W/LV4141W) -- the lcd looks for about 19 or 20 inputs.
  • BeanBean Posts: 8,129
    edited 2008-02-21 02:42
    With the support chips you just feed it NTSC.

    I would consider using the support chip, but I cannot find a source or even a datasheet for them.

    Even if I could find a datasheet for the support chips that showed what the output signals from the chip look like, that would be a big help.

    Bean.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    www.iElectronicDesigns.com

    ·
  • Fred HawkinsFred Hawkins Posts: 997
    edited 2008-02-23 01:59
    Look up at 12/15 post.
Sign In or Register to comment.