Vault 7: Projects

This publication series is about specific projects related to the Vault 7 main publication.

Using the Low Pin Count (LPC) USB Development Board with the PIC16F145x Devices
The original LPC USB Development board was designed for the PIC18F14K50, but the subsequent PIC16F145x USB
microcontrollers have pinout backwards compatibility with the PIC18F14K50. Therefore, it is possible to use these PIC16F
devices with the LPC USB Dev board. However, the board was not optimized for this newer device, and therefore there are
several things that are useful to know when trying to use a PIC16F USB device with this board.
Programming the PIC16F145x Device on the LPC USB Dev Kit Board:
The PIC16F145x microcontrollers feature two
ICSP programming ports. One port (full programming and debug supported) is multiplexed with the MCLR/RC0/RC1 I/O
pins. The other ICSP programming only port (no debug) is multiplexed with the MCLR/D+/D- I/O pins, so as to provide pinout
backwards compatibility with the PIC18F14K50. By default, on the original version of the LPC Dev Kit board, only the
MCLR/D+/D- programming interface is made available on the ICSP1 PICkit 3 style programming header. In order to program
a PIC16F145x device using the ICSP1 header, it is required that the "Enable Low Voltage Programming" checkbox for the
programmer device be selected in the MPLAB IDE build configuration settings. This is NOT the default setting (by default,
high voltage programming is used instead, which the PIC16F145x silicon does not support through the MCLR/D+/D- ICSP
port). This programmer option is under the "Program Options" option categories:
In addition to checking the low voltage programming check box, it is normally necessary to unplug the USB cable from the
demo board (and USB host) during the programming operation, to minimize the capacitance and potential for I/O contention
on the D+/D- pins, during the programming operation. Therefore, it is often convenient to program the microcontroller while
the LPC Dev Kit board is being powered from the ICSP programmer (such as the PICkit 3):
Alternatively, if full program and debug operations are desired (using standard high voltage programming mode), it is
recommended to connect the ICSP programmer to the MCLR/RC0/RC1 programming/debug port. This is the preferred ICSP
port on the PIC16F145x devices, but they are not routed to a ICSP header on the original LPC Dev Kit Board (they are
routed to header ICSP2 on the updated revision of the board). Therefore, if you have the original board, it is suggested to
solder a new 6-pin standard male header (standard 100 mil pin spacing) to the prototyping area of the PCB, and then
connect air wires to connect up to the MCLR, VDD, VSS, RC0, and RC1 pins. When using the MCLR/RC0/RC1
programming/debug port, it is not necessary to unplug the USB cable from the host during program/debug operations, and it
is not necessary to power the board from the programmer or to use the low voltage programming mode.
Using a PIC16F145x Device on the LPC USB Dev Kit Board with the HFINTOSC+PLL+Active Clock Tuning:
In order to
use the HFINTOSC + PLL + Active Clock Tuning to operate in full speed USB mode, it is necessary for the VDD
microcontroller supply rail to be stable and free of noise. However, the original LPC USB Dev Kit board does not have much
VDD rail capacitance (0.2uF total), but it has a substantial noise genering source (the MAX3232 level translator chip, which
uses build in capacitive charge pumps to generate positive voltages above VDD and negative voltages below VSS for
RS232 level communication). The charge pumping action generates a substantial ripple/noise on the VDD rail, which can
disrupt the HFINTOSC stability enough to cause USB communication issues (even though HSPLL mode is unaffected, as
1.5 Demo Board Information MLA - USB Library Help Low Pin Count USB Development Board
221

e-Highlighter

Click to send permalink to address bar, or right-click to copy permalink.

Un-highlight all Un-highlight selectionu Highlight selectionh