⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 5509a_usb_dpll_to_apll.asm

📁 The TMS320VC5506/C5507/C5509A USB peripherals can be clocked from either the USB APLL or the USB DP
💻 ASM
字号:
;Switch To The 5509A APLL
;Author: Monideep Mukherjee
;Description: This Program Switches The 5509A System Clock From 
;The Default Bypass/DPLL To APLL. It Was Tested Using a 12MHz
;Input Clock Crystal.

	.text			; Create Code Section (Default is .text)
	
;Register Definitions	
USB_APLL_CLKMD     		.set	0x1F00	;USB APLL CLKMode Register
USB_PLL_SEL				.set 	0x1E80	;USB PLL Selection Register
		
	.def _c_int00		; Define Label To Start of The Code
		
_c_int00	
	;Processor mode initialization
	BCLR	C54CM	; Set Processor To '55x Native Mode Instead 
					; of '54x Compatibility Mode (Reset Value)
	 
	BCLR CLKOFF		; Enable The CLKOUT Pin
		
;First Turn On and Configure The APLL	
	;1.) Turn ON VCO APLL
	MOV 0x0004, Port(#USB_APLL_CLKMD)
	
	;2.) Wait For VCO ON To Latch Internally	
	RPT #25
	NOP
		
	;3.) Turn OFF VCO APLL
	MOV 0x0000, PORT(#USB_APLL_CLKMD)
		
	;4.) PLDIV = 0
	AND 0xF7FF, Port(#USB_APLL_CLKMD)
		
	;5.) PLLNDIV = 0
	AND 0xFFFD, Port(#USB_APLL_CLKMD)		
		
	;6.) Set PLMUL To x 4
	OR 0x3000, Port(#USB_APLL_CLKMD)
									
	;7.) Wait For PLDIV, PLLNDIV, PLMUL To Latch Internally
	RPT #25
	NOP

	;Leave This Commented Out Unless You Want To Divide 
	;By 2 or 4 Depending on K

	;8.) Set PLDIV = 1
	;OR 0x0800, Port(#USB_APLL_CLKMD)
					
	;9.) Set PLLNDIV = 1		
	OR 0x0002, Port(#USB_APLL_CLKMD)

	;10.) Wait For The PLL To Lock. Lock Time is 30 us. With
	;12 MHz Input Clock, Cycle Count is 360.
	RPT #360
	NOP	

;Once Configured, Tell The 5509A To Switch From DPLL or Bypass To APLL
			
	;11.) Switch To APLL From Default DPLL On The 5509A PLL Selection Register
	MOV 0x0001, Port(#USB_PLL_SEL)
	
;The USB is Now Switched To The APLL
			
;Wait In an Infinite Loop
End

	NOP
	B End

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -