paul@3 | 1 | Introduction
|
paul@3 | 2 | ============
|
paul@3 | 3 |
|
paul@3 | 4 | The CommonPIC32_VGA distribution provides schematic and circuit layout files
|
paul@3 | 5 | for use with KiCad describing a circuit board for use with a PIC32
|
paul@3 | 6 | microcontroller, offering VGA signal generation capabilities when used with
|
paul@3 | 7 | the appropriate software (provided in the CommonPIC32 software distribution).
|
paul@3 | 8 |
|
paul@3 | 9 | Other interfacing options are also provided for programming the
|
paul@3 | 10 | microcontroller using the ICSP mechanism, communicating with the
|
paul@3 | 11 | microcontroller using UART peripherals, and connecting the microcontroller to
|
paul@3 | 12 | parallel devices and to USB devices.
|
paul@3 | 13 |
|
paul@3 | 14 | Note that the breadboard circuit used to prototype this board only
|
paul@3 | 15 | investigated VGA signal generation, ICSP functionality, and UART
|
paul@3 | 16 | communication. The other interfacing support has yet to be tested and
|
paul@3 | 17 | verified.
|
paul@3 | 18 |
|
paul@3 | 19 | The following resources are provided:
|
paul@3 | 20 |
|
paul@3 | 21 | CommonPIC32_VGA.kicad_pcb The circuit board layout
|
paul@3 | 22 |
|
paul@3 | 23 | CommonPIC32_VGA.net The netlist, generated from the schematic
|
paul@3 | 24 | and distributed here for convenience
|
paul@3 | 25 |
|
paul@3 | 26 | CommonPIC32_VGA.pro The KiCad project file
|
paul@3 | 27 |
|
paul@3 | 28 | CommonPIC32_VGA.sch The circuit schematic providing the
|
paul@3 | 29 | relationships between components
|
paul@3 | 30 |
|
paul@3 | 31 | PIC32MX270F256B.lib PIC32MX270F256B component library
|
paul@3 | 32 | containing a definition for the
|
paul@3 | 33 | microcontroller itself (with the PCB
|
paul@3 | 34 | footprint being provided by generic KiCad
|
paul@3 | 35 | footprint libraries)
|
paul@3 | 36 |
|
paul@3 | 37 | Board Version Notes
|
paul@3 | 38 | ===================
|
paul@3 | 39 |
|
paul@3 | 40 | oshpark-7PB6tGOf (December 2021)
|
paul@3 | 41 | --------------------------------
|
paul@3 | 42 |
|
paul@3 | 43 | This version provides pads for very short resistors which are rather
|
paul@4 | 44 | inconvenient for generally available through-hole mounted resistors, although
|
paul@4 | 45 | the pad spacing is appropriate for the capacitors employed in the design. A
|
paul@4 | 46 | new version is anticipated with longer footprints for the resistors.
|
paul@4 | 47 |
|
paul@4 | 48 | Another flaw with this version is the combination of colour signals without
|
paul@4 | 49 | diodes isolating this part of the circuit. Since some of these pins are used
|
paul@4 | 50 | for parallel input/output, if the VGA signal resistors are connected, pairs of
|
paul@4 | 51 | pins are effectively joined, making the affected parallel signals unusable.
|
paul@4 | 52 | This affects PMD0/PMD1 (blue channel), PMD2/PMWR (green channel), PMD5 (if D7
|
paul@4 | 53 | is used for the red channel). Thus, any use of the parallel signals precludes
|
paul@4 | 54 | use of the VGA outputs unless only one pin of every affected pair is used, as
|
paul@4 | 55 | opposed to both pins.
|
paul@4 | 56 |
|
paul@4 | 57 | Diodes would correct this problem, but another approach could involve a way of
|
paul@4 | 58 | switching between VGA output and parallel signal usage since the use of one
|
paul@4 | 59 | generally precludes the use of the other: parallel traffic leaking through the
|
paul@4 | 60 | VGA connector would not produce a valid signal; VGA output leaking through the
|
paul@4 | 61 | parallel connector would not produce valid parallel transactions. A
|
paul@4 | 62 | multiplexer controlled by an output signal could be coupled with software to
|
paul@4 | 63 | permit switching between the connectors, allowing video output to be switched
|
paul@4 | 64 | between a panel and the VGA connector, for example.
|
paul@3 | 65 |
|
paul@5 | 66 | One limitation that the board has when used with an Arduino Duemilanove board
|
paul@5 | 67 | for programming is that it is not designed to be stacked on such a board. This
|
paul@5 | 68 | could have been useful when putting such a combination of boards in a case
|
paul@5 | 69 | designed for stacks of Arduino boards and shields, since there is otherwise
|
paul@5 | 70 | not enough space between the female headers of the Arduino board and the
|
paul@5 | 71 | underside of this board to be able to use jumper wires, as had been intended.
|
paul@5 | 72 | However, breadboard jumper cables can be used to route the signals between the
|
paul@5 | 73 | boards.
|
paul@5 | 74 |
|
paul@5 | 75 | Another potential change could involve the positioning of the VGA output
|
paul@5 | 76 | connectors, these having been situated at the opposite end of the board to
|
paul@5 | 77 | where an Arduino would have its USB and power connectors. It might have been
|
paul@5 | 78 | more sensible to have put the VGA connectors, these being external, on the
|
paul@5 | 79 | same end as the Arduino's own external connectors, with the programming pins
|
paul@5 | 80 | either being routed via stackable header connections or through connectors on
|
paul@5 | 81 | the end of the board that would be internal within any case or housing.
|
paul@5 | 82 |
|
paul@5 | 83 | Despite the above Arduino-related suggestions, this board was not designed as
|
paul@5 | 84 | an Arduino shield, needing rather more flexibility in terms of providing
|
paul@5 | 85 | connections of specific kinds, and although the intention was to make use of
|
paul@5 | 86 | Arduino-compatible cases or housings, it was never envisaged that any
|
paul@5 | 87 | particular case would be completely compatible with this board.
|
paul@5 | 88 |
|
paul@3 | 89 | Design Rules and Production
|
paul@3 | 90 | ===========================
|
paul@3 | 91 |
|
paul@3 | 92 | It was decided that OSHPark would be used to make the first set of boards.
|
paul@3 | 93 | Thus, the design rules for OSHPark were employed by this project. Such rules
|
paul@3 | 94 | can be found here:
|
paul@3 | 95 |
|
paul@3 | 96 | http://docs.oshpark.com/services/two-layer/
|
paul@3 | 97 | http://docs.oshpark.com/design-tools/kicad/kicad-design-rules/
|
paul@3 | 98 |
|
paul@3 | 99 | The board uploaded to OSHPark was tagged with oshpark-7PB6tGOf in this
|
paul@3 | 100 | repository. It resides on OSHPark at the following location:
|
paul@3 | 101 |
|
paul@3 | 102 | https://oshpark.com/projects/7PB6tGOf/view_design
|
paul@3 | 103 |
|
paul@3 | 104 | Contact, Copyright and Licence Information
|
paul@3 | 105 | ==========================================
|
paul@3 | 106 |
|
paul@3 | 107 | The author can be contacted at the following e-mail address:
|
paul@3 | 108 |
|
paul@3 | 109 | paul@boddie.org.uk
|
paul@3 | 110 |
|
paul@3 | 111 | Copyright and licence information can be found in the docs directory - see
|
paul@3 | 112 | docs/COPYING.txt and docs/gpl-3.0.txt for more information.
|