Lefora Pro Forum
login join
Loading
3289 views

Problems with S128240D-RGB in Bus Mode

Page 1 · 2
21–34
novice - member
29 posts

Hi Markus,

I converted the "Vidit " bitmap and viewed it on my LCD - things loog good.
I'm going to make five attachments
1) Vidit render with DATSDR {0x00, 0x00, 0x04} "Normal"
2) Vidit render with DATSDR {0x03, 0x01, 0x04} "180 roatation"
3) Vidit render with DATSDR {0x03, 0x00, 0x04} "180 roatation + triplet reverse" - looks 'wrong' as every three pixels are reversed.
4) Lena128x128
5) The Vidit bitmap converted to a *.h file - this will allow you to render this array to see where the stray pixels are coming in.

If you have the 3-pixel blocks drawn in the wrong order then try toggling the second parameter e.g. {3, 0, 4} instead of {3, 1, 4}

The objective was three fold
1) Give a reference of what I mean by 180 degree rotation from modifying the DATST parameters 0,0,4 to 3,1,4
2) Show the "Vidit" bitmap with no corruption
3) Demonstrate that the 18V00 external bias (lab pack) can generate sufficient contrast.
I 've also attached an image of the 'Lena' for reference (this also required an external bias supply).
When the 'Lena' is rendered as 64x64 the internal charge pump can handle the contrast.

Martin


Attachment: vidit240x65b256.h (91.0KB)

novice - member
19 posts

Thanks for your time spent. I'll check with the .h file, but I can do it tomorrow, not now. Nice logo. Definitely worth the seperate supply voltage. Looks quite nice.

What is the grey scale setup you use and how did you convert the BMP to .h? I usually open it with irfanview, convert it to greyscale, then save it as RAW file, and then there is a utility called BIN2C which converts stuff into an initialized array. But your .h file seems to be not inverted (0x00 = no pixel), I always get 0xFF = "white" or "transparent".

Feedback tomorrow morning

P.S. Could you post the Lena.h as well?

Markus

guest
91 posts

WOW, thank you Martin, the feedback and images have been amazing!  The grey scale picture looks exceptionally impressive.

novice - member
29 posts

I'm glad the render works for you - I thought seeing the end result could be encouraging.
 
The grey-scale setup is the one from the DisplayTech standard, with the contrast voltage set to 15.33V (measured by DVM) at a temperature of 23C ambient.  The LCD bias voltage is from a lab-PSU at 18V - I've not verified the effect of a noisy charge pump yet.
 
I wrote the bmp to *.h myself - its a 30 minute tool (i.e. took 30 mins to hack together and is 'user-hostile' with no range checking etc).  It takes an 8-bit grey scale image and auto-codes a 'c' array initializer (which I sent you) and meta data to help with the render.  I used it for our own company logo, and for the 'Lena' I used to evaluate the LCD.  The advantage of the custom tool is that the inversion is trivial:   out=0xff -in;
 
I'll be away from my PC the rest of today and tomorrow, but I've left myself a memo to post the Lena.h when I'm back.
 
Martin

novice - member
19 posts

Hi,

I've tried your header file and still got that missing pixel issue. I narrowed it down by writing 0..239 in one display line to simulate a gradient.

This line has a missing pixel every 64 pixels I write. So it seems that the D6 line has some issues.

I resoldered everything and checked with an Ohm meter that the conmnections are proper and no shorts.

I checked the CPLD code and pinout.

No idea.

I will attach the analyser again and test if the patterns on D0 to D7 will be correct. Maybe a wrecked the display during the development of the CPLD code as the CPLD output drivers are very strong.

I ask our stock room for a spare display.

Markus

novice - member
29 posts

Here is a 'c' array for the 'Lena' bitmap.

Attachment: lenaGrey128x128.h (97.0KB)

novice - member
29 posts

Hi,

The 'D6" line may be a red-herring.
Can you confirm that you're issuing the VOLCTRL and PWRCTRL commands, and the LCD is responding to them?
These two commands use a different setting for D6.
What I'm getting at is that if you can issue commands using D6, then data for D6 should not be a 'soldering or connecting" issue.
There could still be a problem in the bus timing though (unlikely).

You may want to take a second look at the following areas:
* Gray1 and gray2 settings (an incorrect value here would certainly cause the problem you're seeing).
* Charge pump voltages (i.e. measure the voltages on each capacitor)
* "painting" code - run the same code but paint a uniform grey-shade across the screen - what happens when this is one of the shades that previously worked, and one of the shades that previously did not.
Martin

novice - member
19 posts

I checked with the logic analyser and the D6 works "as designed" at least at the pin header for the analyser. I see the data write access counting up from 0 to 239, and I rechecked that address setup, data setup and cycle times are in tolerance.

What confuses me is that if the analyser is attached at the LCD debug header, the display is not working at all but the timing I record looks very proper, if I disconnect the probe from the analyser the display works, but with the issues as usual...

I'll check that voltage divider / chargepump thing. I'll get a spare display on monday I think. But I'll get the first prototype of the "final" hardware tomorrow, so I have a 2nd system to test on.

I copied the greyscale setup from the example code (it was a loop before to optimize code space, but it makes no difference and the display behaves the same way)

Markus

novice - member
19 posts

So, I think I finally got the bug. You may call it not bug, but feature...

Although the timing looks quite perfect on the analyser, the display works like a charm if I set the CLKDIV8 fuse in my AVR controller to slow down things to 2 Mhz core clock / memory clock.

It accepts any command fine and no more stray pixel. Even display rotation works.

So I really recommend Displaytech / Sitronix to correct the timing parameters in their datasheet. This thing cost me almost 3 weeks of investigation and gallons of coffee....

I will report if it's running with a higher frequency, but I am limited ro 8 Mhz otherwise the USB clock will be wrong (PLL).

Markus

novice - member
19 posts

It works with 8Mhz CPU clock. I would test with 12Mhz, but then the USB PLL will not work.
I still claim the timing in the datasheet is wrong.

Markus

rookie - member
6 posts


 3 - MARGINAL - With SJ5 in default (1-2) boost configured in x7 mode (with the option of x8 in the 2-3 position)The LCD is run off 3V.x7 boost is limited to 2v8 as specified in ST7529 v1.8 data sheet.x7 boot can theoretically generate 21V from a 3v supplyST7529 v1.8 sates that 20V is the maximum tolerance. => this has the potential to drive the LCD out of tolerance.

-martinr

Hello,

Does the quoted text mean that the charge pump is used in x7 mode in the  original tester schematic on displaytech website? If the Vdd is 3 V in the schematic, shouldn't the x7 pump generate 21 V, which is beyond the tolerance?

I would like to use Vdd = 3.3 V in my design. Is it ok for the Sitrix IC and should I then use a x6 or a x7 pump? To design a x6 pump, should i just connect C6P to VLCD and leave C7P open?

-Akseli

rookie - member
6 posts

Uhh, sorry about that post. The pages 31 to 33 in the ST7529 data sheet explain pretty much everything I asked. (Except for the 7x3 V boosting which should generate over 20 V. How much does it actually generate??)

I can't really agree with the statement 'These commands are very convenient for using.' on p. 33. :) A bit more precise info regarding the booster capability and the display power needs would be helpful.

novice - member
19 posts

should generate over 20 V. How much does it actually generate??

-jamirant

The built-in converter is crap. It never gave me stable contrast when dealing with full screen graphics and a lot of "on" pixels.

I ended up using a small regulated 18V DC/DC converter which gives a nice contrast even with full screen graphics.

Markus

rookie - member
6 posts

After reading this thread I decided to have that as an option. So I designed a 18V DC/DC regulator to the board and later we will see whether we need it or not. I believe we are not going to use grayscale graphics, but we want to utilize the whole temperature range of the display, which might load the built-in converter too much.

Page 1 · 2
21–34

Locked Topic


You must be a member to post in this forum

Join Now!