Simple PIC USB Interface

Current Part:

PIC 18F4455 Microcontroller
USB Type A Connector
USB Cable
7805 +5v Regulator
2x 330Ω Resistors
2x 10kΩ Resistors
5kΩ Trimpot
2x 47uF Capacitor
20 MHz Crystal
1x 0.47uF or 0.1uF Capacitor
Jumper Wire
9v Connector
Push Button Switch
Pickit 2
2x LEDs

Parts List Details
           The comprehensive list of parts above is everything you'll need to follow along with this tutorial. Below I will describe the main parts in a little more detail in case you are not familiar with them.

PIC 18F4455
           This is the USB 2.0 device (microcontroller) that we will use to talk with the USB host in the laptop computer. It has 24kb program memory space and many features aside from USB 2.0; we will be using some of these other features, like Analog To Digital conversion.

USB Type A Connector and USB Cable
           Depending on the type of USB cables you have laying around, you might choose to use a USB Type B connector or a Mini Type B. Double check with the type of USB cable you plan on using and then order the appropriate connector.

7805 +5v Regulator
           The PIC18F4455 and USB rely upon a +5v power supply and this regulator will give it to them. Since the USB functionality draws a lot of current some DC filtering capactors will be needed on the input and output of the regulator. You'll see these in the schematic.

20 MHz Crystal
           20 MHz was chosen randomly as the speed for this tutorial. This speed is actually divided down by 5 to 4 MHz and pumped up to 96 MHz through a PLL in the 18F4455 inorder to have a USB 2.0 compatible clock rate. As long as you have at least a 4 MHz input clock rate, the USB will work.

Trimpot and Push Button
           The variable resistor trimpot is used as part of the functionality demonstration to show that voltage is being varied, read and passed over USB to the Laptop. Similarly, the push button status will be read and passed over the USB to be displayed on the laptop.

Jumper Wire, Breadboard & LEDs
           The breadboard is the framework for this tutorial, all parts are placed on it and connected together on it. The jumper wire will be used for connecting all parts together on the breadboard. The LEDs will be toggled by the user clicking a button on the laptop, they can be toggled on or off by the user.