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

📄 5509a_usb_apll_to_dpll.asm

📁 TI DSP的TMSVC3205509A中USB模块的模拟PLL启用设置程序。
💻 ASM
字号:
;Switch To The 5509A APLL
;Author: Monideep Mukherjee
;Description: This Program Switches The 5509A System Clock From 
;The APLL To The DPLL. Since The Default Power on PLL is The
;The DPLL, This Program First Switches To The APLL, Then Switches
;Back To The DPLL. 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_DPLL_CLKMD			.set	0x1E00	;USB DPLL 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

SWITCH_TO_APLL		
;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 USB PLL Selection Register
	MOV 0x0001, Port(#USB_PLL_SEL)

;The USB is Now Switched To The APLL
SWITCH_TO_APLL_END				
	
	
SWITCH_BACK_TO_DPLL	
	
	;1.) Enable The DPLL and Set x4 Mode With 12 MHz 
	;Input Clock		
	OR 0x0210, Port(#USB_DPLL_CLKMD)

	;2.) Switch To DPLL From The APLL On The 5509A USB PLL 
	;Selection Register
	MOV 0x0000, Port(#USB_PLL_SEL)
	
;The USB is Now Switched To The DPLL.
		
	;3.) PLLNDIV = 0, Puts The APLL in Div Mode
	AND 0xFFFD, Port(#USB_APLL_CLKMD)

	;4.) Wait 12 CLKIN + 4PLL Cycles
	RPT #16
	NOP

	;5.) Turn ON VCO APLL
	MOV 0x0004, Port(#USB_APLL_CLKMD)
;The APLL is Now Shut Off

SWITCH_BACK_TO_DPLL_END	
	
	
;Wait In an Infinite Loop
End

	NOP
	B End
	

⌨️ 快捷键说明

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