Page 1 of 1

A few VS23S040 questions

Posted: Wed 2019-03-20 19:16
by jockm
Since there doesn't seem to be a dedicated VS23S040 forum, I am going to ask this here

Question 1: Is there a reference schematic for the VS23S040?
I have looked everywhere I can think and cannot find one. I mean it looks straightforward, except that there are no resistor values given

Question 2: Can I use VGA in non Quad-SPI mode?
Figure 2 of the datasheet only shows VGA configurations when used in Quad-SPI mode. I presume it works in other SPI modes as well as parallel?

Question 3: Is the Crystal value different for VGA output?
The datasheet only lists the PAL and NTSC values as option, and no mention is made of VGA

Re: A few VS23S040 questions

Posted: Thu 2019-03-21 15:00
by Panu

1) I'm not 100% sure. We have made a few VS23S040 test boards, some with VGA outputs, but I'm not 100% happy with any of those so far. In our latest board we used the 4th video output together with a couple of comparators to make the horizontal and vertical syncs, but it was a nightmare to get it working correctly, and furthermore not all sync polarities are possible this way. So in my head, I've resumed to making the HSYNC and VSYNC using the PIO6 and PIO7 digital pins. This allows to generate any kind of sync signals, but the 8 bit bus cannot be used.

2) Yes, you can use the VGA in single, dual or quad SPI mode. It's just that the amount of data transferred to draw a complete frame is so large that I have felt important to connect all quad signals so that a decent frame rate could be possible. The parallel mode would work otherwise, but when the PIO6 and PIO7 pins are used for making syncs, it's not practical.

A very fast text mode would be possible if the screen font characters would be stored somewhere below the visible memory area and the blitter used to copy characters from the font to the visible screen bitmap memory locations.

3) This is another interesting question. From the standpoint of datasheet, we qualify the ICs for generating PAL and NTSC signals. That means that we need to do the production test for the chips only for 3.58 and 4.43 MHz frequencies. VGA signal can be generated with any crystal frequency as there is no color subcarrier. The first VGA test I did myself used a 10 MHz crystal if I remember correctly. But then we found that the PLL doesn't lock reliably near something like 6 MHz frequency. And thus in the datasheet it says the maximum frequency that it does. So you're free to experiment with whatever crystal you like. And if you deem necessary to use the chip out of datasheet bounds, you can either accept that we don't guarantee operation at that point, but if your sales projection is large (above 10K units per year, perhaps) then we could consider to write a new production test vector to qualify the operation at that point. In any case, please do communicate with us, I have a pretty good feeling of what the chip really can and cannot do.


Re: A few VS23S040 questions

Posted: Thu 2019-03-21 17:47
by jockm
First off thank you for those detailed answers

I think I made a rash assumption that when I saw you were selling the VS23S040, that it had made it out of the "preliminary" stage. I am guessing I was wrong about that.

I am looking for a framebuffer solution for a project that can output VGA (or better). I have been impressed by the VS23S010 and was hoping that the VS23S040 would be the answer (despite being BGA ;) )

So perhaps not on this project, but hopefully the next

Re: A few VS23S040 questions

Posted: Thu 2019-03-21 20:36
by Panu

I don't quite understand.. there's nothing preliminary about the VS23S040. It is in full production. It is fully qualified and tested. It is ready. We sell large quantities of it each month. It has a test program and a final datasheet. There's nothing on the "to do" list for the VS23S040 chip as such. It is ready and the design will not be changed. It's just that the main focus in our applications for the VS23S040 is to use it as a memory buffer, although we have helped many customers to do video applications with the IC.

We *do* have an example board for the VS23S040. It is here: ... sion1.html and it even has a VGA output. The schematics is here: ... 30-sch.pdf. It's just that I'd rather like to generate the syncs differently. This board cannot use the PIO sync out method as it needs the 8 bit data bus for data transfer. We should do one more VGA out design based on the chip to get it right.

But what I did say is that even though you can do a VGA screen within the specification in the datasheet, if you still find that you would like to "stretch" the specification, for example to reach some resolution which would require a higher crystal frequency, we can, in the meaning: "it is possible for us to", evaluate a new possible functional point based on your requirement and even qualify future ICs based on your input and requirement. That would mean changing the production test program so that it will test the operation of each IC at the point which you need. Furthermore I said that I would be happy to help you to reach such operation point, if it becomes necessary. As I said, it's totally possible to draw VGA picture and stay within the datasheet limits. But if you want to stretch those limits, please be in contact with us so we can help. And I can help personally.


PS. I hope that I can help you reach your VGA goal using the VS23S040. I personally would like very much to see one more working VGA application using the chip! Just tell me what you need (what resolution, bit depth, ...) and we can calculate together what that would require.

Re: A few VS23S040 questions

Posted: Fri 2019-03-22 1:42
by wfriedrich
Hello Panu and jockm,
Very interesting discussion.
Side question to #3:
Is the PLL in the VS23S010 and VS23S040 identical? If I have a stable VGA demo (single colour or grey scale) on my VS23S010 Arduino shield, would it transfer 1-to-1 to the S040?
- Wolfgang.

Re: A few VS23S040 questions

Posted: Fri 2019-03-22 8:50
by Hannu
The PLLs are identical.

If you change the VS23S010 to VS23S040 you'll get exactly same output from video0. video1,2,3 will also be outputting some signal but the memory contents controlling the signal would be uninitialized as the memory is four times bigger.

To get the same output signal from all four DACs write memory 0x00xxxx (VS23S010) also to 0x01xxxx, 0x02xxxx and 0x03xxxx addresses. where xxxx goes from 0000 to ffff

Re: A few VS23S040 questions

Posted: Fri 2019-03-22 9:25
by Panu
Right, one more addition, there is a command "Write Multi-IC Control Register" in the VS23S010 die (the VS23S040, at least at the moment is a multi-die package containing four separate VS23S010 dies) that allows you to separately select which VS23S010s inside the VS23S040 you are controlling. This way you can select which chips you configure as video outputs.

Also, four separate VS23S010's connected together same way as they are inside the VS23S040 package behave similarly as the VS23S040.


Re: A few VS23S040 questions

Posted: Mon 2019-03-25 21:52
by jockm
Panu wrote:
Thu 2019-03-21 20:36

I don't quite understand.. there's nothing preliminary about the VS23S040. It is in full production. It is fully qualified and tested. It is ready.
So that is awesome! But the datasheet still says it is preliminary, as I said I looked everywhere and couldn't find a schematic, and your initial responses didn't feel like the ones you get from a product in production.

That being said I get what you are saying now.

Right now I am working on a small personal project, but I can't imagine shipping very many of them. However I have had this need in the past and will again. If any of those are something I can share, I will do so gladly.

I just placed an order for a couple, I will see what I can do with them :)

Re: A few VS23S040 questions

Posted: Tue 2019-03-26 9:07
by Panu
Ok, that's good. Hmm, you mentioned resistor values in your earlier mail. The thing to twist one's head around is that the DAC output of the VS23S0x0 is current mode output. It outputs a constant amount of milliamperes at a constant value of the DAC, not a constant voltage. The current is converted to a voltage in the 75 ohm line termination resistors inside the TV or the VGA monitor. Consequently, if a video output of VS23S0x0 is floating, it goes high to 3.something volts as it tries to drive up to 14mA to an infinite load.

In that board, which I sent you the link, we have an external video buffer op-amp for the VGA output. It gives us some flexibility and added protection, but I think it should work without it. Basically you can use the impedances of our TV outputs in any board we have that has VS23S0x0, for example the VS1010 Developer Board.


Re: A few VS23S040 questions

Posted: Tue 2019-03-26 18:31
by jockm
Right I see what you are saying.

One thing that about the schematic you posted is that it contains both a VS23S040 and a VS23S010 (for that elusive dual headed display experience ;) )

It would be nice to have a "clean" schematic with just the VS23S040, but that is just a nit.

If you find a solution to the PIO and VGA output configuration that you are satisfied with, I would love to see it