Want to communicate with your PIC via USB?
Want to install a virtual Commport on your PC?
Want to send serial commands to your PIC?

Its REALLY easy! Here's how.

Get yourself a PIC18F2455/2550/4455 chips that has USB support. And connect the Usb to to your PIC as shown below.

Note if using the USB bus power to power your pic remember that the max current your pic circuit can draw is 100ma! Anymore and you may blow your usb port! If in doubt stick in a fuse, or use external power.

For this demo though you can safely use the Bus Power. Mecanique has a good circuit diagram you can follow here. http://www.mecanique.co.uk/products/...atic-large.gif

Pin Name Cable color Description
1 VCC Red +5 VDC (Vdd)
2 D- White Data - (RC4)
3 D+ Green Data + (RC5)
4 GND Black Ground (Vss)

Once your hardware is setup follow on....

STEP ONE.

In your PBP folder, copy the entire contents of the USB18 folder into a new folder where you store your pic programs;

eg... copy c:\pbp\usb18\*.* c:\cdcdemo

STEP TWO.

Open the USB descriptors file (called USBDESC.asm)
There are three lines of code in there, change the ; so that CDCDESC.ASM is used.

Code:
;	include "MOUSDESC.ASM"		; USB descriptors for mouse demo
;	include "JADESC.ASM"		; USB descriptors for Jan Axelson's demo
	include "CDCDESC.ASM"		; USB descriptors for CDC demo
STEP THREE.

Copy this code and save it into the c:\cdcdemo folder and then compile using pbp.

Code:
DEFINE    OSC 48

Buffer    VAR BYTE[16]
Cnt       VAR BYTE
B0        VAR BYTE
B1        VAR BYTE

ADCON1 = 15               ' Set all I/Os to Digital      
CMCON = 7                 ' Disable Comparators
Cnt = 16

USBInit                   ' Initialize USART

for b0 = 0 to 15
    lookup b0,["USB CONNECTED!",10,13],B1 
    BUFFER(B0) = B1
    NEXT B0

' Main Program Loop
Loop:
    USBService        ' Must service USB regularly
    USBOut 3, Buffer, Cnt, loop
    goto loop
end
When you compile the above program, PBP fuses the USB18 files in youe cdcdemo folder to generate the neccessary .HEX file. Viola!!
run your progam.

Windows will detect the PIC as a USB device and install the Microchip CDC driver.

STEP FOUR.

Open up Hyperteminal and select the virtual comport that was just installed. you should see USB CONNECTED! repeated.

Congratulations, you can send data from the PIC to the PC via a quasi Serial connection.

Ok How about sending and receiving data?

Program this code below into your pic:

Code:
buffer	Var	Byte[16]
cnt	Var	Byte
LED	Var	PORTB.0

Define  OSC     48

	USBInit
	Low LED		' LED off

' Wait for USB input
idleloop:
	USBService	' Must service USB regularly
	cnt = 1	' Specify input buffer size
	USBIn 3, buffer, cnt, idleloop

' Message received
	Toggle LED

outloop:
	USBService	' Must service USB regularly
	USBOut 3, buffer, cnt, outloop

	Goto idleloop	' Wait for next buffer
Again open Hyperterminal and the PIC will echo back the characters that you type (one byte at a time).

Try sending a large text file. Does it keep up?

Wow your becoming an expert now aren't you!

Stay Tuned....
Squib