Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
Using the PIC16 series you would have to use an external USB controller with the SIE on in it.
I have done that using the USBN9203 controller from National Semi a while ago when there was no PIC18 available with the USB peripheral on chip
Another thing here, if you can write your own USB driver for the PIC part, then you can use the PIC14 family, provided the code fits in the program memory, hence you will throw PIC16F84A away because I don't expect the code to fit there. I have seen an AVR USB programmer that uses software based USB driver instead of the hardware, but I have not looked o the code.
Adding to what Beowolf said, hardware is better than software in such cases, and easier to use
As metal said, there is USB protocol implementation in firmware for small microcontrollers without USB controller. Of course it is USB 1.1 and is much slower than USB 2.0
The most famous project is from Igor Cesko for AVR's.
See the attached file or download it from his site: **broken link removed**
I just bought an USB1.1->RS232 converter for half of the price of an FTDI chip disassembled it from it's molded plastic case and sticked it to my pcb.
And used a PIC16F628's serial port to communicate through it.
Of course it works only as a serial port, and you have to install a small driver tho have COM10, but you need this don't you?
One person has already done the miracle.
He is from the country with the worst politics known to men, but also with people with talent as old Picasso.
Here is the pseudo "censured" link for those who doubdt:
Some will post critics about "using overclocking", others will say that "not open code".
But NOW , I post:
"Those who can ... do" , those who can't ... talk critics.