栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

2、RH850外设时钟选择及配置

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2、RH850外设时钟选择及配置

博主联系方式:QQ:1146988606,WX:Cc1213060

 

前言

 

上一篇文章完成了RH850时钟源寄存器配置,外设要正常工作,必须要配置对应的时钟,这篇文章说明RH850外设时钟配置。

 

  • 时钟选择寄存器

   下面表格是RH850-F1K技术规格书列出的外设时钟寄存器。

 

   外设时钟寄存器基本都相同,如TAUJ代表的是定时器J的时钟,ADCA代表是A/D转换时钟。下面以RH850-F1K 定时器TAUJ为例,介绍外设时钟相关寄存器。

 

1.1 TAUJ时钟源选择寄存器  C_AWO_TAUJ Source Clock Selection Register

 

CKSC_ATAUJS_CTL定时器TAUJ时钟源选择寄存器可以32bit读写。地址:FFF8 2100H,复位值0000 0001H。

Bit position

Bit Name

Function

31 - 3

保留

 

2 - 0

ATAUJSCSID[2:0]

000: 禁止配置

001: 内部高速振荡器

010: 外部主晶振

011: 内部低速晶振

100: PPLLCLK2

其他禁止配置

 

这个寄存器选择定时器时钟的来源,比较简单,按需要选择。

 

1.2 TAUJ时钟源激活状态寄存器  C_AWO_TAUJ Source Clock Active Register

 

CKSC_ATAUJS_ACT定时器TAUJ时钟源激活状态寄存器可以32bit读。地址:FFF8 2108H,复位值0000 0001H。

Bit position

Bit Name

Function

31 - 3

保留

 

2 - 0

ATAUJSACT [2:0]

000: 禁止配置

001: 内部高速振荡器

010: 外部主晶振

011: 内部低速晶振

100: PPLLCLK2

其他禁止配置

 

时钟源选择寄存器配置后,需要读这个寄存器,直到这个寄存器值和时钟源选择寄存器值一致,说明时钟源选择寄存器配置成功。

 

1.3 TAUJ时钟分频寄存器 C_AWO_TAUJ Clock Divider Selection Register

CKSC_ATAUJD_CTL定时器TAUJ时钟分频寄存器可以32bit读写。地址:FFF8 2200H,复位值0000 0001H。

Bit position

Bit Name

Function

31 - 3

保留

 

2 - 0

ATAUJDCSID [2:0]

000: 禁止配置

001: 选择时钟/1

010: 选择时钟/2

011: 选择时钟/4

100: 选择时钟/8

其他禁止配置

 

1.4 TAUJ时钟分频激活状态寄存器C_AWO_TAUJ Clock Divider Active Register

 

CKSC_ATAUJD_ACT定时器TAUJ时钟分频激活状态寄存器可以32bit读。地址:FFF8 2208H,复位值0000 0001H。

Bit position

Bit Name

Function

31 - 3

保留

 

2 - 0

ATAUJDACT [2:0]

000: 禁止配置

001: 选择时钟/1

010: 选择时钟/2

011: 选择时钟/4

100: 选择时钟/8

其他禁止配置

 

时钟分频寄存器配置后,需要读这个寄存器,直到这个寄存器值和时钟时钟分频寄存器值一致,说明时钟分频寄存器配置成功。

 

1.5 TAUJ时钟待机模式停止寄存器C_AWO_TAUJ Stop Mask Register

 

CKSC_ATAUJD_STPM定时器TAUJ待机模式停止寄存器可以32bit读写。地址:FFF8 2218H,复位值0000 0002H。

Bit position

Bit Name

Function

31 - 1

保留

 

0

ATAUJD

STPMSK

0: 待机模式停止

1: 待机模式不停止

 

其他外设寄存器和TAUJ基本相同,这里就不介绍了。

 

二、RH850-F1K时钟源及外设时钟配置例程

 

void Init_Clocks(void)

{

if((CLKCTLMOSCS&0x04u) != 0x4u)  

       {

CLKCTLMOSCC=0x06;  

            CLKCTLMOSCST=0x8000;  

protected_write(WPROTRPROTCMD0,WPROTRPROTS0,CLKCTLMOSCE,0x01u);  

while (((CLKCTLMOSCS&0x04u) != 0x04u) != 0x04u); 

}

if((CLKCTLPLLS&0x04u) != 0x04u)  

{

CLKCTLPLLC=0x00010B3B;  

protected_write(WPROTRPROTCMD1,WPROTRPROTS1,CLKCTLPLLE,0x01u);  

while((CLKCTLPLLS&0x04u) != 0x04u){}   

}

protected_write(WPROTRPROTCMD1,WPROTRPROTS1,CLKCTLCKSC_CPUCLKD_CTL,0x01u); 

  while(CLKCTLCKSC_CPUCLKD_ACT!=0x01u);

protected_write(WPROTRPROTCMD1,WPROTRPROTS1,CLKCTLCKSC_CPUCLKS_CTL,0x03u); 

while(CLKCTLCKSC_CPUCLKS_ACT!=0x03u);

protected_write(WPROTRPROTCMD1,WPROTRPROTS1,CLKCTLCKSC_IPERI2S_CTL,0x02u);

while(CLKCTLCKSC_IPERI2S_ACT!=0x02u);

protected_write(WPROTRPROTCMD0,WPROTRPROTS0,CLKCTLCKSC_AADCAS_CTL,0x03u);

while(CLKCTLCKSC_AADCAS_ACT!=0x03u);

protected_write(WPROTRPROTCMD1,WPROTRPROTS1,CLKCTLCKSC_IADCAS_CTL,0x03u);

while(CLKCTLCKSC_IADCAS_ACT!=0x03u);

protected_write(WPROTRPROTCMD1,WPROTRPROTS1,CLKCTLCKSC_ILINS_CTL,0x03u);

while(CLKCTLCKSC_ILINS_ACT!=0x03u);

protected_write(WPROTRPROTCMD1,WPROTRPROTS1,CLKCTLCKSC_ICANS_CTL,0x03u);

while(CLKCTLCKSC_ICANS_ACT !=0x03u);

protected_write(WPROTRPROTCMD1,WPROTRPROTS1, CLKCTLCKSC_ICANOSCD_CTL,0x01u);

while(CLKCTLCKSC_ICANOSCD_CTL !=0x01u);

 

 

protected_write(WPROTRPROTCMD0,WPROTRPROTS0,CLKCTLCKSC_ATAUJS_CTL,0x04u);  //??

while(CLKCTLCKSC_ATAUJS_CTL!=0x04u);

}

 

RH850时钟相关说明完成了,时钟是单片机系统最基本部分,时钟初始化完成后,系统就可以跑起来了。

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/943200.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号