Shop OBEX P1 Docs P2 Docs Learn Events
Color LCD Driver for cheap 1.44" SPI 128*128 V1.1 (Red and Black PCBs) - Page 2 — Parallax Forums

Color LCD Driver for cheap 1.44" SPI 128*128 V1.1 (Red and Black PCBs)

2»

Comments

  • Cluso99Cluso99 Posts: 18,069
    edited 2017-06-15 23:12
    @kdbrown, glad the driver worked for you.

    Please don't sprout knowledge when you don't know what you are talking about. 3V3 is not only within the design limits, but actually the preferred voltage!

    As for the points of using the prop pins for supply, this is a quick and easy connection for anyone to try. While I agree, it's not the best design practice, it certainly works, and no design limits are being exceeded.

    It is a SPI interface. There are a confusing set of names for the pins. IIRC MOSI/MISO are fairly recent names. There is a CLK pin and a DO (Data Out from the prop = Data In to the LCD) pin (called SDA on the pcb). DI is not used here. A0 is a Data/Command register select pin which can also be considered an Address pin. It all depends on one's interpretation.
  • KDBrownKDBrown Posts: 13
    edited 2017-06-16 17:24
    No, 3.0V is the center of the ILI9163's supply (Vdd) range. Look at page 11 of the chip's data sheet.
    If you compare to say the Prop, the Vdd range there is specified as 2.7...3.6 V, so 3.3 V is indeed that chip's preferred supply.

    I certainly understood why you interfaced the chip as you did, making a nice neat cable from your own board to the module, I just didn't want "young players" to think that this is the best method.

    I wasn't meaning to sound critical, just to advise a bit of caution. I don't "sprout knowledge" (spout?): I have been designing military and space electronics since the 70's. And I never said that 3.3 V was "dangerous" but I see why that could have been an interpretation.

    To be pedantic this really is not an SPI interface with the register select bit hanging out there all by itself. But as we've all come to realize almost each and every implementation of "SPI" is different--the original Motorola Engineers must shudder! All I was saying is that the choice of "SDA" and "SCK" (as my board has) imply I2C, but that is not what it is. Even the Wikipedia page which lists a lot of optional names does not show SDA as ever being used for a data line. I was indirectly responding to a previous post where somebody tried pull-ups on these two lines which is appropriate for I2C, not SPI.
  • Cluso99Cluso99 Posts: 18,069
    KDBrown wrote: »
    No, 3.0V is the center of the ILI9163's supply (Vdd) range. Look at page 11 of the chip's data sheet.
    If you compare to say the Prop, the Vdd range there is specified as 2.7...3.6 V, so 3.3 V is indeed that chip's preferred supply.
    The supply range is the valid range for the supply. Nowadays, chips often have a large supply range. This means that the chips will work at a number of supply voltages. There are some AVR chips that will work from 2.5V to 5V. This means 2.5V, 3V, 3V3, 5V and anything in between is valid. Some of these have a speed tradeoff for voltage. There are SRAMS that also work at various voltages, depending on the micro they are interfacing to. This is not like the old days where 4.75V - 5.25V meant the chip wanted 5V.
    I certainly understood why you interfaced the chip as you did, making a nice neat cable from your own board to the module, I just didn't want "young players" to think that this is the best method.

    I wasn't meaning to sound critical, just to advise a bit of caution. I don't "sprout knowledge" (spout?): I have been designing military and space electronics since the 70's. And I never said that 3.3 V was "dangerous" but I see why that could have been an interpretation.
    i am saying 3V3 is perfectly acceptable, and in fact recommended.

    "sprout" - autocorrect problem ;(
    To be pedantic this really is not an SPI interface with the register select bit hanging out there all by itself. But as we've all come to realize almost each and every implementation of "SPI" is different--the original Motorola Engineers must shudder! All I was saying is that the choice of "SDA" and "SCK" (as my board has) imply I2C, but that is not what it is. Even the Wikipedia page which lists a lot of optional names does not show SDA or as ever being used for a data line. I was indirectly responding to a previous post where somebody tried pull-ups on these two lines which is appropriate for I2C, not SPI.
    Agreed.

    Same goes for RS232. I cringe with what people interpret these days. RS232 TTL is a misnomer (RS232 is a voltage/current spec, not an Async spec), male is for DTE and female is for DCE, baud is not baud rate, etc.

    Even Disk was Disc before micros.
  • Yesterday I said I'd try to check the current. I did that and got >60 mA with the LED on and only about 1 mA with it off.
    That is at 5 V (I assumed that the supply should be 5 V based on the presence of the LDO). I also hooked the module and LED to my Prop's 3.3V supply and only saw about 15 mA. I was surprised that the brightness was still acceptable.
    So it appears that that the use of a Prop pin to power the LED is OK (max allowable current per I/O pin is 40 A per the Prop 1 spec, section 8.1) since it will be no more than the 3.3 V current.
    @Cluso99 If I were you I'd measure the voltage that the module is actually getting, in other words between each of the pins you are using to supply the LED and the other one with reference to the pin you are using as ground. That should be informative! (even with 10 mA into or out of a pair of pins the voltage would be as bad as 3.3-0.4-(3.3-2.85) = 2.45 V, as per Section 8.2. That number is below the ILI9163's 2.6 V minimum! BUT the pin supplying the module will probably have negligible drop so it would be more like 3.3-.4 = 2.9 V)
  • Cluso99 wrote: »
    The supply range is the valid range for the supply. Nowadays, chips often have a large supply range. This means that the chips will work at a number of supply voltages. There are some AVR chips that will work from 2.5V to 5V. This means 2.5V, 3V, 3V3, 5V and anything in between is valid. Some of these have a speed tradeoff for voltage. There are SRAMS that also work at various voltages, depending on the micro they are interfacing to. This is not like the old days where 4.75V - 5.25V meant the chip wanted 5V.
    I certainly understood why you interfaced the chip as you did, making a nice neat cable from your own board to the module, I just didn't want "young players" to think that this is the best method.

    I wasn't meaning to sound critical, just to advise a bit of caution. I don't "sprout knowledge" (spout?): I have been designing military and space electronics since the 70's. And I never said that 3.3 V was "dangerous" but I see why that could have been an interpretation.
    i am saying 3V3 is perfectly acceptable, and in fact recommended.

    I guess we will have to agree to disagree on that. My training is to be very conservative in space and military designs. Once a worst case calculation is done any supply can vary by maybe 10% under temperature and life.
    "sprout" - autocorrect problem ;(
    We have a local company who has a sign along a highway where they post witty sayings. The one I snapped a photo of was: "Autocorrect, a texter's worst enema."


    Same goes for RS232. I cringe with what people interpret these days. RS232 TTL is a misnomer (RS232 is a voltage/current spec, not an Async spec), male is for DTE and female is for DCE, baud is not baud rate, etc.

    Even Disk was Disc before micros.
    Re RS-232, Yup I have the same problems with TTL levels being called RS-232. I usually use the term RS-232-timed TTL, but I think you are saying that the EIA spec does not define the timing: I thought it did.

    I recall that "Disc" was a trademark, not sure whose (IBM, hp?)!
  • @KDBrown - I had drafted a big long reply to your comments but I decided to dispute just one point alone, that of the dangerous Vdd of 3.3V :)
    But I would still stay away from a nominal 3.3 V supply
    You can't be serious, surely. When you make comments like these then there are some that might actually think you are right and end up being confused about other 3.3V chips and devices.

    I was serious. But in no way was I implying that OTHER chips are not supposed to run at 3.3 V. Note that many of these display boards have a 3.0 V regulator (LDO) which works at 3.3 V in and (on mine) produces 3.02 V.
    And again, I was not implying any danger, especially because the spec has a very high 4.6 V "Abs Max" rating.
  • Cluso99Cluso99 Posts: 18,069
    @KDBrown,
    The RS232 spec applies equally to synchronous and asynchronous transmissions. ie baud is specified as the "bit time" or "bit rate" and is bits/second. There was nothing about asynchronous being a start bit followed by x data bits then stop bit(s). That was a separate spec as was sync. Sync could be bisync or nrzi etc. Even EBCDIC synchronous used RS232.

    In synchronous transmissions, the DCE supplied the clocks on pins 25 & 17 of the DB25F. Often mainframes would provide a clock out (DTE) on pin 24 for use in crossover cables when the transmission was local and direct DTE to DTE (mainframe to mainframe). Some mainframes were ASCII and some were EBCDIC, even within the same company. I designed and built ASCII-EBCDIC converters for a number of companies back in the 70-80's.
  • Question about 64/v110 from Cluso

    Demo works fine on my red lcd, on a blade2 with "_XINFREQ = 12_000_000 ' (P8XBlade2)"

    So I know my LCD and settings red/black are fine.

    I try to use the same file on a propeller mini.
    Changed only the pins and clock to 5_000_000 and pll16x
    This do not work. no light, no image.
    I try with fixed 3,3Volt on backlight . Then backlight is always on, but no images.

    If I only change the clock and pll on the mini to 12Mhz/8 like blade2. I get the backlight on but no images. ( was my mistake first load to mini ;-) )

    I guess there is a clock issue on the driver side ?

    Do somebody try this "ILI9163_SPI_v110.spin" on a different clock ?


    Thanks

  • Cluso99Cluso99 Posts: 18,069
    Ltech,
    What pins are you using on the mini?
    It doesn't make much sense as the mini is running slower at 5MHz x16 vs 12MHz x8.

    Try turning the backlight off in case there is a power problem on the mini.
  • LtechLtech Posts: 380
    edited 2017-07-02 10:00
    Cluso;

    Got it !

    I take an other mini, and then the screen go wel ?
    re-test with first one, and not working :-(

    Guess I have som broken pins on the firs one. Have to check

    Time to play

    Thank you
  • To answer your original question, I've run it at 10 MHz * 8 just fine. I realize that this was not your problem.
    But, especially in situations like the mini with its reduced number of I/Os please be aware that the library uses three more pins than are really needed. My whole point above is that it is best to ground the ground directly to your power supply, and likewise use the +3.3 for the "Vcc" and also for the LED.
  • LMSLMS Posts: 19
    edited 2021-11-01 13:45

    @Cluso99

    I am using an identical LCD based on chip set ST7735, you should be please to know that your driver almost works 100% on this ST7735

    just one flaw with the image being a few pixels (3) to the far right and by (2) bottom,

    If I rotate the image 180 degrees the glitched pixels are then top and left

    Could cast you memory back and suggest what might need adjusting. BTW I tried with both red and black PCB versions, the black one works the best.

    Attaching the files that I am using and some photos of the glitch..


  • Cluso99Cluso99 Posts: 18,069

    @ManAtWork found my timing was above spec for the SPI interface. I wonder if this is the problem here. Perhaps you could try inserting a delay after performing clear screen and also cursor home?

  • LMSLMS Posts: 19
    edited 2021-11-02 00:38

    Added some additional offsets in an older version.

     lcdWriteData16(xs + 2)
     lcdWriteData16(xs + 2)
     lcdWriteData16(ys + 3)      
     lcdWriteData16(ye + 3)  
    
    PRI setWindow(xs, ys, xe, ye)
      left   := xs
      top    := ys
      right  := xe
      bottom := ye
      lcdWriteCmd(LCD_COL_ADR)
      lcdWriteData16(xs +2)                            ' XSH, XSL
      lcdWriteData16(xe+ 2)                            ' XEH, XEL
      lcdWriteCmd(LCD_ROW_ADR)
      lcdWriteData16(ys + 3)                           ' YSH, YSL
      lcdWriteData16(ye + 3)                           ' YEH, YEL
    
    
    
  • Cluso99Cluso99 Posts: 18,069

    This is a weird result :(
    But I am pleased you have it working :)

    When I wrote this, there was very little data available. I have found that the various ILI and ST chips used basically the same registers. My P2 version expands the LCDs supported up to 4" 480x320.

Sign In or Register to comment.