diff --git a/ubb-vga/README b/ubb-vga/README index 033a0e3..62d46e7 100644 --- a/ubb-vga/README +++ b/ubb-vga/README @@ -10,76 +10,91 @@ http://faculty.lasierra.edu/~ehwang/public/mypublications/VGA Monitor Controller More timing parameters: http://tinyvga.com/vga-timing/640x480@60Hz - -Signal 8:10 VGA -------- ------- --- -R DAT2 1 -VSYNC DAT3 14 -HSYNC CMD 13 -G DAT0 2 -B DAT1 3 -GND GND 5 - +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 -Timing ------- - -Since the Ingenic CPUs take about 8.5 PCLK cycles for a GPIO set or clear, -and we can only set or clear a set of signals in GPIO operation, but not -set some and clear others, we cannot have a real 320 horizontal pixels. - -Instead, set and clear operations alternate. This means that the best-case -resolution is equivalent to 320 pixels (if the original pixel boundaries -coincide with the set/clear phases), but it can be as low as 160 pixels if -the boundaries don't match. - -Furthermore, timing is still a bit too tight. We therefore use a pixel -clock that's about 10% slower than the original. Luckily, most monitors -don't mind. - - -Single/double mode ------------------- - -In single mode, only one set/clear can be performed per pixel. They are -arranges such that the first pixel can only turn on channels, the -following pixel can only turn off channels, and so on. - -In double mode, a set and a clear is performed per pixel. This changes -the timing such that it differs substantially from VGA, but some -monitors can still synchronize with this. - -The resulting signals for various bit patterns are shown in mapping.fig -Each group shows the input pixels, and signal for single mode, and the -signal for double mode. "S" indicates a point where the channel can be -turned on, "C" indicates a point where it can be turned off. - -Note that there are probably other mapping algorithms that would yield -better results. The mapping is not a very performance-critical part of -ubb-vga. Improvements are welcome. - - Compatibility ------------- -ubb-vga in single mode has been tested with the following monitors: +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 Quality ------------------------ --------------- ---------------------------------- -Xenon XEN-1510T 15", 1024x768 good -Samsung 206NW 20", 1680x1050 poor (horizontal instability) -LG W2243C 22", 1920x1080 acceptable (slight instability) -LG W2243L 22", 1920x1080 acceptable (slight instability) -In double mode: +Display Monitor size Age (estimated) +----------------------- --------------- --------------- +Xenon XEN-1510T 15", 1024x768 ~9 years +Samsung 206NW 20", 1680x1050 ~4 years +LG W2243C 22", 1920x1080 ~1 year +LG W2243L 22", 1920x1080 a few months -Display Pixels missing Quality - left/right ------------------------ --------------- ------------------ -Xenon XEN-1510T 5 / 25 good +Mode Monitor Image Hor. noise Cleanliness + Stable Pixel FIFO +--------------- --------------- -------------------------------------------- +640x480 XEN-1510T 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 + 206NW y y 2-3 large distorted + W2243C y y 2-4 large very distorted + W2243L y y 2-3 large very distorted +640x480/70 XEN-1510T y (2) 1 10, 25% distorted, flickery + 206NW y (2) 3-8 - very jittery + W2243C n - "out of range" + W2243L n - "out of range" +800x600/54 XEN-1510T n - + 206NW y n (only flashes) + W2243C n - (screen stays dark) + W2243L n - (screen stays dark) +800x600/56 XEN-1510T y (3) 1-2 - good + 206NW y (1) 1-3 - jittery + W2243C y y 3-4 20, 50% unusable + W2243L y y 304 - very jittery with waves +800x600/72 XEN-1510T y y 1-3 - good, slight flicker + 206NW y y 2-6 - jittery with bounces + W2243C n - (DMA lockup) + W2243L (not tried) +1024x768 XEN-1510T y y 1-2 good + 206NW (not tried) + W2243C n - "out of range" + W2243L n - "out of range" +1024x768/53 XEN-1510T n - (screen stays dark) + 206NW n - (screen stays dark) + W2243C n - (screen stays dark) + W2243L n - (screen stays dark) +1024x768/50 XEN-1510T y y 1-2 - good + 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. To do ----- diff --git a/ubb-vga/README.old b/ubb-vga/README.old new file mode 100644 index 0000000..cf382ba --- /dev/null +++ b/ubb-vga/README.old @@ -0,0 +1,83 @@ +UBB-VGA - VGA-like output via UBB +================================= + +*** THIS IS THE README FOR AN OLDER VERSION OF THE HARDWARE AND THE DRIVER *** + +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 + + +Signal 8:10 VGA +------- ------- --- +R DAT2 1 +VSYNC DAT3 14 +HSYNC CMD 13 +G DAT0 2 +B DAT1 3 +GND GND 5 + +http://en.wikipedia.org/wiki/VGA_connector + + +Timing +------ + +Since the Ingenic CPUs take about 8.5 PCLK cycles for a GPIO set or clear, +and we can only set or clear a set of signals in GPIO operation, but not +set some and clear others, we cannot have a real 320 horizontal pixels. + +Instead, set and clear operations alternate. This means that the best-case +resolution is equivalent to 320 pixels (if the original pixel boundaries +coincide with the set/clear phases), but it can be as low as 160 pixels if +the boundaries don't match. + +Furthermore, timing is still a bit too tight. We therefore use a pixel +clock that's about 10% slower than the original. Luckily, most monitors +don't mind. + + +Single/double mode +------------------ + +In single mode, only one set/clear can be performed per pixel. They are +arranges such that the first pixel can only turn on channels, the +following pixel can only turn off channels, and so on. + +In double mode, a set and a clear is performed per pixel. This changes +the timing such that it differs substantially from VGA, but some +monitors can still synchronize with this. + +The resulting signals for various bit patterns are shown in mapping.fig +Each group shows the input pixels, and signal for single mode, and the +signal for double mode. "S" indicates a point where the channel can be +turned on, "C" indicates a point where it can be turned off. + +Note that there are probably other mapping algorithms that would yield +better results. The mapping is not a very performance-critical part of +ubb-vga. Improvements are welcome. + + +Compatibility +------------- + +ubb-vga in single mode has been tested with the following monitors: + +Display Monitor size Quality +----------------------- --------------- ---------------------------------- +Xenon XEN-1510T 15", 1024x768 good +Samsung 206NW 20", 1680x1050 poor (horizontal instability) +LG W2243C 22", 1920x1080 acceptable (slight instability) +LG W2243L 22", 1920x1080 acceptable (slight instability) + +In double mode: + +Display Pixels missing Quality + left/right +----------------------- --------------- ------------------ +Xenon XEN-1510T 5 / 25 good