VUSB @ 11.0592 MHz

General discussions about V-USB, our firmware-only implementation of a low speed USB device on Atmel's AVR microcontrollers
Post Reply
hackingSMA
Posts: 1
Joined: Sat May 04, 2013 7:30 pm

VUSB @ 11.0592 MHz

Post by hackingSMA » Sat May 04, 2013 7:44 pm

Hello,
I am developing a flexible AVR platform for a variety of uses. My device runs at 3.3V and communicates via UART with other devices at a high baud rates. I have selected 11.0592 MHz as a CPU frequency as this is compatible with the lower operating voltage and also is a 'magic' frequency for baud rate generation (ie. is an integer multiple of all of the common baud rates and yields a baud rate error equal to that of the crystal).

I understand that VUSB is hard coded to operate only at certain CPU frequencies. I'm curious if VUSB would work if modified to use usbdrvasm12.inc at 11.0592MHz, or this file would require further modification. Or would it even be possible to modify usbdrvasm12.inc to work at 11.0592 MHz? Would this lower operating frequency even allow enough CPU cycles for VUSB to perform its tasks in the requisite amount of time?

Any advice or shared experience with this would be greatly appreciated.

Thanks,
shea

Bob
Posts: 17
Joined: Sun Jun 10, 2007 7:10 pm
Location: Melbourne

Re: VUSB @ 11.0592 MHz

Post by Bob » Wed May 08, 2013 6:13 pm

I don't think it will be possible to do the bit stuffing properly using 11.0592MHz as 12MHz is the magic number when it comes to USB but don't let me stop you from trying.
Using 12Mhz, there are lots of spare cpu cycles to do other tasks so if you did get 11.0592MHz working then you should still have some spare cycles to do other tasks.

It would probably be a lot easier and greater chance of success if you tried double the frequency at 22.1184Mhz even though the fastest AVR's are specified for only 20MHz, I've used them reliably at 24MHz as long as Vcc is 5 Volts.
Using this method You could use a different divider for your baud rate generator (just divide by 2) and have many more CPU cycles to do other tasks.

Post Reply