VS23S010 testmode pin [and Arduino video out]

Designing hardware and software that uses the VS23S0X0 family of ICs as a 8-bit or SPI SRAM memory or as a Video Controller for generating Composite Video (TV-Out) or driving other kinds of displays.
Post Reply
wfriedrich
User
Posts: 5
Joined: Tue 2017-08-08 13:46

VS23S010 testmode pin [and Arduino video out]

Post by wfriedrich » Tue 2017-08-08 14:11

Hello VLSI team,
I am working on a board with the VS23S010D-L.
Is there any description for the testmode pin available? Or is it intended only for internal factory testing?

Thanks in advance.
- Wolfgang.

User avatar
Panu
VLSI Staff
Posts: 2415
Joined: Tue 2010-06-22 13:43

Re: VS23S010 testmode pin

Post by Panu » Wed 2017-08-09 15:56

Hi!

The testmode pin is indeed only for factory testing, to verify the internal logic with a chip tester.

Are you using the video out? Please take a look at some of the boards we have designed that has the VS23S010. There's a display board for the VS1005 and it's used in the VS1010 Developer Board (that is probably the best example). We've also made a breakout board that is compatible with some Arduino. I'll try to see tomorrow which schematics are published and where.

-Panu
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo, VLSI Solution Oy

wfriedrich
User
Posts: 5
Joined: Tue 2017-08-08 13:46

Re: VS23S010 testmode pin

Post by wfriedrich » Thu 2017-08-10 2:25

Hello Panu,

Thanks for the info. I was hoping to get a test image out of the video port without programming.
I already have a board, it is an Arduino shield and it is responding on SPI already. Yes I am planning to use video out. It should be "only" ;) a matter of configuring it correctly, which seems very straight forward from the examples here in the forum. Also the schematics I have seen gave me some ideas for improvement for the next revision.
If you are interested, I am documenting my progress over at Hackaday.
https://hackaday.io/project/21097-ardui ... lay-shield
Cheers,
- Wolfgang.

User avatar
Panu
VLSI Staff
Posts: 2415
Joined: Tue 2010-06-22 13:43

Re: VS23S010 testmode pin

Post by Panu » Thu 2017-08-10 9:54

Hi!

A great project, and I'm happy to say that I'm able to help you with getting the chip up and running!

I've had an engineer working on porting the test code to Arduino using our breakout board, he just got it to work. I will post details soon! It should be a good first step for you to get your board running and your software project started!
VS23S010 Arduino Video Out.jpg
VS23S010 Arduino Video Out.jpg (205.05 KiB) Viewed 274 times
That test program is a good starting point for development. First of all, the VS23S010 is so flexible that it can be configured (and misconfigured) to generate a gazillion of different waveforms. The downside is that you really need to have quite a thorough understanding of video systems to configure it properly, so it's really good to have a working configuration to start with.

One of the flexible properties of VS23S010 is the microcode it uses to pick and arrange bits from the memory array to the YUV pixel color registers. The microcode used in this example (B22:A22:Y44:N10, 0xC09C0A4A in hex, in conjunction with color burst vector value of 0x0d) generates what we call a default 8-bit palette, which is carefully constructed so that the constellation both has nice colors, including reds ans blues, and is representable in both PAL and NTSC colorsystems, e.g. the same bitmap is shown similarly in PAL and NTSC systems (the PAL system just needs to be configured differently but the bitmap can be the same).

The test program also avoids some peculiarites of the video generator logic, such as that each picture line should end (and thus start) at an odd (not even) address in the memory.

-Panu
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo, VLSI Solution Oy

Kalle
VLSI Staff
Posts: 15
Joined: Tue 2017-06-06 8:59

Re: VS23S010 testmode pin

Post by Kalle » Thu 2017-08-10 14:24

Hello,

the program Panu was referencing is available as an Arduino IDE sketch in the download link below. It communicates with the VS23 with SPI, and generates the pictured 320x200 NTSC test image.

Most of the program has comments, but is a bit be lacking here and there. I'll post some more documentation later.

If the program runs correctly, you should get the following output to the Arduino serial monitor:
Reading manufacturer ID, result: 0x2B00
ID ok, 1 VS23 IC(s) in system
Linelen: 1810 PLL clks
Picture line area is 320 x 200
Pixel 0,0 is at byte address 3863
Pixel 0,1 is at byte address 4183
Current line: 0x806E
If the manufacturer ID returns anything else, you'll get an error message.
Attachments
VS23S010_NTSC.pdf
Schematic of the breakout board
(24.01 KiB) Downloaded 15 times
ntsc_uno.zip
Arduino Uno compatible test program for using VS23S010
(8.54 KiB) Downloaded 14 times
Last edited by Kalle on Fri 2017-08-11 7:22, edited 1 time in total.

wfriedrich
User
Posts: 5
Joined: Tue 2017-08-08 13:46

Re: VS23S010 testmode pin [and Arduino video out]

Post by wfriedrich » Fri 2017-08-11 4:08

Hello Panu and Kalle,

Thanks a lot for the great support.
The code is running on my setup, I only had to set some extra GPIOs which are connected on my board. I got the expected output on the serial monitor:
Reading manufacturer ID, result: 0x2B00
ID ok, 1 VS23 IC(s) in system
Linelen: 1810 PLL clks
Picture line area is 320 x 200
Pixel 0,0 is at byte address 3863
Pixel 0,1 is at byte address 4183
Current line: 0x8012
Connecting to my TV I got this image, see attachment. It looks like grey scale boxes without the correct sync information. I am guessing that my TV only understands NTSC resolutions and cannot properly display 320x200 MCGA. Now it is a matter of the correct configuration.

Some questions:
You are connecting the VS23 on the breakout board straight to the Arduino, which I assume is running on 5V. So the SPI signals nSS, CLK, MOSI are 5V level driving into the VS23 running on 3.3V. Are the input pins on the VS23 5V tolerant?
Could you send me the correct configuration setting for NTSC YUV422 or NTSC VCD?

Thanks again. Cheers,
- Wolfgang.
Attachments
1st-image.jpg
1st-image.jpg (113.72 KiB) Viewed 240 times

User avatar
Panu
VLSI Staff
Posts: 2415
Joined: Tue 2010-06-22 13:43

Re: VS23S010 testmode pin [and Arduino video out]

Post by Panu » Fri 2017-08-11 5:28

Great that you're making progress! The software is for NTSC, so there are a couple of possibilities of what is going wrong. Hmm.., is your crystal the NTSC crystal (3.57xxMHz)?

What kind of connection do you have to the TV? Note that the VS23S010 outputs current, not voltage, so there must be a DC path from the VS23S010 pin to the termination resistor inside the TV - no capacitors. (second alternative is that you make your own buffering stage for the output, but the VS23S010 must be configured differently for that). Outputting current means that the VS23S010 outputs something like 13 (15?) milliamperes for white level and zero milliamperes for sync level in the default (high current) configuration.

Is the schematic somewhere to be seen?

[Edit]
Found the schematic at https://hackaday.io/project/21097/galle ... 04b8390e44. You need to remove R2, the 75 ohm from output to ground and connect R1 directly to VideoOut0 pin.
With R2 present, the TV is only getting one third of the signal strength it needs.

VS23S010 pins are not 5V tolerant, we're taking a calculated risk connecting it to a 5V Arduino like that. It might break but we have a few thousand replacement parts at hand ;)

-Panu
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo, VLSI Solution Oy

wfriedrich
User
Posts: 5
Joined: Tue 2017-08-08 13:46

Re: VS23S010 testmode pin [and Arduino video out]

Post by wfriedrich » Sat 2017-08-12 3:54

Hello Panu,
You are brilliant. Your 1st suggestion was correct. Somehow I mixed up the 2 boards that I had build, one with the NTSC crystal and one for PAL. Changing that and also changing the termination resistors for the video output made everything work and showing the default 8-bit palette.
I am super-exited. Thanks for your help. Cheers.
- Wolfgang.
Attachments
2nd-image.jpg
2nd-image.jpg (107.75 KiB) Viewed 219 times

User avatar
Panu
VLSI Staff
Posts: 2415
Joined: Tue 2010-06-22 13:43

Re: VS23S010 testmode pin [and Arduino video out]

Post by Panu » Sat 2017-08-12 13:50

Hi!

Thanks for the thumbs up and GREAT that it's working so well!

From the picture it looks like the output driver might get a little saturated towards the bright colors. Changing R1 from 75 ohm to 22 ohm might help!

-Panu

[Edit]
Hmm, you could also set BLANK_LEVEL and BLACK_LEVEL a little higher, so the TV will calibrate to display a little darker picture; now even the darkest colors are quite bright. Now I think BLACK_LEVEL and BLANK_LEVEL are 0x66; try to set them for example to 0x70 or even 0x80 and see how it looks :)

-Panu
Info: Line In and Line Out, VS1000 User interface, Overlay howto, Latest VSIDE, MCU Howto, Youtube
Panu-Kristian Poiksalo, VLSI Solution Oy

wfriedrich
User
Posts: 5
Joined: Tue 2017-08-08 13:46

Re: VS23S010 testmode pin [and Arduino video out]

Post by wfriedrich » Tue 2017-08-15 2:47

Thanks again, Panu.
I will play play with the resistor values and have a look at the video signal on the scope. Now I am going to dive into my software and might come back with more questions about configuration if necessary.
- Wolfgang.

Post Reply

Who is online

Users browsing this forum: No registered users