I am not qualified to give you a real answer. But I can give you a layman's guess as an answer for the 18F, and maybe a slightly, more solid 12F answer. Have you ever programmed a 12F and run out of ram? I sure have, and that's just on a smallish program. The 16F answer is probably somewhere in between.
The 12F devices don't have enough ram and stack space to support USB communication, let alone have enough space on the die to fit USB. And if you did cram it in there, once you programmed a USB application, you would not have any room for any code in code space. Just a USB bootloader code takes about 1000 bytes or words ... not really sure, but either way, that is a lot, especially for a 1000 byte chip.
You may notice that on the 18F devices, you get something like USB, and you give up something else. A 18F4620 has a ton of code space, a 18F4550 has USB, but only ample code space. Anything Microchip adds to the silicon die, needs to have room. So they usually have to cut something. Otherwise, I am sure they would put everything including the kitchen sink on the chip. Another example, the 18F4431 has some great PWM and stepper motor capabilities. But not enough room for that and USB, and not enough room for a huge amount of memory, like the 18F4620.
These are really only my guesses, but it might give you an idea or two.
You don't really need a Pickit2, as long as you can get someone to program Microchip's USB HID bootloader onto your USB chip. But it is a good idea to have one, just in case the code somehow gets corrupted, or so you don't have to send every chip to your friend to get programmed for any new boards you make, or go to a different USB chip.
Bookmarks