Getting Started: Running the “OTG –
MCHPUSB – Generic driver demo” demo
To run this project, you will need one of the
following sets of hardware:
PIC24FJ256GB110
Plug-In-Module (PIM) (MA240014)
Explorer
16 (DM240001)
USB
PICtail™ Plus Daughter Card (AC164131)
This
section describes how to set up the various configurations of hardware to run
this demo.
Configuration 1: PIC24FJ256GB110 PIM + Explorer 16
1)
Before attaching the PIC24FJ256GB110 PIM to the Explorer 16 board, insure that
the processor selector switch (S2) is in the “PIM” position as seen in the
image below.
2)
Short the J7 jumper to the “PIC24” setting
3)
Before connecting the PIC24FJ256GB110 PIM to the Explorer 16 board, remove all attached
cables from both boards. Connect the
PIC24FJ256GB110 PIM to the Explorer 16 board.
Be careful when connecting the boards to insure that no pins are bent or
damaged during the process. Also insure
that the PIM is not shifted in any direction and that all of the headers are
properly aligned.
4) On the USB PICTail Plus board, short jumper JP4. Remove all other shorts on the board.
5) Connect the USB PICTail Plus board to either
of the female PICTail Plus connectors or on the card edge connector (J9) at the
edge of the Explorer 16 board.
Note: When using the HID bootloader
for PIC32, it is important to modify the procdefs.ld
file to relocate the sections of code that will hold the bootloader
and those sections that will hold the user application. Example modified procdefs.ld
files have been provided with each project.
This file is currently names “Procdefs.ld.boot”. When using the example project with the bootloader it is required to remove the “.boot” section of
the file. This will allow MPLAB to use
this file instead of the default linker file.
Once the linker file is renamed, however, the project will no longer
work without the bootloader. Please rename the file in order to get the
project working again with PIC32.
To
run this project, you will need to load the corresponding firmware into the
devices. There are two methods available
for loading the demos: Precompiled demos and source code projects.
Precompiled
Demos are available in the “<Install Directory>\USB – Precompiled Demos”
folders. Each demo should be prefaced
with the hardware platform it is compiled for.
Select the file that matches the hardware that you have and the demo
that you want to run. For more
information about how to load a precompiled project, please see the “Getting
Started – Loading a precompiled demo” guide.
The
source code for this demo is available in the “<Install Directory>\USB
OTG – MCHPUSB – Generic Driver Demo” directory.
In this directory you will find all of the user level source and header
files as well as project and workspace files for each of the hardware
platforms. Find the project (*.mcp) or
workspace (*.mcw) file that corresponds to the
hardware platform you wish to test.
Compile and program the demo code into the hardware platform. For more help on how to compile and program
projects, please refer to the MPLAB® help available through the help menu of
MPLAB (Help->Topics…->MPLAB IDE).
This
demo will require two Microchip devices to run.
One will act as the USB host and the other will run the USB
peripheral.
To
demo the full OTG functionality, program 2 sets of boards with the code
provided in the “USB OTG – MCHPUSB – Generic driver demo” folder.
Power
both boards. For this demo you will need
a micro-A to micro-B cable. At the time
of this release these cables are rare and still hard to find. When purchasing a cable please insure that the
ID pin on both connectors is correct. On
the A side of the cable the ID pin should be less than 10 ohms to ground. On the B-side of the cable the ID pin should
be more than 100k ohms to gnd. There are
several manufactures that produce micro-A to micro-B cables that are not OTG
compliant and these cables have the ID pin connected straight through the cable
instead of grounded on one end and floating on the other as the OTG
specification calls for.
When
the A end of the cable is plugged into either of the boards, that board will
become host. When the B end of the cable
is connected to either of the boards, that board will become peripheral. On the host board, press the S3 button (seen
below). This will cause the host to
start supplying 5v to the peripheral. At
this point the peripheral should start to operate.
Changing
the POT on the peripheral board will cause the LCD on the host to reflect the
new value. Similarly the temperature
will be affected. Pressing S3 again will
cause the host to power down the peripheral. With the power to the peripheral off, press
the S3 button on the peripheral. This
initiates a Session Request Protocol (SRP).
This requests that the host power the bus again. At this point the device should run again
without enabling the power from the device.
To
switch roles, while both devices are power and the host is communicating to the
peripheral, press the S6 button (seen below) on the host (the A device). This initiates a Host Negotiate Protocol (HNP). This causes the A device to become the
peripheral and the B device to become the host.
The demo is run the same as before except that the POT on the A device
is now read on the LCD of the B device. To return to the original configuration, press
the S6 button on the B device (now the host). This will suspend the bus and return host
control to the A device.
Note: when bootloading
this application using the HID bootloader, please
make sure that the “Allow Configuration Word Programming” box is checked. This is required to be able to program the
interrupt vectors on PIC24 products. As
this demo requires interrupts it will not work without this feature enabled.
The Microchip name and logo, the Microchip logo,
MPLAB, and PIC are registered trademarks of Microchip Technology Incorporated
in the
PICDEM is a trademark of
Microchip Technology Incorporated in the
Microsoft, Windows, and
Windows Vista are either registered trademarks or trademarks of Microsoft
Corporation in the