1 Introduction
2 ------------
3
4 The CommonPIC32 distribution contains library code and examples demonstrating
5 various features and applications of MIPS-based products in the PIC32
6 microcontroller family. The following examples are provided:
7
8 demo A demonstration of an assortment of peripherals, changing pin
9 output levels (to turn LEDs on and off) and communicating using a
10 UART peripheral.
11
12 vga A collection of examples investigating approaches to provide an
13 vga-cpu analogue VGA signal, displaying the contents of the
14 vga-dual microcontroller's memory on a suitable display. Each example has
15 vga-pmp documentation describing its approach, benefits and limitations,
16 vga-timer but a summary is provided below.
17
18 Contact, Copyright and Licence Information
19 ------------------------------------------
20
21 The author can be contacted at the following e-mail address:
22
23 paul@boddie.org.uk
24
25 Copyright and licence information can be found in the docs directory - see
26 docs/COPYING.txt and docs/gpl-3.0.txt for more information.
27
28 VGA Output Example Comparison
29 -----------------------------
30
31 In investigating different techniques, the following observations have been
32 made about the behaviour of the different VGA examples:
33
34 DMA Horizontal Picture Pixel Scrolling
35 Channels Resolution Stability Consistency Operational
36 -------- ---------- --------- ----------- -----------
37 vga 1 High No No Yes
38 vga-cpu 0 High Yes Yes Yes
39 vga-dual 2 High No No No
40 vga-pmp 1 High No No Yes
41 vga-timer 2 Low Yes Yes Yes
42
43 Here, picture stability is assessed with the CPU accessing RAM. In general,
44 all of the approaches can provide stable pictures with limited RAM access
45 loading. However, under load, the picture will stretch and ripple for all
46 examples where picture stability is given as "No".
47
48 It should be noted that the vga-timer example employs two DMA channels, but
49 this is only to maximise horizontal resolution. With a single channel,
50 horizontal resolution is diminished still further in comparison to the other
51 examples.
52
53 It would appear that two most viable approaches are the vga-cpu and vga-timer,
54 if only because they produce consistently-sized pixels, retain picture
55 stability under load, and provide operational horizontal scrolling. These
56 approaches provide a tradeoff between performance (vga-timer being faster) and
57 resolution (vga-cpu being better).