Discussion:
[N8VEM: 16838] RE: upd7220
Andrew Lynch
2013-12-23 00:33:36 UTC
Permalink
Hi Ilyas! Thanks! That's great news!

Some VGA monitors are sensitive to sync signal polarity. I would check
those first. Also try a variety of monitors. The newer VGA LCD monitors
are amazingly tolerant and will sync to practically anything. There are
some cheap VGA LCD monitors that share circuitry with their TV counterparts
that can sync to NTSC & PAL frequencies which is about half of normal
minimum VGA dot clock (~25MHz)

There are several builders on the N8VEM mailing list who have encountered
this problem with the uPD7220 GDC and the ECB ColorVDU so I will send this
email to the list to see their recommendations as well. Thanks and have a
nice day!

Andrew Lynch
-----Original Message-----
Sent: Saturday, November 30, 2013 1:54 PM
To: 'Andrew Lynch'
Subject: upd7220
Andrew,
How are you? News is that my cpu board and floppy system is mostly
working.
I also worked with Wayne to incorporate an old IO board I had built for my
older z80 card, based on 2 lane ECB spec I saw in a german magazine ct'
long
ago, into RomWBW. Advantage of this IO card is that it uses
Z80-PIO/SIO/CTC
in INT 2 mode as it was meant to be. With this IO card I can use a PS/2
keyboard and a 320x240 LCD.
Now next step is to make upd7720 work. I am using your test
program, D7220.C slightly modified to be used with SDCC compiler. I have
used two monitors a BenQ and another LG. BenQ monitor does not seem to
sync, it complaints about missing signals. LG monitor sort of syncs and
displays garbage on the left hand side of the screen while test program is
working and then displays a mostly bluish screen with light blue/white
vertical bands. I would consider this a sync problem as well. I have
looked at
the sync signals and timing seems correct. Some minor changes to the
timing
does not make any difference.
My view is that may be the monitors I have just do not work with
640x480 mode. After MSFT set 800x600 as lowest resolution most
manufacturers stopped supporting 640x480 mode. With 25.175MHz clock I
believe trying
800x600 may work with ~40Hz refresh rate which does not sound like a good
idea. Any ideas besides finding a really old monitor?
Regards
Ilyas
John Coffman
2013-12-23 06:49:36 UTC
Permalink
VGA is a standard that most monitors support, so I would look other
places for the problem.

25.175Mhz is the 640x480 dot clock, meaning that each pixel across the
screen is clocked out in 1 / (25.175x10**6) seconds. Monitors know
nothing about the dot clock frequency.

What matters is the programming of the CRTC: how many pixels per
character, how many characters displayed, how many characters on a line,
and the placement of the horizontal sync pulse during the non-displayed
portion of the line. There is similar programming for how many lines
there are vertically, how many are actively displayed, and the placement
of the vertical sync pulse.

An error in any of this programming, and PFFTTT, no display. So check
this part of the setup first.

With no display on two monitors, I suspect a h/w problem on the uPD7220
board. Because of minimum order requirements, I had several uPD7220's
to play with. Of the original 5, 3 are now marked "BAD." The chips
were DOA [dead on arrival]. The remaining two work fine at 25.000Mhz
(close enough) and at 40.000Mhz, the limit for the uPD7220 5Mhz version.

Sync polarity is an issue with older monitors. Originally, the
combination of H/V polarities was meant to tell the monitor what
frequency it was to run at. Since there are now so many "VGA"
extensions: VGA, SVGA, XGA, ... , I think most monitor manufacturers
just made circuits that would sync on any polarity. If you feel the
need to test all of them, start with +/+, and go through the 4 combinations.

Lastly, what combination of 74F logic and 74LS logic did you use in
building the board? Certain of the components need to be from a fast
logic family, and others must be from the slower family (LS). This will
affect the quality of the display, not whether you get a display or not.

I've been able to use the uPD7220 with two different monitors at both
640x480 and 800x600 resolutions. The CRTC setup is different for each
of those resolutions, so be sure you have the correct timing parameters
for the mode that you are testing (start with 640x480). The first
monitor I used was an old GEM (el cheapo) with analog sync adjustments
(knobs) on the front. The newer monitor is a Vizio LCD wide-screen,
with every conceivable input connector on the side or back, plus digital
screen adjustments.
From what you say, if the programming is correct, I would suspect the
board first, and the monitors second. On the board, I would suspect the
7220 chip first, the DAC second, and anything else third.

BTW: what version of SDCC are you using? 3.3.0 is lousy, 3.0.0 is
good, and the 2.9.x series is, I believe good.

--John
Hi Ilyas! Thanks! That's great news!
Some VGA monitors are sensitive to sync signal polarity. I would check
those first. Also try a variety of monitors. The newer VGA LCD monitors
are amazingly tolerant and will sync to practically anything. There are
some cheap VGA LCD monitors that share circuitry with their TV counterparts
that can sync to NTSC & PAL frequencies which is about half of normal
minimum VGA dot clock (~25MHz)
There are several builders on the N8VEM mailing list who have encountered
this problem with the uPD7220 GDC and the ECB ColorVDU so I will send this
email to the list to see their recommendations as well. Thanks and have a
nice day!
Andrew Lynch
-----Original Message-----
Sent: Saturday, November 30, 2013 1:54 PM
To: 'Andrew Lynch'
Subject: upd7220
Andrew,
How are you? News is that my cpu board and floppy system is mostly
working.
I also worked with Wayne to incorporate an old IO board I had built for my
older z80 card, based on 2 lane ECB spec I saw in a german magazine ct'
long
ago, into RomWBW. Advantage of this IO card is that it uses
Z80-PIO/SIO/CTC
in INT 2 mode as it was meant to be. With this IO card I can use a PS/2
keyboard and a 320x240 LCD.
Now next step is to make upd7720 work. I am using your test
program, D7220.C slightly modified to be used with SDCC compiler. I have
used two monitors a BenQ and another LG. BenQ monitor does not seem to
sync, it complaints about missing signals. LG monitor sort of syncs and
displays garbage on the left hand side of the screen while test program is
working and then displays a mostly bluish screen with light blue/white
vertical bands. I would consider this a sync problem as well. I have
looked at
the sync signals and timing seems correct. Some minor changes to the
timing
does not make any difference.
My view is that may be the monitors I have just do not work with
640x480 mode. After MSFT set 800x600 as lowest resolution most
manufacturers stopped supporting 640x480 mode. With 25.175MHz clock I
believe trying
800x600 may work with ~40Hz refresh rate which does not sound like a good
idea. Any ideas besides finding a really old monitor?
Regards
Ilyas
Loading...