1.8" Color LCD 557x234 resolution, will it work with the Prop ?
Bean
Posts: 8,129
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
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
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  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  movs OUTA, OutByte andn OutByte, #LcdClock ' XSCL  - 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  movd OUTA, SyncData andn SyncData, #LcdLine ' LP  - latch row data movd OUTA, SyncData ' (1) waitcnt Time, VideoRate ' Wait for next line time out andn SyncData, #LcdFrame ' YD  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 counterWhere did you buy them can you give us a web link
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
··Thanks for any·
·
·
·
·
Sam
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
I got them from ebay.
Bean
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
www.iElectronicDesigns.com
·
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
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...
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
·
Any brave souls want to take a stab at a driver ? I'll send you one.
Bean.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
www.iElectronicDesigns.com
·
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
·
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
·