娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

s3c6410_時(shí)鐘初始化

發(fā)布者:alpha11最新更新時(shí)間:2024-09-04 來(lái)源: cnblogs關(guān)鍵字:s3c6410  時(shí)鐘  初始化 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

參考:

1)《USER'S MANUAL-S3C6410X》第三章 SYSTEM CONTROLLER

2)u-boot/board/samsumg/smdk6410/lowlevel_init.S

1. PLL與CLK的關(guān)系:

詳細(xì)關(guān)系圖見(jiàn)用戶手冊(cè)122頁(yè)Figure 3-2 The block diagram of clock generator。

三種PLL:APLL,MPLL,EPLL

四種CLK:ACLK,HCLK,PCLK

1)APLL產(chǎn)生ACLK,,ACLK為CPU提供時(shí)鐘

2)同步模式下APLL產(chǎn)生HCLK/PCLK,異步模式下MPLL產(chǎn)生HCLK/PCLK,HCLK為AXI/AHB總線上的外設(shè)提供時(shí)鐘,PCLK為APB總線上的外設(shè)提供時(shí)鐘;

3)EPLL主要為音頻相關(guān)的外設(shè)提供時(shí)鐘;

2. 時(shí)鐘初始化的步驟

假設(shè)我們的目標(biāo)時(shí)鐘大小為:

ACLK: 532M

HCLK: 133M

PCLK: 66.5M

1)設(shè)置同步/異步模式

寄存器:OTHERS

地址:0x7E00F900

方法:

同步模式:設(shè)置[7][6]位為11,等待[11:8]位變成1111;

異步模式:設(shè)置[7][6]位為00,等待[11:8]位變成0000;

2)設(shè)置各PLL的鎖定時(shí)間

寄存器:

APLL_LOCK

MPLL_LOCK

EPLL_LOCK

地址:

0x7E00F000

0x7E00F004

0x7E00F008

方法:

將三種PLL的鎖定時(shí)間均設(shè)成最大值0xffff。

3)設(shè)置各CLK的分頻系數(shù)

寄存器:

CLK_DIV0

地址:

0x7E00F020

方法:

各個(gè)CLK的輸出頻率,輸入頻率,分頻系數(shù)的關(guān)系如下圖:

為了得到預(yù)期的頻率(532_133_66),各個(gè)RATIO取如下值:


#define PCLK_RATIO    3 //PCLK=266M/(3+1)=66.5M

#define HCLKX2_RATIO    1 //HCLKX2=532/(1+1)=266M

#define HCLK_RATIO    1 //HCLK=266/(1+1)=133M

#define MPLL_RATIO    1

#define ARM_RATIO    0 //ACLK=532M/(0+1)=532M

#define CLK_DIV0_VAL    

((PCLK_RATIO<<12)|(HCLKX2_RATIO<<9)|(HCLK_RATIO<<8)|(MPLL_RATIO<<4)|(ARM_RATIO))


4)設(shè)置各PLL的輸出頻率


寄存器:


APLL_CON


MPLL_CON


EPLL_CON0


EPLL_CON1


地址:


0x7E00F00C


0x7E00F010


0x7E00F014


0x7E00F018


方法:


(1)APLL/MPLL


APLL_CON/MPLL_CON中有三個(gè)參數(shù):MDIV,PDIV,SDIV共同決定APLL/MPLL的輸出頻率:


FOUT = MDIV * FIN / (PDIV * 2^SDIV)

FIN,F(xiàn)OUT,MDIV,PDIV,SDIV的常見(jiàn)組合如下:

這里我們要產(chǎn)生533M的APLL/MPLL,故MDIV,PDIV,SDIV的取值如下:


#define APLL_MDIV    266

#define APLL_PDIV    3

#define APLL_SDIV    1

#define APLL_CON_VAL    ((1<<31)|(APLL_MDIV<<16)|(APLL_PDIV<<8)|(APLL_SDIV))


#define MPLL_MDIV    266

#define MPLL_PDIV    3

#define MPLL_SDIV    1

#define MPLL_CON_VAL    ((1<<31)|(MPLL_MDIV<<16)|(MPLL_PDIV<<8)|(MPLL_SDIV))


(2)EPLL


EPLL_CON0和EPLL_CON1中四個(gè)參數(shù):MDIV,PDIV,SDIV,KDIV共同決定EPLL的輸出頻率:


FOUT = (MDIV + KDIV / 2^16 ) * FIN / (PDIV * 2 ^SDIV)


FIN,F(xiàn)OUT,MDIV,PDIV,SDIV,KDIV的常見(jiàn)組合如下:

這里我們要產(chǎn)生96M的EPLL,故MDIV,PDIV,SDIV,KDIV的取值如下:


#define EPLL_MDIV    32

#define EPLL_PDIV    1

#define EPLL_SDIV    2

#define EPLL_KDIV    0

#define EPLL_CON0_VAL    ((1<<31)|(EPLL_MDIV<<16)|(EPLL_PDIV<<8)|(EPLL_SDIV))

#define EPLL_CON1_VAL    (EPLL_KDIV)


5)選擇時(shí)鐘源


寄存器:


CLK_SRC


地址:


0x7E00F01C


方法:

我們選擇PLL的輸出作為時(shí)鐘源,設(shè)置CLK_SRC的低三位為111。


3. 時(shí)鐘初始化的匯編代碼實(shí)現(xiàn)


clock.S


/*

ACLK: 532M

HCLK: 133M

PCLK: 66M

*/

#include 'clock.h'


.global clock_init


clock_init:

    ldr r0, =ELFIN_CLOCK_POWER_BASE


/*step1: set synchronous mode*/

    ldr r1, [r0, #OTHERS_OFFSET]

    mov r2, #0x40

    orr r1, r1, r2

    str r1, [r0, #OTHERS_OFFSET]


    nop

    nop

    nop

    nop

    nop


    mov r2, #0x80

    orr r1, r1, r2

    str r1, [r0, #OTHERS_OFFSET]


check_syncack:

    ldr r1, [r0, #OTHERS_OFFSET]

    mov r2, #0xf00    

    and r1, r1, r2    

    cmp r1, #0xf00

    bne check_syncack


/*step2: set pll lock time*/

    mov r1, #0xff00

    orr r1, r1, #0xff

    str r1, [r0, #APLL_LOCK_OFFSET]

    str r1, [r0, #MPLL_LOCK_OFFSET]

    str r1, [r0, #EPLL_LOCK_OFFSET]


/*step3: set clk divider ratio*/

    ldr r1, [r0, #CLK_DIV0_OFFSET]    

    bic r1, r1, #0xff00

    bic r1, r1, #0x00ff

    ldr r2, =CLK_DIV0_VAL

    orr r1, r1, r2

    str r1, [r0, #CLK_DIV0_OFFSET]


/*step4: set pll output frequency*/

    ldr r1, =APLL_CON_VAL

    str r1, [r0, #APLL_CON_OFFSET]

    ldr r1, =MPLL_CON_VAL

    str r1, [r0, #MPLL_CON_OFFSET]

    ldr r1, =EPLL_CON0_VAL

    str r1, [r0, #EPLL_CON0_OFFSET]

    ldr r1, =EPLL_CON1_VAL

    str r1, [r0, #EPLL_CON1_OFFSET]


/*step5: set clk src*/

    ldr r1, [r0, #CLK_SRC_OFFSET]

    mov r2, #0x7

    orr r1, r1, r2

    str r1, [r0, #CLK_SRC_OFFSET]


/*wait at least 200us to stablize all clock*/

    mov r1, #0x10000

1:    subs r1, r1, #1

    bne 1b


    mov pc, lr


4. 實(shí)驗(yàn)驗(yàn)證

編寫一個(gè)流水燈的裸機(jī)程序,對(duì)比進(jìn)行時(shí)鐘初始化和不進(jìn)行時(shí)鐘初始化兩種情況下流水燈閃爍的快慢。

頻率對(duì)比如下:

APLLMPLLEPLLACLKHCLKX2HCLKPCLK
默認(rèn)值(M)40013397.740013313366.5
當(dāng)前值(M)5322669653226613366.5


不進(jìn)行時(shí)鐘初始化時(shí),CPU的默認(rèn)頻率是400M,

進(jìn)行時(shí)鐘初始化后,CPU的頻率是532M,

故在時(shí)鐘初始化的情況下,流水燈的閃爍速度要快一些。


關(guān)鍵字:s3c6410  時(shí)鐘  初始化 引用地址:s3c6410_時(shí)鐘初始化

上一篇:s3c6410_uart初始化及讀寫
下一篇:飛凌開發(fā)板:S3C6410 之裸機(jī)程序燒寫

推薦閱讀最新更新時(shí)間:2025-06-07 23:43

ARM S3C2440 時(shí)鐘初始化流程
1.設(shè)置lock time 2.設(shè)置分頻系數(shù) 3.設(shè)置CPU到異步工作模式 4.設(shè)置 FCLK 了解 芯片的時(shí)鐘原理圖,以及寄存器的作用 了解芯片的晶振頻率,鎖相環(huán),分頻系數(shù),以及有哪些時(shí)鐘
[單片機(jī)]
s3c2440時(shí)鐘初始化
2440的晶振頻率為12MHZ,有兩個(gè)PLL:MPLL和UPLL,其中MPLL產(chǎn)生FCLK、HCLK、PCLK;UPLL產(chǎn)生UCLK。FCLK為ARM核提供時(shí)鐘,HCLK為AHB總線時(shí)鐘,PCLK為APB總線時(shí)鐘,UCLK為USB總線時(shí)鐘。所以要2440正常工作,主要是要設(shè)置好FCLK,所以主要配置MPLL以及分頻。 時(shí)鐘初始化: 1、設(shè)置lock time(默認(rèn)就行) 2、設(shè)置分頻系數(shù)(設(shè)置CLKDIVN寄存器) 3、設(shè)置CPU到異步工作模式(參考手冊(cè)page243) 4、設(shè)置fclk(設(shè)置MPLLCON寄存器) 參考匯編代碼(設(shè)置FCLK為405M,分頻分別為F:H:P=1:4:8):
[單片機(jī)]
s3c2440<font color='red'>時(shí)鐘</font><font color='red'>初始化</font>
深入理解ARM體系架構(gòu)(S3C6410)---PWM實(shí)例
S3C6410X中有5個(gè)定時(shí)器,這些定時(shí)器產(chǎn)生內(nèi)部中斷。其中,Timer0和Timer1具有PWM功能,而Timer2,3,4沒(méi)有此功能。 The S3C6410X RISC microprocessorcomprises of five 32-bit timers. These timers are used to generate internal interruptsto the ARM subsystem. In addition, Timers 0 and 1 include a PWM function (PulseWidth Modulation),which can drive an external I/O si
[單片機(jī)]
深入理解ARM體系架構(gòu)(<font color='red'>S3C6410</font>)---PWM實(shí)例
S3C2440和S3C6410性能比較
比較項(xiàng)目 S3C2440 S3C6410 內(nèi)核 ARM920T ARM1176JZF-S 主頻 400MHZ 533MHZ/667MHZ 處理器類型 16/32-bit RISC 16/32-bit RISC 設(shè)計(jì)目標(biāo) 高性能、低功耗 高性能、低功耗、高性價(jià)比 主要應(yīng)用
[單片機(jī)]
S3C2440和<font color='red'>S3C6410</font>性能比較
STM32快速組織代碼分析例如IO端口初始化GPIO_Init(GPIOE, &GPIO_InitStructure)
GPIO_Init(GPIOE, &GPIO_InitStructure); 函數(shù)實(shí)體定義是: void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) //結(jié)構(gòu)體的指針,指向結(jié)構(gòu)體變量的首地址2020.2.18 //疑問(wèn)?為什么用結(jié)構(gòu)體指針類型定義,而不用結(jié)構(gòu)體類型定義GPIOx, 對(duì)應(yīng)的外設(shè)的內(nèi)部地址單片機(jī)第一好的 對(duì)應(yīng)自定義的結(jié)構(gòu)體指針變量的地址,編譯器自動(dòng)分配識(shí)別地址 //GPIO_InitStruct2020.2.19
[單片機(jī)]
飛思卡爾S12系列CAN初始化總結(jié)和分享
CAN初始化流程: 1.查詢是否進(jìn)入初始化狀態(tài),如不是,進(jìn)入初始化狀態(tài),此處需設(shè)置CANCTL0,CANCTL1寄存器 2.設(shè)置CAN波特率,此處需設(shè)置CANBTR0,CANBTR1寄存器,具體計(jì)算過(guò)程可參照我的另一篇博客 https://blog.csdn.net/chenwenyang0/article/details/83378556 3.關(guān)閉相應(yīng)CAN口濾波器,此處需設(shè)置CANIDMR寄存器。 4.使能MSCAN模塊,進(jìn)入一般模式,選擇時(shí)鐘,此處需設(shè)置CANCTL0,CANCTL1寄存器 5.設(shè)置接收或者發(fā)送中斷使能 /***************************************
[單片機(jī)]
飛思卡爾S12系列CAN<font color='red'>初始化</font>總結(jié)和分享
初始化ARM處理器各模式下的堆棧指針SP(R13)
程序設(shè)計(jì)思路:通過(guò)狀態(tài)寄存器與通用寄存器之間數(shù)據(jù)傳輸指令MRS/MSR實(shí)現(xiàn),修改時(shí)應(yīng)采用“讀取-修改-寫回”三個(gè)步驟來(lái)實(shí)現(xiàn)。每次只需修改相應(yīng)的域即可,如本次程序只修改C控制域。同時(shí)應(yīng)注意系統(tǒng)模式與用戶模式共用SP,只需初始化其一即可。 程序代碼如下: (1)在GNU ARM開發(fā)環(huán)境下編程: .equ _ISR_STARTADDRESS, 0xC7FF000 @設(shè)置棧的內(nèi)存基地址 .equ UserStack, _ISR_STARTADDRESS @用戶模式堆棧地址0x7FF000 .equ SVCStack, _ISR_STARTADDRESS+256 @管理模式堆棧地址0x7FF100 .equ UndefStac
[單片機(jī)]
【STM32電機(jī)方波】記錄3——TIM1時(shí)基初始化配置
定時(shí)器分類 : STM32F1x 系列中,除了互聯(lián)型的產(chǎn)品,共有 8 個(gè)定時(shí)器,分為基本定時(shí)器,通用定時(shí)器和高級(jí)定時(shí)器。 基本定時(shí)器 TIM6 和 TIM7 是一個(gè) 16 位的只能向上計(jì)數(shù)的定時(shí)器,只能定時(shí),沒(méi)有外部 IO。 通用定時(shí)器 TIM2/3/4/5 是一個(gè) 16 位的可以向上/下計(jì)數(shù)的定時(shí)器,可以定時(shí),可以輸出比較,可以輸入捕捉,每個(gè)定時(shí)器有四個(gè)外部 IO。 高級(jí)定時(shí)器 TIM1/8是一個(gè) 16 位的可以向上/下計(jì)數(shù)的定時(shí)器,可以定時(shí),可以輸出比較,可以輸入捕捉,還可以有三相電機(jī)互補(bǔ)輸出信號(hào),每個(gè)定時(shí)器有 8 個(gè)外部 IO。 高級(jí)定時(shí)器TIM1的庫(kù)函數(shù): 定時(shí)器TIM1時(shí)基結(jié)構(gòu)體缺省值: { TI
[單片機(jī)]
【STM32電機(jī)方波】記錄3——TIM1時(shí)基<font color='red'>初始化</font>配置
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 汪清县| 云浮市| 隆安县| 夏津县| 融水| 高州市| 苍山县| 大竹县| 建湖县| 花垣县| 贡觉县| 临西县| 南陵县| 循化| 双柏县| 广德县| 白玉县| 搜索| 大庆市| 河源市| 剑阁县| 静宁县| 宝坻区| 西乌珠穆沁旗| 察隅县| 西贡区| 家居| 汽车| 永靖县| 剑河县| 镇康县| 阿拉善左旗| 荆门市| 玉溪市| 六枝特区| 琼中| 杨浦区| 章丘市| 三亚市| 运城市| 中宁县|