Rev A 11/2009 FEATURES Straightforward host interface consisting of 8 data and 5 addressable control lines. Dedicated video memory address and data lines minimize the usage of other system buses. Ideal for embedded microcontroller and microprocessor systems. Screen resolution of 640 by 480. Independent red, green, and blue color output lines allow for 256 different colors. Auto-incrementing X & Y position registers allow for quick screen reads and writes. Single write and read operations. Independent color write and read registers. Operates from a single clock source. Fast host pixel write and read times. Sync and blanking signals automatically done on-board. All video memory read and writes automatically synchronized on- board. Requires only a single 512K x 8 10nS SRAM memory for operation. Single 3.3V Supply with 5V tolerant inputs. Reno, NV 89521 ● TEL: (775) 852-7430 ● FAX: (775) 852-7430 ● WEB: www.multilabs.net ezVGA640 VIDEO CONTROLLER ezVGA640 VIDEO CONTROLLER GENERAL DESCRIPTION The ezVGA640 Video Controller is designed for color video graphics applications that require display on VGA compatible monitors and displays. It provides all the circuitry needed to control the video memory and generate screen resolutions of 640 by 480 with 256 colors (8-bit pixel depth) while offering a straightforward host interface making it ideal for embedded microcontroller and microprocessor designs where cost effective video generation is required. ezVGA640 PIN CONFIGURATION 76 51 26 1 ● ezVGA640 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 R / W NC CLOCK D7 VCC D6 NC D5 D4 D3 D2 D1 D0 VA0 VA0 VA1 VA1 VA2 NC VA2 GND VA3 VA3 NC VA4 VCC VA4 VD0 VA17 VD2 GND VD3 VWE NC VA18 VA18 VA17 VCC VD1 VA16 VA16 VA15 NC GND NC NC NC NC VA15 VD7 VCC VD6 VD5 VD4 VA14 VA14 VCC VA13 VA13 VA12 VA12 GND VA11 VA11 VA10 VA10 VA5 VA5 GND VA6 VA6 VA7 NC VA7 GND VA8 VA8 VA9 VA9 NC B0 B1 NC GND G0 G1 G2 VCC R0 R1 R2 VS HS A0 A1 A2 CE VCC CE GND
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Rev A 11/2009
FEATURES Straightforward host interface consisting of 8 data and 5 addressable control lines.
Dedicated video memory address and data lines minimize the usage of other system buses.
Ideal for embedded microcontroller and microprocessor systems.
Screen resolution of 640 by 480.
Independent red, green, and blue color output lines allow for 256 different colors.
Auto-incrementing X & Y position registers allow for quick screen reads and writes.
Single write and read operations.
Independent color write and read registers.
Operates from a single clock source.
Fast host pixel write and read times.
Sync and blanking signals automatically done on-board.
All video memory read and writes automatically synchronized on-board.
Requires only a single 512K x 8 10nS SRAM memory for operation.
GENERAL DESCRIPTION The ezVGA640 Video Controller is designed for color video graphics applications that require display on VGA compatible monitors and displays. It provides all the circuitry needed to control the video memory and generate screen resolutions of 640 by 480 with 256 colors (8-bit pixel depth) while offering a straightforward host interface making it ideal for embedded microcontroller and microprocessor designs where cost effective video generation is required.
The ezVGA640 Video Controller is a cost effective and straightforward way to implement VGA color video in any application. It generates all necessary video, control, and synchronization signals and also controls the storage and retrieval of display data in the external video memory. The interface between the ezVGA640 and the VGA display device requires a minimum of components making it an effective solution for video generation. The interface between the ezVGA640 and the host is done via 8 data and 5 addressable control lines. Having addressable control lines also allows the ezVGA640 to share a common system data bus with other devices if required. The host creates texts and graphics by writing individual pixels to the screen. The screen pixel color data is stored in an external video memory which serves as the video frame buffer. This memory is automatically controlled by the ezVGA640 and is invisible to the host. This leaves the controller/processor free to run the host application while the ezVGA640 controls the aspects of video generation. Screen refreshing, sync signals, blanking signals, and video memory management are all handled automatically by the ezVGA640. Besides writing pixels the host can also read any pixel on the screen and also control the X and Y position registers that determine the pixel position. During reading or writing of a pixel there is the option of having the X and Y position registers automatically increment afterwards. This allows the host to perform fast writes and reads of the entire screen.
OPERATIONAL DESCRIPTION
Figure 1 shows a block diagram of the ezVGA640 Video Controller.
Figure 1
When first powered up all registers are cleared to zero. During continuous operation the Horizontal Dot Counter and Vertical Line Counter keep track of which pixel to load and display on the screen. The addresses generated by these two counters are sent through the Output Buffer to the external video
memory. The pixel color data then appears on the VD data bus which is latched into the Red, Green, and Blue output color registers. The Horizontal Dot Counter and Vertical Line Counter registers are also responsible for generation of the horizontal and vertical sync and blanking signals to keep all of the frames synchronized and the red, green, and blue color registers cleared during certain times. All of this is clocked via the Clock input. The data that appears on the R2, R1, R0, G2, G1, G0, B1, and B0 pins via the Red, Green, Blue output color registers is the pixel color. Red and green are each 3-bits in length and blue is 2-bits. This is known as a 'True Color' configuration. Since the human eye is more sensitive to red and green they provide more color information. A simple resistive ladder digital-to-analog converter can be used to generate the analog voltage signal needed for the VGA display device. Refer to the reference design later in this document for more information on this circuit. The host interface is via the data and addressable control lines on the left-hand side of the block diagram. There are two chip enable (CE) pins, one active low and one active high. The active low pin is designated with a line over it. These pins must be at the correct logic level before the ezVGA640 can be controlled. If not properly selected no data can be written to or read from the ezVGA640 and the data lines will remain in a high-impedance input state. The enable lines can be used however needed. If the ezVGA640 is to be constantly selected then they can be tied off to the proper logic level. If part of a system that uses a common data bus they can be used to ensure that the ezVGA640 is only selected when needed. If only one enable line is needed then the other can be tied off to the proper logic level while the other is used to control when the ezVGA640 is enabled. The 3 address lines (A2 – A0) are used to select what operation to perform. The R/W (Read/Write) pin controls the bi-directional data flow of the ezVGA640. With this pin logic low the data pins are in high-impedance input mode. If the pin is logic high then the data pins will be driven as outputs when a read operation is selected. If any operation other than a pixel read is selected than the data pins will remain in a high-impedance state even with the R/W pin logic high. The host interface is asynchronous to the internal operation of the ezVGA640. Data can be passed to and from the ezVGA640 at any time. The X and Y Position Registers are where the host stores the pixel position to be written to or read from. These registers can be automatically increment each time a pixel read or write command is completed such that the X position register is incremented and if the end of the line is reached the X position register is reset back to 0 and the Y position register is incremented. Should the Y position register be on the last line when it is incremented it will also automatically reset to 0. This is called progressive incrementing. This allows for fast whole screen reads and writes. When a pixel read or write is executed the address in the X Position and Y Position Registers is passed through the Output Buffers to the external video memory. If the instruction is a write the VWE (Video Write Enable) pin will go low to place the external video memory in write mode. The data in the Write Color Register will appear on the VD pins to be latched into the external video memory. For a read instruction the data from the external video memory is latched into the Read Color Register. The ezVGA640 is clocked from a single clock source. There is no internal oscillator drive circuitry so a LVTTL level clock source must be provided. The main clock is 25.175MHz and it is fed into the Clock pin.
DISPLAY CONTROL OPERATIONS The ezVGA640 can perform 8 different operations. The operation to be performed is selected by the 3 address lines (A2 – A0) as shown in the following table.
1 0 0 Write pixel without auto-incrementing X & Y position registers
1 0 1 Read pixel without auto-incrementing X & Y position registers
1 1 0 Write pixel and auto-increment X & Y position registers
1 1 1 Read pixel and auto-increment X & Y position registers
For each operation it is assumed the ezVGA640 is properly selected. Refer to the timing diagrams for proper data and address timing when writing to and reading data from the ezVGA640. Load X Position Register Low Byte Operation: With the ezVGA640 addressed for this operation the data on the data bus (D7 – D0) will be written to bits 7 through 0 respectively of the 10-bit X position register when the R/W pin is brought logic low and then brought back to logic high. Bits 9 and 8 are not changed. The allowed values of the X position register are 0 to 639 for a total of 640 horizontal pixels.
Figure 2
Load X Position Register High Byte Operation: With the ezVGA640 addressed for this operation the data on the data bus (D1 – D0) will be written to bits 9 through 8 respectively of the 10-bit X position register when the R/W pin is brought logic low and then brought back to logic high. Bits 7 through 0 are not changed. The allowed values of the X position register are 0 to 639 for a total of 640 horizontal pixels.
Figure 3
Load Y Position Register Low Byte Operation: With the ezVGA640 addressed for this operation the data on the data bus (D7 – D0) will be written to bits 7 through 0 respectively of the 9-bit Y position register when the R/W pin is brought logic low and then brought back to logic high. Bit 8 is not changed. The allowed values of the Y position register are 0 to 479 for a total of 480 vertical lines.
Load Y Position Register High Byte Operation: With the ezVGA640 addressed for this operation the data on the data bus (D0) will be written to bit 8 of the 9-bit Y position register when the R/W pin is brought logic low and then brought back to logic high. Bits 7 through 0 are not changed. The allowed values of the Y position register are 0 to 479 for a total of 480 vertical lines.
Figure 5
Write Pixel Without Auto-Incrementing X & Y Position Registers Operation: With the ezVGA640 addressed for this operation the data (pixel color) on the data bus (D7 – D0) will be written to the video memory. The position of the pixel is taken from the X and Y position registers. To execute the write the R/W pin is brought logic low and then brought back to logic high.
Figure 6
Read Pixel Without Auto-Incrementing X & Y Position Registers Operation: With the ezVGA640 addressed for this operation the data bus (D7 – D0) will output data (pixel color) from the video memory. The position of the pixel is taken from the X and Y position registers. This operation is automatically executed when properly addressed and the R/W line is logic high.
Figure 7 Write Pixel and Auto-Increment X & Y Position Registers Operation: With the ezVGA640 addressed for this operation the data (pixel color) on the data bus (D7 – D0) will be written to the video memory. The position of the pixel is taken from the X and Y position registers. To execute the write the R/W pin is brought logic low and then brought back to logic high. After this the position registers are automatically incremented as previously explained.
Figure 8
Read Pixel and Auto-Increment X & Y Position Registers Operation: With the ezVGA640 addressed for this operation the data bus (D7 – D0) will output data (pixel color) from the video memory. The position of the pixel is taken from the X and Y position registers. This operation is automatically executed when properly addressed and the R/W line is logic high. To signal the end of the operation the address must be changed or the ezVGA640 de-selected. After this the position registers are automatically incremented as previously explained.
Figure 9
POWER SUPPLY REQUIREMENTS All VCC power inputs should be provided with individual bypass capacitors placed as closed to the power pins as possible. These capacitors should have a low internal inductance, low equivalent series resistance, and good frequency characteristics. All of the GND pins should be connected to a low-impedance ground plane for best performance. The ezVGA640 can create high-speed switching signal noise. A good low-impedance ground source is necessary to minimize noise and ground bounce. All ground connections in the final design should be connected to the same low-impedance ground plane for best operation.
CLOCK 3 25.175MHz LVTTL Level clock input. Minimum ±100ppm and 45%/55% duty cycle or better.
CE 99 Chip enable active high input.
CE 97 Chip enable active low input.
A0 94 Address line 0.
A1 95 Address line 1.
A2 96 Address line 2.
R/W 1 Read/write input. Low keeps the data line in high-impedance state for writes to the ezVGA640. High turns on the output drivers while enabled and addressed for a pixel read.
D0 4 Data bus bit 0.
D1 6 Data bus bit 1.
D2 8 Data bus bit 2.
D3 9 Data bus bit 3.
D4 10 Data bus bit 4.
D5 11 Data bus bit 5.
D6 12 Data bus bit 6.
D7 13 Data bus bit 7.
HS 93 Negative horizontal sync signal. Goes to pin 13 of a standard DB15HD VGA connector.
VS 92 Negative vertical sync signal. Goes to pin 14 of a standard DB15HD VGA connector.
R0 89 Low-bit of red color. Refer to reference schematic for a simple digital-to-analog circuit.
R1 90 Middle-bit of red color. Refer to reference schematic for a simple digital-to-analog circuit.
R2 91 High-bit of red color. Refer to reference schematic for a simple digital-to-analog circuit.
G0 85 Low-bit of green color. Refer to reference schematic for a simple digital-to-analog circuit.
G1 86 Middle-bit of green color. Refer to reference schematic for a simple digital-to-analog circuit.
G2 87 High-bit of green color. Refer to reference schematic for a simple digital-to-analog circuit.
B0 81 Low-bit of blue color. Refer to reference schematic for a simple digital-to-analog circuit.
B1 82 High-bit of blue color. Refer to reference schematic for a simple digital-to-analog circuit.
1 Time till output is active after valid address TOVA 11 nS
2 Time till data is valid after valid address TVDVA 44 nS
3 Address hold time after valid data (see notes) TAHVD -- -- -- --
4 Time till high-z after invalid address THZIA 11 nS
NOTE
1. Hold time is dependant on the amount of time the host needs to sample the data after it is valid. Once sampled the address may be changed or the ezVGA640 deselected.
2. After completion of the read operation a wait time of a minimum of 53nS must be observed before performing another operation.
SAMPLE APPLICATION Figure 14 on the next page shows the schematic for the ezVGA640 demo board. The ezVGA640 (U1) is the center of this design. Starting with its power supply all VCC power inputs should be provided with individual bypass capacitors placed a closed to the pins as possible. These capacitors should have a low internal inductance and good frequency characteristics. All of the GND pins should be connected to a low-impedance ground plane for best performance. The ezVGA640, along with the video memory, creates a lot of high-speed switching signals. A good low-impedance ground source is necessary to minimize noise and ground bounce. All ground connections in the design should be connected to the same low-impedance ground plane for best operation. As is evident from the schematic the majority of the pins of the ezVGA640 are dedicated to the external video memory. Here the video memory is designated U2. The ezVGA640 has been tested with a Cypress CY7C1049DV33-10ZSXI 10nS 512K x 8 Asynchronous Fast SRAM. The ezVGA640 is also compatible with this memory's pin-outs. However, any memory that is equivalent or better can be used. For example, ISSI has a memory with the same characteristics and pin-outs. The part type number is IS61WV5128BLL-10TLI. There are two points to be made about the memory. The first is the access time speed. A minimum of 10nS is needed to meet the timing requirements of the ezVGA640. Secondly, the ezVGA640 pin-outs are positioned to interface to this memory easily as is shown with the PCB layout figures. However, this is a center power design that is common in the industry and is used by other manufacturers. Any memory pin layout will work but be sure to observe the length of the traces. All traces connecting the ezVGA640 with the video memory should be as short as possible with minimal impedance and preferably no vias. The video memory should be as close to the ezVGA640 as possible and provided with its own bypass capacitors as shown in the schematic. The schematic shows that the ezVGA640 has two sets of memory address line outputs. These must be tied together for proper operation. The memory is wired so that it is constantly selected. Only the Write Enable line is used by the ezVGA640, all other lines are grounded for constant selection. Power traces should be wide enough or have enough cross-section to handle several hundred milliamps of current. Just like the ground plane, any power traces or power plane should be as low in impedance as possible, the wider the traces the better. The ezVGA640 is clocked from a 25.175MHz clock source, designated as Y1. The ezVGA640 does not have any internal oscillation drive circuitry so a LVTTL level clock oscillator must be provided. This clock oscillator should be crystal based and it is recommended that a minimum of ±100ppm stability should be specified with a duty cycle of 45%/55% or better. The clock does not require an enable line as shown in the schematic since operation is continuous. However, if one is provided it should be tied off to the proper logic level. The clock source should be provided with a dedicated bypass capacitor as well. The ezVGA640 has eight digital color output lines, 3 for red, 3 for green, and 2 for blue. This allows for a total of 256 color combinations. These pins need to be changed to an analog signal before being sent to the display. Each of the three color inputs (red, green, and blue) of a VGA compatible display requires a signal between 0 and 0.7 volts; 0 being no intensity and 0.7 being full intensity. The reference design shows a simple cost-effective resistive ladder digital-to-analog converter that works very well for this application. Of course any digital-to-analog converter with a full-scale output voltage of 0.7 volts will work. Note that the resistors of each ladder are all 1% parts. This will keep all three of the color output levels as close as possible with minimal variation. The output of the amplifier is an emitter-follower and is set to give a 0 to 0.7 volt output when loaded by a 75 ohm load impedance. These analog color voltages are feed into a standard female high-density 15-pin DB style connector common to all VGA compatible devices. This connector is also fed with the horizontal and vertical sync signals from the ezVGA640. Refer to the figures later for proper connection.
Connector J2 on the schematic shows five pins that are used for connecting to the VGA device. They are R (Red), G (Green), B (Blue), HS (Horizontal Sync), and VS (Vertical Sync). Figure 15 below, and the accompanying table, shows how these pins are connected to a female high-density 15-pin DB style connector. All of the grounds (pins 5, 6, 7, 8, and 10) may be tied together.
Figure 15
PIN TYPE NOTE
1 Red Red video (0V – 0.7V into 75Ω).
2 Green Green video (0V – 0.7V into 75Ω).
3 Blue Blue video (0V – 0.7V into 75Ω).
4 NC
5 GND Common.
6 RGND Common for red video.
7 GGND Common for green video.
8 BGND Common for blue video.
9 NC
10 SGND Common for sync signals.
11 NC
12 NC
13 HSYNC Horizontal sync.
14 VSYNC Vertical sync.
15 NC
The following three diagrams show the layout for the demo board PCB. These can be used as a reference to aid in your own circuit design.
NOTE Stresses beyond those listed under Absolute Maximum Ratings may cause permanent damage to the device. These are stress ratings only and functional operation of the device at these or any other conditions beyond those listed under Operating Conditions are not implied. Exposure to Absolute Maximum Ratings conditions for extended periods of time may affect device reliability.
APPENDIX A COLORS This is a color swatch of all the available colors. Colors are approximate. Actual colors will depend on the display devices settings such as color temp, brightness, contrast, and other color adjustment controls. Color variance is also subject to component tolerances of the digital to analog conversion circuitry.
LIMITED WARRANTY Multilabs warrants to the original consumer purchaser of this product that, for a period of 90 days from the date of purchase, this product will be free from defects in material and workmanship and will perform in substantial conformity to the description of the product in this Owner's Manual. This warranty shall not apply to defects or errors caused by misuse or neglect. If the product is found to be defective in material or workmanship or if the product does not perform as warranted above during the warranty period, Multilabs will repair it, replace it, or refund the purchase price. The repair, replacement, or refund that is provided for above shall be the full extent of Multilabs's liability with respect to this product. For repair or replacement during the warranty period, contact Multilabs customer service by email at [email protected] to receive a return authorization number and return instructions. LIMITATIONS THE ABOVE WARRANTY IS IN LIEU OF AND MULTILABS DISCLAIMS ALL OTHER WARRANTIES, WHETHER ORAL OR WRITTEN, EXPRESS OR IMPLIED, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. ANY IMPLIED WARRANTY, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, WHICH MAY NOT BE DISCLAIMED OR SUPPLANTED AS PROVIDED ABOVE SHALL BE LIMITED TO THE 90 DAYS OF THE EXPRESS WARRANTY ABOVE. NO OTHER REPRESENTATION OR CLAIM OF ANY NATURE BY ANY PERSON SHALL BE BINDING UPON MULTILABS OR MODIFY THE TERMS OF THE ABOVE WARRANTY AND DISCLAIMER. IN NO EVENT SHALL MULTILABS BE LIABLE FOR SPECIAL, INCIDENTAL, CONSEQUENTIAL OR OTHER DAMAGES RESULTING FROM THE POSSESSION OR USE OF THIS PRODUCT, INCLUDING WITHOUT LIMITATION DAMAGE TO PROPERTY AND, TO THE EXTENT PERMITTED BY LAW, PERSONAL INJURY, EVEN IF MULTILABS KNEW OR SHOULD HAVE KNOWN OF THE POSSIBILITY OF SUCH DAMAGES. Some states do not allow limitations on how long an implied warranty lasts and/or the exclusion or limitation of damages, in which case the above limitations and/or exclusions may not apply to you. You may also have other legal rights, which may vary from state to state.