Simple PIC USB Interface
Created: Aug 15, 2016
No description available.
This reference design introduces the use of PIC microcontroller to communicate with the USB port. It has the capability to show up as a Human Interface Device (HID) in Windows just like the USB PIC interface. This device enables to send and receive commands from the USB host on a PC that specifically performs the following tasks: toggle the LEDs, recognize when a switch is pressed, and visualize the value of a variable resistor.
This simple design uses minimal components such as PIC18F4455 of Microchip, USB connector, regulator, oscillator, and few passive components. The PIC18F4455 has a 24KB program memory with 1KB dual access RAM for USB. It has also a programmable code protection, self-programmable under software control and Enhanced Capture/Compare/PWM (ECCP) module. In the circuit, the PIC18F4455 is energized by a +5V power supply. Since the USB functionality draws a lot of current, some DC filtering capacitors will be needed on the input and output of the regulator. The 20MHz crystal oscillator actually divided down by 5 to 4MHz and pumped up to 96MHz through a PLL in the PIC in order to have a USB 2.0 compatible clock rate. The variable resistor is used as part of the functionality demonstration to show that voltage is being varied, read and passed over USB to the PC. Similarly, the push button status will be read and passed over the USB to be displayed on PC GUI.
The power supply circuit has an output of 5V with the help of a regulator. The 47uF capacitors on the input and output are DC filtering capacitors, which smooth out the constant DC voltage being fed to the microcontroller from the 7805 regulator. The A/D circuit is a standard 3 pin, connected to power, signal out and ground circuit. The signal output goes into RA0, which is the Analog to Digital converter. After the PIC converts this signal it should send the data to the PC via USB. The PC will visually display the trimpot’s value. The push button will do similarly when the button is pushed, the PC application should update with a notification that it has been pressed.