From: Paul Carpenter on
On 12 Feb, in article
<1171301228.735967.108130(a)a34g2000cwb.googlegroups.com>
zwsdotcom(a)gmail.com "larwe" wrote:

>On Feb 12, 11:37 am, Guy Macon <http://www.guymacon.com/> wrote:
>
>> I am still thinking that a counter clocking data out of
>> RAM can make a VDI signal.
>
>I agree this sounds doable, but I would not expect this system to work
>unless you are delivering at minimum VGA scanrates.
>
>A method I used to drive an LCD (not DVI) "directly" from an 8051 was

Well I would first look at the manufacturers of the DVI (LVDS etc chips)
for example National DS90CF383, they have a whole series of app notes
on driving monitors using these sorts of interfaces.

>to embed the sync signal in spare RAM bits; i.e. I used two bits each
>for r,g,b in a x8 SRAM and put the v-sync and h-sync bits in the
>remaining bits. The v-sync bit caused a micro interrupt; the micro
>then held v-sync active while resetting the counter that addressed the
>video RAM. (Actually it was a bit more complex than this - the micro
>tristated the counter and held the v-sync active, then if necessary
>wiggled the address/data bus on the RAM to update display data).

The problems I have found with various LCDs/monitors that use a DVI or
DVI style interface, they can go screwball if you miss one clock cycle or
worst get one pixel difference between two frames. They tend to use Hsync
Vsync and enable as helpers, and not resyncers as monitors do, so make sure
you have the right amount of clock pulses on every line INCLUDING blanking.

Work out what scheme of bpp you want as well as encoding. Supply the parallel
data to the LVDS or TMDS chip and timing and you are away.

>Your intermediate divider and base dot clock will depend on what
>resolution you want to use to drive the display. You will probably
>also want to add extra logic so that you can reuse scanline data; i.e.
>have separate scanline and dot position counters and ignore the lower
>bits.

Make sure the clock sent has the expected frequency for the display format
even if you are using it a lower resolution, not all the rescalers are
good at dcoding and expect exact frequencies and ratios.

>Let's try to work some nice numbers into this. Start with a 32kHz horz
>sync, since it's a nice round number. You need to supply a v-sync
>pulse every 480 lines, which is 15ms (66.67Hz).

Some displays will balk at that especially if they do not get a repeated
frame in 40-60 Hz rate. LCD specs are notoriously at specifying min and max
clock, Hsync, Vsync rates. they tend to spec at one display format only.

--
Paul Carpenter | paul(a)pcserviceselectronics.co.uk
<http://www.pcserviceselectronics.co.uk/> PC Services
<http://www.gnuh8.org.uk/> GNU H8 & mailing list info
<http://www.badweb.org.uk/> For those web sites you hate

From: Paul Carpenter on
On Monday, in article <7_2dnYDFG7p0Ok3Y4p2dnA(a)giganews.com>
http://www.guymacon.com/ "Guy Macon" wrote:
>Guy Macon <http://www.guymacon.com/> wrote:
>
>>I am working on an 8051-based project that needs a
>>display. Normally I would just use a small character-
>>based LCD display, but in this case I am thinking of
>>going with something a bit more impressive; a standard
>>flat-panel PC monitor.
>
>
>Here are the results of my resarch so far:
>
>This fellow did 20 rows by 20 columns of 8x12 characters
>using a 16MHz AVR.:
>http://www.serasidis.gr/circuits/AVR_VGA/avr_vga.htm

Not bad, but like all things you do not see what the overhead of changing
the text is like as to what happens on scrolling the text as a new line is
added.

>..and a simle colorbar generator:
>http://www.serasidis.gr/circuits/colour_bar_gen/colour_bar_gen.htm
>
>If a 16Mhz. AVR can do that, what can a 100mips Cignal C8051F120 do?

Firstly Mips means nothing when doing video circuits, continuous data
bandwidth is the major key, as you cannot miss anything or everything
slides or gets holes in.

Not very impressive, considering I have driven two LCDs with parallel
24 bit to EACH LCD from one PLD, having proper 8 colours in the colour bar
pattern, greyscale ramps (ALL codes) and many other patterns, no memory
required. Each LCD had switch selectable pattern, inverted, missing colours
and other test functions. Each LCD could display its own pattern.

That was with a 128 macrocell device. Not uncommon for me to drive 10 bit
video ADCs to generate the analog signals.

>A OMAP5910 might have potential:
>http://focus.ti.com/lit/an/spra847/spra847.pdf

I class most we can do complete VGA in a micro as 'willy waving' excercises
to show what a processor can do, not whether it is a useful example or
exercise.

Have any of the above been used in anger?
Are they more than just interesting projects documented on web pages?

>Or maybe this TVT-KVGA:
>http://www.tvterminal.de/Flyer_TVT_KVGA_international_070129.pdf

Probably closest to what you are looking for but analog not DVI output,
would need digitising and serialising to use the digital portion of the
DVI interface.

From about 1981, when I was working at DEC in Reading it would considered as
what was then the VT30H (quad and hex unibus card) graphics controller,
converted to VT30S. This had 8085A processor to control the colour graphics
controller and keyboard for remote mimic displays in factories/railways
and the like.

The ANSI command set makes it look like later VT30S or VT2xx colour
terminal on a chip actually at lower resolution.

>The Parallax Propeller appears to have some sort of "video object":
>http://www.parallax.com/propeller/index.asp

Not had time or resources to test the usefulness of this approach
but see it more as another interesting exercise and what can be done.
Whether it is useful or can provide the parallel digital output to drive
the LVDS/TMDS interface is to be seen as these interfaces run at 7 x main
clock rate by internal PLL.

>Or maybe a Xlinnx XC4005XL?
>http://www.ece.umr.edu/courses/cpe214/vga_datasheet.pdf

The basis of that in a newer chip could easily provide the VGA timing
and control a dual port RAM, which favoured display cycles to host cycles
which in simplest forms can have WAIT states inserted. Interupts for H and V
blanking can get major updates done.

Xilinx and Altera have examples for NTSC timing generation so it would be
easy to implement.

>Or I could go with good old DonTronics:
>http://www.dontronics-shop.com/product.php?productid=16388&cat=262&page=1

Without knowing more of the application it is difficult to say as most of
theirs seem suited to CSTN/STN displays that operate differently to
TFT the major types of LCD on DVI interface monitors.

Their outputs are analog or stepped analog (crude R2R ladders for lower
res), which is not much use on a digital DVI interface.

>Any thoughts on any of the above?

Important questions

Are you displaying symbols/text/moving text or just changing
complete display frames (aka bill board advertising)

What type of DVI interface are you going to do
Analog
Digital
Both at same time

How often does a display change (average and peak)

Is colour required?

What is the max update rate for say a screen full of text scrolling
to add another complete line of text or Direct Cursor Addressing
to change a partial of whole line of text.

The big killers in simple text displays is scrolling/inserting text in
the display and what happens to wrapped or cropped data. The other killer
is how they scroll the text i.e. jump or smooth for the character lines.

Do any of these blank displays during large updates, and what is a large
update for each controller?

I have seen many that assume a few characters of change occur a second
so stop displaying video to do the update. It is better to update as
low priority compared to displaying to avoid extra flicker and judder
on displays.

>Guy Macon
><http://www.guymacon.com/>

--
Paul Carpenter | paul(a)pcserviceselectronics.co.uk
<http://www.pcserviceselectronics.co.uk/> PC Services
<http://www.gnuh8.org.uk/> GNU H8 & mailing list info
<http://www.badweb.org.uk/> For those web sites you hate

From: nappy on

"Paul Carpenter" <paul$@pcserviceselectronics.co.uk> wrote in message
news:20070212.1921.325648snz(a)pcserviceselectronics.co.uk...
>
> What type of DVI interface are you going to do
> Analog

What is an analog DVI interface? :)


> Digital
> Both at same time
>
> How often does a display change (average and peak)
>
> Is colour required?

I don' think there is a monochrome DVI protocol.


From: Homer J Simpson on

"Guy Macon" <"http://www.guymacon.com/"@example.com> wrote in message
news:9KKdnQkb_NJoMlPY4p2dnA(a)giganews.com...

> I am working on an 8051-based project that needs a
> display. Normally I would just use a small character-
> based LCD display, but in this case I am thinking of
> going with something a bit more impressive; a standard
> flat-panel PC monitor.

> Another possibility would be some sort of display chip;
> does anyone know of one suitable for a slow 8-bit micro?

Look at "The Cheap Video Cookbook" Donald E. Lancaster, Vols 1 and 2.



From: Frank-Christian Kruegel on
On Sun, 11 Feb 2007 05:56:03 +0000, Guy Macon
<"http://www.guymacon.com/"@example.com> wrote:

>I am working on an 8051-based project that needs a
>display. Normally I would just use a small character-
>based LCD display, but in this case I am thinking of
>going with something a bit more impressive; a standard
>flat-panel PC monitor.

Depending on your needs TV and teletext chips would be another option.
Philips makes the SAA5x9x series, which is 8051 based, and some of these
chips even allow external data and external program memory. These processors
have video hardware inside, and instead of receiving teletext data you could
write into the internal display ram in order to to display things. Some of
these are also 100/120 hz ready.

The older chips (SAA1054 etc) were i2c controllable, without internal CPU.
If you can still get them, they are easier to work with due to lower
pincount.

You must feed an empty BAS signal (sync only) into these controllers for
video timing.

Mit freundlichen Gr��en

Frank-Christian Kr�gel