VS23S010 Breakout Board with Arduino

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
Kalle
VLSI Staff
Posts: 17
Joined: Tue 2017-06-06 8:59

VS23S010 Breakout Board with Arduino

Post by Kalle » Mon 2017-08-28 9:26

The VS23S010 Breakout Board is equipped with a VS23S010D-L, as well as an MSP430G2432 microcontroller. The board can be used on it's own by programming the MSP430, but this example shows how to control it with an Arduino. The programs in this and the MSP430 post are not compatible, but you can run both devices by using the two programs in the more recent post.

The breakout board can be directly connected to an Arduino that has 3 volt signaling. For a 5 volt Arduino, you should have level shifters (or at least series resistors) between the VS23S010 and the Arduino. VS23S010 connected to a 5 volt Arduino may work for a while, but the chip will eventually fail.

In the picture below you can see the breakout board connected to the "top-left" digital 8-pin header of the Arduino Uno.

The pins should be connected as follows:

Code: Select all

Arduino UNO: 	- 	VS23S010 Breakout Board:
	AREF   	- 	D6
	GND  	-	GND
	13 	- 	SCLK
	12 	- 	D1/MISO
	~11 	- 	D0/MOSI
	~10 	- 	XCS
	~9	-	XRST
	8	-	RST/BWTDIO
Additionally a jumper cable should be used to connect the 5V of the Arduino's ICSP header to the VHIGH of the breakout board.

Naturally the video-out of the breakout board should be connected to a display device, and Arduino should be connected to a PC with its USB-B port.

See the picture below for the correct orientation.

IMG_20170825_131148.jpg
IMG_20170825_131148.jpg (1.35 MiB) Viewed 1319 times

For programming the Arduino Uno the Arduino IDE is needed. Once installed, see the Arduino Software (IDE) page, specifically the "Uploading" chapter, to program your device. In short, open the provided sketch (.ino file), select the correct board and port from the "Tools" menu, and click "Upload". This Arduino sketch is for NTSC video timing, so you will need an NTSC crystal (3.57954 MHz) on the Breakout Board.

You may also open the Serial Monitor (again in the "Tools" menu). When the program is executed, the output should the following:

Code: Select all

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: 0xC6
Note that Arduino Uno resets whenever the Serial Monitor is opened or closed.

Below is a picture of the generated test image. The colours aren't exactly right, but it should give an idea of how the result should look like. If you want the image to be a little darker, increase BLACK_LEVEL and BLANK_LEVEL in ntsc.h from 0x0066 to 0x0080 or even higher.

vs23s010_arduino_palette.jpg
vs23s010_arduino_palette.jpg (2.1 MiB) Viewed 1315 times

The Arduino sketch is available for download below.
Attachments
ntsc_uno.zip
Arduino Uno sketch for the VS23 breakout board
(8.16 KiB) Downloaded 88 times

Post Reply