F_CLOCK changed to F_USB to be more descriptive, and applicable on future architecture ports.
This commit is contained in:
		
							parent
							
								
									c7f4752d6b
								
							
						
					
					
						commit
						aba7932a5c
					
				
					 77 changed files with 508 additions and 503 deletions
				
			
		| 
						 | 
				
			
			@ -80,11 +80,11 @@
 | 
			
		|||
			#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
 | 
			
		||||
		#endif
 | 
			
		||||
 | 
			
		||||
		#if !defined(F_CLOCK)
 | 
			
		||||
			#error F_CLOCK is not defined. You must define F_CLOCK to the frequency of the unprescaled USB controller clock in your project makefile.
 | 
			
		||||
		#if !defined(F_USB)
 | 
			
		||||
			#error F_USB is not defined. You must define F_USB to the frequency of the unprescaled USB controller clock in your project makefile.
 | 
			
		||||
		#endif
 | 
			
		||||
 | 
			
		||||
		#if (F_CLOCK == 8000000)
 | 
			
		||||
		#if (F_USB == 8000000)
 | 
			
		||||
			#if (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || \
 | 
			
		||||
			     defined(__AVR_ATmega8U2__) || defined(__AVR_ATmega16U2__) || \
 | 
			
		||||
			     defined(__AVR_ATmega32U2__))
 | 
			
		||||
| 
						 | 
				
			
			@ -96,7 +96,7 @@
 | 
			
		|||
			#elif (defined(__AVR_AT90USB647__)  || defined(__AVR_AT90USB1287__))
 | 
			
		||||
				#define USB_PLL_PSC                ((1 << PLLP1) | (1 << PLLP0))
 | 
			
		||||
			#endif
 | 
			
		||||
		#elif (F_CLOCK == 16000000)
 | 
			
		||||
		#elif (F_USB == 16000000)
 | 
			
		||||
			#if (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || \
 | 
			
		||||
			     defined(__AVR_ATmega8U2__) || defined(__AVR_ATmega16U2__) || \
 | 
			
		||||
			     defined(__AVR_ATmega32U2__))
 | 
			
		||||
| 
						 | 
				
			
			@ -111,7 +111,7 @@
 | 
			
		|||
		#endif
 | 
			
		||||
 | 
			
		||||
		#if !defined(USB_PLL_PSC)
 | 
			
		||||
			#error No PLL prescale value available for chosen F_CLOCK value and AVR model.
 | 
			
		||||
			#error No PLL prescale value available for chosen F_USB value and AVR model.
 | 
			
		||||
		#endif
 | 
			
		||||
 | 
			
		||||
	/* Public Interface - May be used in end-application: */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,7 +38,6 @@
 | 
			
		|||
 | 
			
		||||
uint8_t USB_Host_SendControlRequest(void* const BufferPtr)
 | 
			
		||||
{
 | 
			
		||||
	uint8_t* HeaderStream = (uint8_t*)&USB_ControlRequest;
 | 
			
		||||
	uint8_t* DataStream   = (uint8_t*)BufferPtr;
 | 
			
		||||
	bool     BusSuspended = USB_Host_IsBusSuspended();
 | 
			
		||||
	uint8_t  ReturnStatus = HOST_SENDCONTROL_Successful;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -106,8 +106,8 @@ void USB_ResetInterface(void)
 | 
			
		|||
 | 
			
		||||
	AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].pllsel = !(USB_Options & USB_OPT_GCLK_SRC_OSC);
 | 
			
		||||
	AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].oscsel = !(USB_Options & USB_OPT_GCLK_CHANNEL_0);
 | 
			
		||||
	AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].diven  = (F_CLOCK != USB_CLOCK_REQUIRED_FREQ);
 | 
			
		||||
	AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].div    = (F_CLOCK == USB_CLOCK_REQUIRED_FREQ) ? 0 : (uint32_t)(((F_CLOCK / USB_CLOCK_REQUIRED_FREQ) - 1) / 2);
 | 
			
		||||
	AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].diven  = (F_USB != USB_CLOCK_REQUIRED_FREQ);
 | 
			
		||||
	AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].div    = (F_USB == USB_CLOCK_REQUIRED_FREQ) ? 0 : (uint32_t)(((F_USB / USB_CLOCK_REQUIRED_FREQ) - 1) / 2);
 | 
			
		||||
	AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].cen    = true;
 | 
			
		||||
 | 
			
		||||
	USB_INT_DisableAllInterrupts();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -60,6 +60,7 @@
 | 
			
		|||
  *   - Removed Pipe_ClearErrorFlags(), pipe error flags are now automatically cleared when Pipe_ClearError() is called
 | 
			
		||||
  *   - Endpoint_ResetFIFO() renamed to Endpoint_ResetEndpoint(), to be consistent with the Pipe_ResetPipe() function name
 | 
			
		||||
  *   - Implemented on-demand PLL clock generation for the U4, U6 and U7 series USB AVRs when automatic PLL mode is specified
 | 
			
		||||
  *   - F_CLOCK changed to F_USB to be more descriptive, and applicable on future architecture ports
 | 
			
		||||
  *  - Library Applications:
 | 
			
		||||
  *   - Changed the XPLAINBridge software UART to use the regular timer CTC mode instead of the alternative CTC mode
 | 
			
		||||
  *     via the Input Capture register, to reduce user confusion
 | 
			
		||||
| 
						 | 
				
			
			@ -633,7 +634,7 @@
 | 
			
		|||
  *  - Pipe stream functions now automatically set the correct pipe token, so that bidirectional pipes can be used
 | 
			
		||||
  *  - Pipe_ConfigurePipe() now automatically defaults IN pipes to accepting infinite IN requests, this can still be changed by calling
 | 
			
		||||
  *    the existing Pipe_SetFiniteINRequests() function
 | 
			
		||||
  *  - Changed F_CLOCK entries in project makefiles to alias to F_CPU by default, as this is the most common case
 | 
			
		||||
  *  - Changed F_USB entries in project makefiles to alias to F_CPU by default, as this is the most common case
 | 
			
		||||
  *  - Host mode demos now use sane terminal escape codes, so that text is always readable and events/program output is visually distinguished
 | 
			
		||||
  *    from one another using foreground colours
 | 
			
		||||
  *  - Internal per-device preprocessing conditions changed to per-device series rather than per-controller group for finer-grain
 | 
			
		||||
| 
						 | 
				
			
			@ -789,7 +790,7 @@
 | 
			
		|||
  *  - Fixed KeyboardMouse demo discarding the wIndex value in the REQ_GetReport request
 | 
			
		||||
  *  - USBtoSerial demo now discards all Rx data when not connected to a USB host, rather than buffering characters for transmission
 | 
			
		||||
  *    next time the device is attached to a host.
 | 
			
		||||
  *  - Added new F_CLOCK compile time constant to the library and makefiles, to give the raw input clock (used to feed the PLL before any
 | 
			
		||||
  *  - Added new F_USB compile time constant to the library and makefiles, to give the raw input clock (used to feed the PLL before any
 | 
			
		||||
  *    clock prescaling is performed) frequency, so that the PLL prescale mask can be determined
 | 
			
		||||
  *  - Changed stream wait timeout counter to be 16-bit, so that very long timeout periods can be set for correct communications with
 | 
			
		||||
  *    badly designed hosts or devices which greatly exceed the USB specification limits
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,7 +22,7 @@
 | 
			
		|||
 *
 | 
			
		||||
 *    - <b>MCU</b>, the target AVR processor
 | 
			
		||||
 *    - <b>BOARD</b>, the target board hardware
 | 
			
		||||
 *    - <b>F_CLOCK</b>, the target raw master clock frequency, before any prescaling is performed
 | 
			
		||||
 *    - <b>F_USB</b>, the target raw master clock frequency, before any prescaling is performed
 | 
			
		||||
 *    - <b>F_CPU</b>, the target AVR CPU master clock frequency, after any prescaling
 | 
			
		||||
 *    - <b>CDEFS</b>, the C preprocessor defines which configure options the source code
 | 
			
		||||
 *    - <b>LUFA_PATH</b>, the path to the LUFA library source code
 | 
			
		||||
| 
						 | 
				
			
			@ -50,7 +50,7 @@
 | 
			
		|||
 *
 | 
			
		||||
 *  For boards with built in hardware driver support within the LUFA library, see \ref Page_DeviceSupport.
 | 
			
		||||
 *
 | 
			
		||||
 *  \section Sec_F_CLOCK The F_CLOCK Parameter
 | 
			
		||||
 *  \section Sec_F_USB The F_USB Parameter
 | 
			
		||||
 *  This parameter indicates the target AVR's input clock frequency, in Hz. This is the actual clock input, before any prescaling is performed. In the
 | 
			
		||||
 *  USB AVR architecture, the input clock before any prescaling is fed directly to the PLL subsystem, and thus the PLL is derived directly from the
 | 
			
		||||
 *  clock input. The PLL then feeds the USB and other sections of the AVR with the correct upscaled frequencies required for those sections to function.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,6 +51,7 @@
 | 
			
		|||
 *  - Garmin GPS USB to NMEA standard serial sentence translator: http://github.com/nall/garmin-transmogrifier/tree/master
 | 
			
		||||
 *  - Generic HID Device Creator: http://generichid.sourceforge.net/
 | 
			
		||||
 *  - Ghetto Drum, a MIDI drum controller: http://noisybox.net/art/gdrum/
 | 
			
		||||
 *  - Hiduino, a USB-MIDI replacement firmware for the Arduino Uno: http://code.google.com/p/hiduino/
 | 
			
		||||
 *  - IR Remote to Keyboard decoder: http://netzhansa.blogspot.com/2010/04/our-living-room-hi-fi-setup-needs-mp3.html
 | 
			
		||||
 *  - LED Panel controller: http://projects.peterpolidoro.net/caltech/panelscontroller/panelscontroller.htm
 | 
			
		||||
 *  - LUFA powered DDR dance mat (French): http://logicien-parfait.fr/dokuwiki/doku.php?id=projet:ddr_repair
 | 
			
		||||
| 
						 | 
				
			
			@ -78,10 +79,12 @@
 | 
			
		|||
 *  - Stripe Snoop, a Magnetic Card reader: http://www.ossguy.com/ss_usb/
 | 
			
		||||
 *  - Teensy SD Card .WAV file player: http://elasticsheep.com/2010/04/teensy2-usb-wav-player-part-1/
 | 
			
		||||
 *  - Touchscreen Input Device: http://capnstech.blogspot.com/2010/07/touchscreen-update.html
 | 
			
		||||
 *  - Universal USB AVR Module: http://usbavr.bplaced.net/
 | 
			
		||||
 *  - USB Interface for Playstation Portable Devices: http://forums.ps2dev.org/viewtopic.php?t=11001
 | 
			
		||||
 *  - Userial, a USB to Serial converter with SPI, I2C and other protocols: http://www.tty1.net/userial/
 | 
			
		||||
 *  - Wireless MIDI Guitar system: http://www.ise.pw.edu.pl/~wzab/wireless_guitar_system/
 | 
			
		||||
 *  - XUM1541, a Commodore 64 floppy drive to USB adapter: http://www.root.org/~nate/c64/xum1541/
 | 
			
		||||
 *  - Zeus, a touch screen computer for music manipulation: http://www.benbengler.com/developments_zeus.html
 | 
			
		||||
 *
 | 
			
		||||
 *  \section Sec_LUFACommercialProjects Projects Using LUFA (Commercial)
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,6 +32,8 @@
 | 
			
		|||
 *      reconfiguring all Endpoints/Pipes in order each time a new Endpoint/Pipe is created. To minimise the compiled program
 | 
			
		||||
 *      size, the new \c ORDERED_EP_CONFIG compile time option may be defined in the project makefile to restrict the ordering
 | 
			
		||||
 *      in exchange for a smaller compiled binary size.
 | 
			
		||||
 *    - The previous F_CLOCK symbol, required in the project makefile, has been renamed to F_USB. This is due to the previous name
 | 
			
		||||
 *      being far too generic for use in future architecture ports, where multiple clock domains are used.
 | 
			
		||||
 *
 | 
			
		||||
 *  <b>Device Mode</b>
 | 
			
		||||
 *    - The Endpoint stream functions now all require a \c BytesProcessed parameter instead of the previous callback parameter.
 | 
			
		||||
| 
						 | 
				
			
			@ -368,7 +370,7 @@
 | 
			
		|||
 *  \section Sec_Migration090401 Migrating from 090209 to 090401
 | 
			
		||||
 *
 | 
			
		||||
 *  <b>All</b>
 | 
			
		||||
 *    - LUFA projects must now give the raw input clock frequency (before any prescaling) as a compile time constant \c F_CLOCK,
 | 
			
		||||
 *    - LUFA projects must now give the raw input clock frequency (before any prescaling) as a compile time constant \c F_USB,
 | 
			
		||||
 *      defined in the project makefile and passed to the compiler via the -D switch.
 | 
			
		||||
 *    - The makefile EEPROM programming targets for FLIP and dfu-programmer no longer program in the FLASH data in addition to the
 | 
			
		||||
 *      EEPROM data into the device. If both are to be programmed, both the EEPROM and FLASH programming targets must be called.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue