Jump to content
SiLic0ne t0aD

New Coleco RGB board?

Recommended Posts

Hmm, I hadn't noticed it before, but in doing these back-and-forth comparisons between those images, it looks like the TMS Doc version actually has a little bit of overshoot on all of those first pixels.  (You can see it best on the left edge of each staircase where it's a little brighter than the rest.)

 

Initially I had chalked up these sorts of artifacts to having all of this built on a solderless breadboard with long wires running all over the place.  I wonder how much some final, tiny, actually-soldered board will clean any of this up?

Share this post


Link to post
Share on other sites
4 hours ago, Falonn said:

It's this "color burst is below 0V" that causes the blue cast in the TMS Doc circuit.

The color burst isn't below 0V though.  It's the same thing as full yellow.  The TMS is not capable of negative voltages.  It has a bias (neutral) voltage of about 2.5V.  "Negative blue" (yellow) is about 2V, and that's true whether it's for color burst or for visible color.  Why design a separate circuit for color burst when you can easily use the modulator to do both?

 

"Positive blue" is about 3V.

 

The same is true for the R output.  2.5V is neutral.  2V is full negative red (green-ish).  3V is full positive red.  On PAL color burst, this alternates between red and green.

 

CV uses the LM1889 which requires a reference bias voltage that the color inputs are compared with in order to create the 3.58MHz sine wave that represents color.  So there are capacitors to decouple the DC from the TMS's color output (which does actually allow negative voltages at that point, but they are still critical to correct color output).  The 4066's switches in the CV design are there to add a known bias voltage, where the same voltage is applied across both colors and the bias line during a sync pulse, to ensure that the color information is consistent.  This allows the modulator to maintain a proper neutral regardless of the TMS's mood or temperature.

  • Thanks 1

Share this post


Link to post
Share on other sites

I'm afraid it might be your fate to remind me that it can't generate negative voltages, forever. 😅  A find-and-replace for "0V" to "black level" is almost certainly what I keep intending despite continually mistaking "sync level = -0.3V" when I (probably) mean "sync level = black level - 0.3V... with black=0.3V".  Sorry for the continued source of misinformation.

 

Are the voltages that you mentioned ("+B is about 3V", "Yellow is ~2V", etc.) referring to what's coming from the graphics chip on the B-Y line (maybe after correcting with the scaling and +Y)?  Or did you mean the B in the final RGB output?  For the latter, wouldn't there need to be some voltage on the R and G lines to make yellow?

 

All of my discussion above was for the B output at the end of the RGB conversion, so we may have been talking about two different things.  Sorry again for the confusion!

Share this post


Link to post
Share on other sites

FWIW, I spotted this TI blog post while learning about the overshoot/ringing problem on the TMS board.  They suggested adjusting the cap in the negative feedback network.

 

As it turns out, one of the very few, small substitutions I had to make while constructing these was using 4.7pF instead of 5pF in those places.  I didn't have any 5pF caps.  The next size up in my parts bin was 15pF.  Swapping each 4.7 out for 15 on the R and B amps eliminated the overshoot in those channels.  The green channel still has a little, and 15pF was either too much or too little, but this gives me hope that the problem is just coming down to parasitic capacitance from the breadboard and the wires flying all over the place.

 

Now the (still too-blue) picture from the TMS Doc board looks even more lovely!

1953525530_TMSnoovershoot(15pFinsteadof4.7onBandR).thumb.png.d81266a3b2ee28fd3d1236a8d02ac1a5.png

 

  • Like 1

Share this post


Link to post
Share on other sites
9 hours ago, Falonn said:

Are the voltages that you mentioned ("+B is about 3V", "Yellow is ~2V", etc.) referring to what's coming from the graphics chip on the B-Y line (maybe after correcting with the scaling and +Y)?  Or did you mean the B in the final RGB output?

I'm speaking of TMS992x output for the voltages centered around 2.5V.

 

RGB (at least for a VGA monitor) expects each of the colors to be between 0 (no color) and 0.7V (full color), with a 75-ohm impedance.  This is also apparently true for SCART RGB.  So all the usable colors are supposedly reproducible with >=0 values of R, G, and B.  In this case, yellow is full R and G and 0 B.

Edited by ChildOfCv

Share this post


Link to post
Share on other sites
3 hours ago, emmanuelf said:

For scart, you could and should have a DC offset for proper operation. Up to 2V. 

Granted, I don't have an official SCART specification in front of me, but the page I consulted said that R, G, and B were 0-0.7.  But the blanking needs to be 1-3V for RGB operation, otherwise you get composite operation.  But I won't disagree too much since I've never even seen a physical SCART connector before :)

Share this post


Link to post
Share on other sites
1 hour ago, emmanuelf said:

Yes 0.7Vpp with up to 2V of bias.

The complete specification transposed from the original CENEL/European standard (non public document) into British standard (public document):

http://fr.meric.free.fr/Articles/articlesba/stsurtvplat/Scart/BS_EN_50049-1 Peritelevision connector.pdf

Thanks.  I've been looking for an authoritative source.

 

But this language confuses me:  "Superimposed d.c. component within 0 V and +2 V"  Maybe this is a translation issue.  Do they mean that the DC component must be between 0V and 2V?

Share this post


Link to post
Share on other sites

"d.c. component" makes it sound like just the bias with the 0.7V on top of that.  And yes, having an official source is awesome.  I'd also been looking for something like this.  Thanks!

Share this post


Link to post
Share on other sites
Quote

Do they mean that the DC component must be between 0V and 2V?

Yes I think.

Off the shell standard video buffer (6db gain) have a 300mV output bias ( Ti THS73xx line).

Share this post


Link to post
Share on other sites
17 hours ago, Falonn said:

"d.c. component" makes it sound like just the bias with the 0.7V on top of that.  And yes, having an official source is awesome.  I'd also been looking for something like this.  Thanks!

Yeah that does seem to be what they're saying.  0VDC is legal, as is anything up to 2VDC, and the signal can sit on top of that.  The intent may be to allow for video amplifiers that don't have rail-to-rail outputs so they can't reach 0V.

Edited by ChildOfCv
  • Haha 1

Share this post


Link to post
Share on other sites

Good news and bad news for the Hackaday circuit.  The good: it does appear to suppress the blue color burst correctly.  The bad: something is very wrong in the red channel.  The output level is way up in the 4V range.

1427597355_01as-specified.thumb.png.700b84ad777612b63d10f63cf6da81ef.png

 

I've done an initial pass at double-checking all the components are where they need to be (and doing a few sanity checks with the scope), but didn't spot any obvious mistakes.  I confirm each resistor value with a meter before it even makes it to the breadboard, so that shouldn't be the problem.

 

Just tinkering around---knowing this circuit doesn't use split rail op-amps, so this probably wouldn't work---I added the same 10uF coupling caps used in the TMS circuit to the B-Y and R-Y inputs.  The result was interesting to look at, but not much better.  Here (at 4 seconds), I press the reset button and we get to watch the caps charging in real-time:

 

 

It's curious that the same isn't true of the blue output.  They're nearly symmetrical in the schematic.  I'll poke around tonight to check for mistakes again.  If anyone has suggestions on what to check, I'd love to hear them!  (Unless there are more electrical differences between the 28A and 29A than I know about, we've already seen this circuit work on a PAL Colecovision a few pages back, so this is most-likely my fault.)

 

I am heartened by the blue color burst being removed, at least.  We're nearly at the point of grabbing the best pieces from each circuit and creating some Frankenstein's monster that actually works.

  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, Falonn said:

Good news and bad news for the Hackaday circuit.  The good: it does appear to suppress the blue color burst correctly.  The bad: something is very wrong in the red channel.  The output level is way up in the 4V range.

Yikes!

And yeah, those two circuits are nearly identical other than their inputs.  So if the wiring is not a problem, the next best bet may be that a chip failed due to ESD from all the tinkering.  Then there's always the possibility of a breadboard lane that isn't making good contact with all of its inputs.  My breadboard has trouble making contact with capacitors that use especially thin legs, for instance.
I guess just trace back from the output to see if you can find an obvious instance where the input is obviously different from the output.

 

Share this post


Link to post
Share on other sites

Yeah, as soon as I saw the initial red cast on the TV, I shut everything off and switched back to one of the other boards to make sure I hadn't somehow damaged the Colecovision.  (I hadn't.)  Next is a meticulous confirmation that each op-amp channel is still working correctly.

 

Here's the family portrait, now that they're all complete:

 

All three breadboards

 

Looking at the Hackaday schematic a little more, is it really the sample-and-hold (with the TL081) that's cleaning up the color burst?  From the looks of it, that's just doing the auto-scaling (so it doesn't need any trim pots).  Isn't it the pair of 4066 channels being controlled by "burst" (pin 5) of the LM1881 that actually does the cleaning up?

 

If that's all it takes, it should be easy to port just that piece of it over to the TMS circuit.  (There are even two unused 4066 channels left on that board, so it wouldn't take any additional chips.  And adding an LM1881 means dropping like half the part count from the TMS circuit. hehe.)

 

Still, I would have liked fully automatic scaling.  Hopefully I'll be able to suss out what's going wrong here...

Share this post


Link to post
Share on other sites
4 hours ago, Falonn said:

Looking at the Hackaday schematic a little more, is it really the sample-and-hold (with the TL081) that's cleaning up the color burst?  From the looks of it, that's just doing the auto-scaling (so it doesn't need any trim pots).  Isn't it the pair of 4066 channels being controlled by "burst" (pin 5) of the LM1881 that actually does the cleaning up?

Reasoning it out here:

1) LM1881 outputs CSYNC which is active low.  It is only active during the sync tips, so it's usually high and goes low during the sync.  Color burst follows sync.

 

2) U4A is switched by CSYNC so it's usually on but turns off at CSYNC.

 

3) U4D has a high pull-up resistor, but is pulled to ground when U4A is on.  So U4A is a NOT gate for the U4D switch.  When CSYNC goes low (during the sync tip), U4D turns on.

 

4) U4D connects B-Y to the sample/hold capacitor C14 during this sync period, and shuts it off otherwise.

 

5) C14 holds the voltage input to U6 which is set up as a voltage follower to Vref.

 

So, the output of U6 should be equal to the voltage of B-Y during sync, once the capacitor stabilizes.

 

 

Now we turn our attention to the LM1881's burst output.  This goes low shortly after CSYNC goes high.

 

1) It turns off U4B and U4C, cutting off R-Y and B-Y from the TMS992x.

 

2) Vref is eased in through R28 and R29.  So during "burst" output, the voltage into U2A and U3A should be roughly equal on both inputs, so U2A and U3A ought to be mostly neutral.  Since their negative poles are used in the gain feedback and also at Vref, their outputs should show Vref also.

 

So the first part really does look like a sample/hold.  And the second part is where it should be silenced by the sample/hold voltage.

 

 

I'd check the voltage on the negative input of U2A.  I bet it's way too low, or possibly floating.

Edited by ChildOfCv
  • Like 1

Share this post


Link to post
Share on other sites

My first sanity check (before spotting your post) was to swap out all the ICs with spares, just in case I'd destroyed one with ESD or when soldering the small ones to the adapter boards.  No effect / identical results.

 

Now, following along with your description:

 

1) Yes, this is very clear coming off pin 1 of LM1881.  About 150mV when active, 3.3V otherwise.

 

2 & 3) Yes, testing the net between U4A and U4D (pin 2 of the 4066), it's essentially the inverse of sync: 4.8V when active, 650mV otherwise.

 

4 & 5) As B-Y hasn't been DC-restored at this point, (on an all-white screen,) it's always 2.65V, except during the burst period when it's 2.3V.  The sample/hold seems to be working correctly as the positive input to U6 shows a flat 2.65V at all times.

 

U6's positive input might as well be a perfectly flat line.  The output (Vref, in pink) is similar, but not quite as clean:

 

 

Hack03.thumb.png.f1d6021fe4c47f3e1c685996f46fc892.png

 

Yellow is pin 1 of the LM1881.

 

1) Yep, the burst output (LM1881 pin 5, in pink) neatly covers the full duration of the color burst on the B-Y line (in blue).

 

Hack04.thumb.png.47b60f2a68c449e59f028b0367003b57.png

 

2) The negative input of U2A is exactly Vref.  Zoomed way in, the traces overlay exactly.

 

Comparing this to the other circuits where the B-Y color burst was at or dipping just below 0V, it's a little strange that it's hanging out around 2.3V, here.  Is there a missing DC restoration step?  Would DC restoration fix this?

Share this post


Link to post
Share on other sites
On 3/22/2020 at 9:55 PM, Falonn said:

My first sanity check (before spotting your post) was to swap out all the ICs with spares, just in case I'd destroyed one with ESD or when soldering the small ones to the adapter boards.  No effect / identical results.

 

Now, following along with your description:

 

1) Yes, this is very clear coming off pin 1 of LM1881.  About 150mV when active, 3.3V otherwise.

 

2 & 3) Yes, testing the net between U4A and U4D (pin 2 of the 4066), it's essentially the inverse of sync: 4.8V when active, 650mV otherwise.

 

4 & 5) As B-Y hasn't been DC-restored at this point, (on an all-white screen,) it's always 2.65V, except during the burst period when it's 2.3V.  The sample/hold seems to be working correctly as the positive input to U6 shows a flat 2.65V at all times.

 

U6's positive input might as well be a perfectly flat line.  The output (Vref, in pink) is similar, but not quite as clean:

 

 

Hack03.thumb.png.f1d6021fe4c47f3e1c685996f46fc892.png

 

Yellow is pin 1 of the LM1881.

 

1) Yep, the burst output (LM1881 pin 5, in pink) neatly covers the full duration of the color burst on the B-Y line (in blue).

 

Hack04.thumb.png.47b60f2a68c449e59f028b0367003b57.png

 

2) The negative input of U2A is exactly Vref.  Zoomed way in, the traces overlay exactly.

 

Comparing this to the other circuits where the B-Y color burst was at or dipping just below 0V, it's a little strange that it's hanging out around 2.3V, here.  Is there a missing DC restoration step?  Would DC restoration fix this?

So perhaps the next useful scope traces would be the +, -, and output of U2A.  Let's see if they make sense.  You could trigger from the burst channel to keep the traces somewhat stable.  But I have suspicions whenever signals are too clean :)  Like maybe it's not getting its feedback from the output.  Oh, and try to clip to the IC pins if possible.  If you're measuring a convenient part that "should" be connected, it's possible that you won't see what the chip is seeing.

 

Also, one other question:  What is R-Y's typical voltage?  Is it at least close to B-Y?  Well, I suppose instrumenting the U2A inputs should answer that question anyway.

 

Edited by ChildOfCv

Share this post


Link to post
Share on other sites

One of the things I've learned from all this is... I really need to find a way to justify buying a new oscilloscope. :)

 

  • Haha 1

Share this post


Link to post
Share on other sites
21 minutes ago, 5-11under said:

One of the things I've learned from all this is... I really need to find a way to justify buying a new oscilloscope. :)

 

I just snagged a 100MHz Rigol MSO1104Z for a screaming good price. When I opened the box, all the optional extra features were already permanently enabled. not even trial licenses!

It's already seen battle.

Sweet deal for an excellent scope.

Share this post


Link to post
Share on other sites
2 hours ago, MrPix said:

I just snagged a 100MHz Rigol MSO1104Z for a screaming good price. When I opened the box, all the optional extra features were already permanently enabled. not even trial licenses!

It's already seen battle.

Sweet deal for an excellent scope.

Nice.  Mine's an entry level Siglent 200MHz with 2 channels and a trigger.  Falonn's is a few giant steps above.

Edited by ChildOfCv

Share this post


Link to post
Share on other sites
3 hours ago, ChildOfCv said:

Oh, and try to clip to the IC pins if possible.

Yikes, bad phrasing.  I meant attach the clips to the pins, not that anybody took that the wrong way...

Share this post


Link to post
Share on other sites
5 hours ago, ChildOfCv said:

Falonn's is a few giant steps above.

No way, hehe, it's just the quintessential, entry-level Rigol DS1054Z (with the software stuff unlocked) that you see recommended everywhere as "what's the cheapest scope I should buy?"

 

9 hours ago, ChildOfCv said:

What is R-Y's typical voltage?  Is it at least close to B-Y?

With nothing at all connected to the Colecovision board (except the scope probes), the R-Y and B-Y pins of my 9928A are showing the exact same range:

 

Popeye game selection screen:

Y: 1.8V to 3.16V  (black at 2.2V)
R-Y: 2.2V to 3.16V (blank at 2.63V)
B-Y: 2.2V to 3.16V (blank at 2.63V)

 

Solid white screen (test cart):

Y: 1.8V to 3.16V (black at 2.2V)
R-Y: 2.6V, always
B-Y: 2.3V to 2.63V (blank at 2.63V, burst at 2.3V)

 

9 hours ago, ChildOfCv said:

So perhaps the next useful scope traces would be the +, -, and output of U2A.

It is worth mentioning: the XR8052 amps in the schematic were discontinued the year after the schematic was made.  I wasn't able to find any of those in the usual places, but there were still a handful (literally, less than a dozen) of the four-channel XR8054 sister chips left at Digikey.  So instead of 3x two-channel amps, I had to build this with U1 and U2 combined into a four-channel chip and U3 on its own with the C and D channels wired as plain unity-gain with a voltage divider feeding around 2.5V into the input (as recommended for unused op-amp channels).  As far as I can tell, this has had zero impact, but it's good to clarify.  (When you say U2A, it really means something like U1C when I go to find the pin, hehe.)  Should we find a way to get this board working, a suitable replacement part for these discontinued ICs will be yet another challenge...

 

As for U2A, here are the traces for about three lines (directly from the IC's pins):

- Ch1 (yellow): Burst, pin 5 from LM1881

- Ch2 (cyan😞 U2A output

- Ch3 (pink): U2A negative input

- Ch4 (dk.blue): U2A positive input

 

Test conditions (in order):

- solid "white" (actually fuscia) screen

- solid "black" (actually red) screen

- Popeye mode select

 

Hack05.thumb.png.c42b2b0d08c58b06b26c515515093c68.png Hack06.thumb.png.d627ff4bf736a4e3f5feedcd13b1fd3e.png Hack07.thumb.png.482b83998b52792df868c3e3ae023acb.png

 

 

In the meantime, I've also conducted a couple of my own experiments:

 

Experiment #1: Graft the R-Y/B-Y DC Restoration scheme from TMS over to Hackaday

 

It took four or five readings before it finally clicked yesterday, but the scheme in the old TI document is really graceful for making sure the blanking level comes in at 0V.  They couple the inputs with a fairly large'ish capacitor, but then during blanking, they open a pair of 4066 switches to ground them.

 

I thought I'd give it a shot to try and get things back in range, so I tacked this onto the beginning of the Hackaday circuit (temporarily; since removed):

 

831944991_Hackaday-Fix01.thumb.png.18be5a4893b3f6788eceae760cc74999.png

 

It actually got pretty close.  Instead of going crazy and over-saturating the red almost immediately, it mostly just looked like a red version of the usual "too much blue" we've seen elsewhere, and then around 10 seconds later, it would eventually creep back up to being a mess.  Still, an interesting experiment to be sure.

 

Experiment #2: Use the wonderful burst signal from the LM1881 to try and do something in the TMS circuit

 

I had a couple of 4066 channels free on that board already and connecting an LM1881 is trivial, so I wondered what would happen if I just used the 4066 to "shut off" the B-Y and R-Y inputs during the burst interval?  That should look like this:

 

691406908_TMS9928A-RGBInterfacetoMonitorsFix01.thumb.png.64c2bdc233617f80672049a96cc6dd9b.png

 

Alright, yeah, they're technically floating inputs during the burst, so who knows what you'll get...

 

The answer (at least on my Colecovision) is that the too-much-blue problem is solved(!)... replaced by a tiny-bit-too-much-green problem instead. 😆

 

I was hoping for a perfectly flat B-Y signal when the 4066 was off during burst.  Instead, I got a smoothed-out, slight positive bump for the entire duration.  That's fine for blue.  Positive doesn't impact the auto-scaling done by the receiver.  But when green is calculated by subtracting the B-Y line, you get a slight negative bump.  And that does impact the auto-scaling.

 

In any event, this is very close to correct now:

1874531864_TMSnoovershoot(R-15B-15G-10).thumb.png.d230ecbf8790d91fac2d2264e29769b2.png

 

(The green is strongest at the top of the screen and fades to black by the bottom.  It's much easier to see on the TV.  In this capture from my Elgato HD60, you almost need to raise the brightness before you can see the solid green in the background.)

 

I haven't tried it yet, but the next experiment will hopefully be a refinement that should fix this outright:

 

Instead of a 4066 channel that's either on or off, you could use a little SPDT switch (like this one) to switch from B-Y/R-Y (or even the R, G, B outputs themselves) over to, say, a voltage divider between 5V and GND that was set right at the black level.  No more floating data.  Perfectly flat line (hopefully/in-theory).

 

Thinking about it more, it might even help with the trimmer pot tuning!  Since the black level during burst would be forced to 0.3V by the divider network regardless of the pots, there would be a perfect sweet spot (when adjusting the blue pot on an NTSC system) where the (now artificially induced) too-much-blue would fade to black just before switching to too-much-green.  You could most-likely tune it by eye instead of needing a scope.

 

Speaking of auto-tuning, the more I think about a circuit without trimmer pots, the more I have my doubts.  While re-reading the TMS doc, I ran across their reasoning for DC restoration: "In the case of an RGB encoder, a black screen with dark red letters might appear as a gray screen with pink letters" followed later by "unfortunately, the R-Y and B-Y signals are not guaranteed to have a most negative or positive excursion within any particular period of time" and "the output level of the video display processor can vary from device to device as a function of process, or as a function of temperature".

 

It makes me wonder if the Hackaday circuit wasn't designed for his particular chip and mine is just a "fussier" one?

 

At any rate, those three statements taken together make me wonder if any sort of auto- or preset-scaling might be a lost cause?  What works for one board probably won't on another, right?  (That may even be what we're seeing here already.)

 

As-is, I already had to remove the 82-ohm pull-down/divider from the sync output (R25) on the Hackaday board before it would even sync on my Framemeister.  And the output is AC-coupled, which is contentious at best.  (The TL;DR; for that page is "they probably shouldn't be; TVs are pretty forgiving; and in some extreme cases you may even have to!")

 

So I'm leaning even more heavily toward "TMS Doc with half the discrete parts replaced by an LM1881 plus something to filter out the color bursts" as being the most promising path.  I ordered some of those little SPDT switches to try next.  (We'll see when/if they arrive...)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...