Page 1 of 1

20 MHz driver

Posted: Mon Sep 07, 2009 8:18 am
by tommyjunge
Hi,

where can I find the latest 20 MHz firmware extension?
The firmware contained in the powerswitch example is only good for up to 16.5MHz.

Is there an 18 MHz version available as well?

Thanks, Tom

Re: 20 MHz driver

Posted: Mon Sep 07, 2009 10:23 pm
by psc
Hi,

Replace the folder named "usbdrv" in your project (Powerswitch?) with the one from http://www.obdev.at/products/vusb/download.html

You need to tell the compiler what clock to use:
F_CPU = 20000000
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=$(DEVICE) -DF_CPU=$(F_CPU) .....

Here's for your information the supported clock (usbdrvasm.S):
;----------------------------------------------------------------------------
; Now include the clock rate specific code
;----------------------------------------------------------------------------

#ifndef USB_CFG_CLOCK_KHZ
# define USB_CFG_CLOCK_KHZ 12000
#endif

#if USB_CFG_CHECK_CRC /* separate dispatcher for CRC type modules */
# if USB_CFG_CLOCK_KHZ == 18000
# include "usbdrvasm18-crc.inc"
# else
# error "USB_CFG_CLOCK_KHZ is not one of the supported crc-rates!"
# endif
#else /* USB_CFG_CHECK_CRC */
# if USB_CFG_CLOCK_KHZ == 12000
# include "usbdrvasm12.inc"
# elif USB_CFG_CLOCK_KHZ == 12800
# include "usbdrvasm128.inc"
# elif USB_CFG_CLOCK_KHZ == 15000
# include "usbdrvasm15.inc"
# elif USB_CFG_CLOCK_KHZ == 16000
# include "usbdrvasm16.inc"
# elif USB_CFG_CLOCK_KHZ == 16500
# include "usbdrvasm165.inc"
# elif USB_CFG_CLOCK_KHZ == 20000
# include "usbdrvasm20.inc"
# else
# error "USB_CFG_CLOCK_KHZ is not one of the supported non-crc-rates!"
# endif
#endif /* USB_CFG_CHECK_CRC */

pat