UBB-VGA - VGA-like output via UBB ================================= Sources ------- Timing and the idea for the voltage divider is from: http://faculty.lasierra.edu/~ehwang/public/mypublications/VGA Monitor Controller.pdf More timing parameters: http://tinyvga.com/vga-timing/640x480@60Hz For the signal assignment, see ubb-vga.sch Also available as a PDF: http://projects.qi-hardware.com/schhist/ubb-vga/pdf_ubb-vga.pdf http://en.wikipedia.org/wiki/VGA_connector Compatibility ------------- Tested with the timing of commit 36861539431445b80e64f03218f352752338de52 Timings will change in the future and may get better or worse. The purpose of this compatibility chart is to indicate what kind of results one can expect with different types of monitors. Display Monitor size Age (estimated) ----------------------- --------------- --------------- Xenon XEN-1510T 15", 1024x768 ~9 years Samsung LN32R71B (TV) 32", 1360x768 ~5 years Samsung 206NW 20", 1680x1050 ~4 years LG W2243C 22", 1920x1080 ~1 year LG W2243L 22", 1920x1080 a few months Mode Monitor Image Hor. noise Cleanliness Stable Pixel FIFO --------------- --------------- -------------------------------------------- 640x480 XEN-1510T y y 1 20, 25% very distorted LN32R71B y y 1 20, 25% very distorted 206NW y y 2-3 20, 20% very distorted W2243C y y 2-3 20, 25% very distorted W2243L y y 2-3 20, 20% very distorted 640x480/58 XEN-1510T y y 1 large very distorted LN32R71B y n 1 large very distorted 206NW y y 2-3 large distorted W2243C y y 2-4 large very distorted W2243L y y 2-3 large very distorted 640x480/61 XEN-1510T y y 1 -/10, 20% very good/distorted (5) 206NW y y 2-4 - jittery, sometim. waves 640x480/70 XEN-1510T y (2) 1 10, 25% distorted, flickery LN32R71B n - "not supported mode" 206NW y (2) 3-8 - very jittery W2243C n - "out of range" W2243L n - "out of range" 800x600/54 XEN-1510T n - LN32R71B n - "not supported mode" 206NW y n (only flashes) W2243C n - (screen stays dark) W2243L n - (screen stays dark) 800x600/56 XEN-1510T y (3) 1-2 - good LN32R71B n - "not supported mode" 206NW y (1) 1-3 - jittery W2243C y y 3-4 20, 50% unusable W2243L y y 3-4 - very jittery with waves 800x600/72 XEN-1510T y y 1-3 - good, slight flicker LN32R71B y (4) 1 - image very good (4) 206NW y y 2-6 - jittery with bounces W2243C n - (DMA lockup) W2243L (not tried) 1024x768 XEN-1510T y y 1-2 good LN32R71B n - "not supported mode" 206NW (not tried) W2243C n - "out of range" W2243L n - "out of range" 1024x768/53 XEN-1510T n - (screen stays dark) LN32R71B n - "not supported mode" 206NW n - (screen stays dark) W2243C n - (screen stays dark) W2243L n - (screen stays dark) 1024x768/50 XEN-1510T y y 1-2 - good LN32R71B n - "not supported mode" 206NW y y 2-4 - jittery W2243C y y 3-5 - moves a lot W2243L y y 3-5 - moves a lot Results: Image does it show an image, yes/no ? Stable is the image shown all the time or does the monitor "catch" it only sometimes ? Hor. noise horizontal jitter/vibration; distance in pixels Pixel small pixel deviation, looking like analog noise FIFO shift of a line or part of it by a large number of pixels For qualitative assessment, "jittery" means that the image is visible unstable but doesn't look too bad from a distance. "Bounces"/"waves" are deviations that appear in groups. "distorted" means that artefacts are visible. "good" means that the image has only small pixel jitter. Merely "jittery", "bounces", or "distorted" mean that the test image and the parameters it shows can be recognized. More severe problems mean that the test image looks clearly troubled. "Unusable" means that the screen content cannot be recognized. (1) Auto-sync places the image way too high. Can be corrected manually. (2) Image it stable but monitor shows a complaint (occasionally) (3) Auto-sync places the image too far to the left. Can be corrected manually. (4) Places the image too far to the left. Cannot be sufficiently corrected. (5) about 70% of all session have a clean stable image. The remaining 30% suffer significant FIFO noise. To do ----- - use timer half interrupt and WAIT to synchronize (less bus traffic and hopefully better granularity) - recover from DMA lockup - use color cube map (5x5x5 bits) - read/write raw frame buffer - consider prefetching first word of each line, to make DRAM controller open the row and reduce DMA startup latency - add option to not disable the LCD (works with some modes if reducing the LCD controller's burst size) - find out why 640x480 has so much FIFO noise - fix modes 800x600/54 and 800x600/72, broken by the timer change