Functional VDP Test (TMS9129NL) with Arduino

Por calderone

Supporter (10)

Imagen del calderone

05-06-2020, 22:10

I'm trying to repair my VG-8010, for a while now. But until now, I had no luck and I'm still stuck with a black screen.
Also see my comments in this tread:
Nevertheless there are other things I will need to verify, or other things that could be the cause, sure.

One thing I had noticed: the VDP chip became very hot, really hot. I'm speaking of a TMS9129NL(PAL) in this VG-8010.
So, from all chips on this motherboard, the VDP was the only chip producing heat. That made him a suspect to me.
Not sure and not finding any confirmation this would be normal behaviour, I wanted to find a way to test this VDP.
Is it dead, shorted or just malfunctioning ?
Luckily, this TMS9129NL sits in a socket on the motherboard, so it is easy to take it out and test it !?
There stopped my luck, I had no other MSX were I could easily swap VDP's and see if it was working or not.

I searched this forum and also on the internet, to find anything that could point me in the right direction.
I found bits and pieces but nothing like: 'here is a way how to test your VDP'.
I did a broader search on all kind of VDP's (TMS9118 TMS9128 TMS9129 TMS9918A TMS9928A TMS9929A) and finally found a short YouTube video showing a short screen test with a TMS9929 or TMS9918A:
The video is not very clear on what was tested, also there were no instructions or schematics. But the VDP was on a breadboard and he used an Arduino Uno to generate some signals, and that..., interested me much !
And fortunately, he was also so kind to give me the new link to the sketch he used for the test:

With this, I started to generate a breadboard schematic with fritzing. By reviewing the video many times I was able to recreate the connections between the VDP and the Arduino.
Also reviewing the sketch gave me clues on the pins used. But my TMS9129NL is similar but not the same, it has no composite out, but video is split over 3 signals (Y, R-Y and B-Y), which are video component signals. I had to include this in my schematics as well and finally I ended up with a working breadboard schematic.

Then I connected the video signals (Y, R-Y and B-Y) to a GBS-8200 VGA converter board with 470 Ohm resistors between signal and ground.
On the GBS-8200 converter board, I use the Y, Pb, Pr inputs.
I also use a separate power supply to power the VDP and Converter Board (both to 5V), because the Arduino will not provide enough current.

Also the sketch needed some change and explications. But I'm not (yet) an arduino sketch programmer, so I try to understand what it does. I believe it uses Graphics I mode and writes to register 7 to display the different Backdrop Colours. Also it writes data to the Pattern Plane? I combined them both and was able to display some colour outputs on my VGA screen !

Here is what I see on my screen:

A short note about the crystal on the breadboard, I ordered some 10.738635 MHz crystals from mouser to simulate the same conditions as on the motherboard. But testing with a 10.245 MHz crystal gave me the same results. So you don't really need the exact crystal to be able to perform this test.

So to conclude, I believe:

- My VDP seems to work ok
- My VDP generates the same heat when on the breadboard, so it would be normal

Are people using a heat sink on their vdp and why ?

PLEASE contribute if you believe this would be a good tester and can be made better ;-)

Login sesión o register para postear comentarios

Por calderone

Supporter (10)

Imagen del calderone

05-06-2020, 22:27

Por calderone

Supporter (10)

Imagen del calderone

05-06-2020, 22:22

Por Manuel

Ascended (16703)

Imagen del Manuel

05-06-2020, 23:50

There are many MSX machines with a heat sink on the VDP. Quite annoying as we then can't easily see which VDP type it is...

Por mohai

Paladin (880)

Imagen del mohai

06-06-2020, 10:36

This is very interesting.
I think it is a unexpensive and easy way to test VDP chips.
It would be interesting to add some VRAM too, if that does not make it too complex.

Por calderone

Supporter (10)

Imagen del calderone

06-06-2020, 20:46

My idea was to be able to test this VDP chip with a minimal of components. And to be true, I was amazed it was possible without adding VRAM and just using the internal registers. Sure, you could add some VRAM too, it would give more possibilities.
But I'm also wondering, if other tests, and using other graphics modes, would be possible when only using this minimal setup.

But feel free to experiment and share your experiences.

Por Fabf

Master (229)

Imagen del Fabf

06-06-2020, 21:02

Have you test /int signal from VDP ?

Por calderone

Supporter (10)

Imagen del calderone

07-06-2020, 12:47

No, /INT is not connected.
Any suggestions ?

Por calderone

Supporter (10)

Imagen del calderone

09-06-2020, 10:03

On the VG-8010, /INT coming from VDP is always high, so that is a problem. I understand it should be a 50Hz signal (PAL).
There could be multiple reasons for /INT staying high, so further investigation will be needed.

But, If I want to test the /INT (out) with the VDP on the breadboard, would it be possible, by reading the status register frequently? Just to see some pulses, so I could conclude the /INT on the VDP is working?

Por lintweaker

Champion (267)

Imagen del lintweaker

09-06-2020, 11:16

I am not sure if you need to enable interrupt generation, maybe check the datasheet.