1 = VGA Output Example = 2 3 This example demonstrates the generation of an analogue [[VGA Signal Output| 4 VGA]] signal from a PIC32 microcontroller using general output pins. It 5 follows on from the work done in the VGAPIC32 project. The result is not 6 entirely satisfactory: 7 8 * Every fourth pixel is wider than the others, this apparently being an 9 artefact of the DMA transfer mechanism. 10 11 It might be possible to introduce some kind of delay and even out the pixel 12 widths, but this has not been investigated with hardware. However, unlike the 13 [[../vga-pmp|vga-pmp]] example, there is no accompanying signal to potentially 14 orchestrate the staging of individual pixels at a slightly delayed rate. 15 16 Attempts to introduce other remedies to the wide pixel problem have been made 17 with the [[../vga-dual|vga-dual]] and [[../vga-timer|vga-timer]] examples. 18 19 == Hardware Details == 20 21 The pin usage of this solution is documented below. 22 23 === PIC32MX270F256B-50I/SP Pin Assignments === 24 25 {{{ 26 MCLR# 1 \/ 28 27 HSYNC/OC1/RA0 2 27 28 VSYNC/OC2/RA1 3 26 RB15/U1TX 29 D0/RB0 4 25 RB14 30 D1/RB1 5 24 RB13/U1RX 31 D2/RB2 6 23 32 D3/RB3 7 22 RB11/PGEC2 33 8 21 RB10/PGEC3 34 RA2 9 20 35 RA3 10 19 36 D4/RB4 11 18 RB9 37 12 17 RB8 38 13 16 RB7/D7 39 D5/RB5 14 15 40 }}} 41 42 Note that RB6 is not available on pin 15 on this device (it is needed for VBUS 43 unlike the MX170 variant). 44 45 === UART Connections === 46 47 UART1 is exposed by the RB13 and RB15 pins. 48 49 === Data Signal Routing === 50 51 For one bit of intensity, two bits per colour channel: 52 53 {{{ 54 D7 -> 2200R -> I 55 56 I -> diode -> R 57 I -> diode -> G 58 I -> diode -> B 59 60 D6 (not connected) 61 62 D5 -> 470R -> R 63 D4 -> 1000R -> R 64 D3 -> 470R -> G 65 D2 -> 1000R -> G 66 D1 -> 470R -> B 67 D0 -> 1000R -> B 68 69 HSYNC -> HS 70 VSYNC -> VS 71 }}}