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