pic usb clock
For a newbie the best solution is DM163010 development kit from Microchip that shows the capabilities of the PIC16C745 and PIC16C765 USB microcontrollers.($125).
You can even try building yourself according to
http://ww1.microchip.com/downloads/en/AppNotes/91095a.pdf
Later you can try modifying the PICDEM USB Board for PIC18 Full-Speed USB
http://ww1.microchip.com/downloads/en/AppNotes/91095a.pdf
or even better use PICDEM Full Speed USB board **broken link removed**
If you have a PC application that uses RS232 communication and no changes to the existing software has to be made in order to control now your device through USB bus, then the simplest method is to emulate RS-232 over the USB bus and utilizes Windows driver included in Microsoft OS making driver development unnecessary.
More about this at :
http://ww1.microchip.com/downloads/en/appnotes/00956b.pdf
But first of all you better get familiar with USB bus reading USB specification at :
http://www.usb.org/developers/docs/
or if you preffer another approach read this book:
USB Complete : Everything You Need to Develop Custom USB Peripherals
5459438 Bytes at
**broken link removed**
password for rar file:
www.elektrotekno.com
Emulation of USB interface in microcontrollers, which not have USB support and implementing USB interface on firmware level is still possible as Igor Cesko already prooved :
h**p://www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%20(AVR)_eng.htm
But as Igor said :
Firstly I choose PIC16F84-20, with which I have experiences. To ensure synchronizing with USB clock and speed increasing was used microcontroller clock 24MHz = 6MIPS (PIC was slightly overclocked). For one bit from USB processing were 4 instructions (4=6MIPS/1.5Mbit for LowSpeed USB). I reject this solution (after some time) - PIC is too slow (and in addition the no so good instruction set ...) .
Third try was successful: AT90S2313-10 (or AT90S2323-10, AT90S2343-10). This are RISC microcontrollers from Atmel production - AVR family. With comparison with PIC are slow crystal clock, but have 1 instruction per crystal clock (PIC16F84 has to 1 instruction per 4 crystal clock). In addition their instruction set and architecture is nearly to RISC. Again because of synchronization with USB clock I used overclocking to12MHz (AT90S23x3-10 are initially to10MHz only). In this manner I obtained more performance and 12MHz crystals are "easy to obtain" (with comparison to e.g. 10.5MHz - which is the multiple of LowSpeed USB clock 1.5Mbit/s too).
Well, now is available ATTINY2313 at 20MIPS.
You can read about implementing USB 1.1 in firmware for Atmel AVR microcontrollers:
**broken link removed**
and claimed advantages over Igor's firmware-only implementations at bottom of this page:
**broken link removed**
Are you still eager to play with USB bus ?