2、RH850外设时钟选择及配置
前言
上一篇文章完成了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)
{
/*配置主晶振 16M*/
if((CLKCTLMOSCS&0x04u) != 0x4u) /* 检测MainOsc 有没有启动 */
{
CLKCTLMOSCC=0x06; /* 10B,(8MHz < MOSC frequency =< 16MHz) */
CLKCTLMOSCST=0x8000; /* 设置稳定延时时间(8,19 ms) */
protected_write(WPROTRPROTCMD0,WPROTRPROTS0,CLKCTLMOSCE,0x01u); /* MOSCE=0x01,使能主晶振*/
while (((CLKCTLMOSCS&0x04u) != 0x04u) != 0x04u); /* 等待MainOSC正常工作 */
}
/*配置PLL 80M*/
if((CLKCTLPLLS&0x04u) != 0x04u) /* 检测PLL有没有启动 */
{
CLKCTLPLLC=0x00010B3B; /* 配置PLL控制寄存器,主晶振 16M,CPLLOUT,PPLLOUT输出80M,数据来源见前面分析*/
protected_write(WPROTRPROTCMD1,WPROTRPROTS1,CLKCTLPLLE,0x01u); /*使能 PLL */
while((CLKCTLPLLS&0x04u) != 0x04u){} /*等待 PLL正常工作 */
}
/*配置CPU时钟80M*/
protected_write(WPROTRPROTCMD1,WPROTRPROTS1,CLKCTLCKSC_CPUCLKD_CTL,0x01u); /*CPU时钟480/6=80M */
while(CLKCTLCKSC_CPUCLKD_ACT!=0x01u);
protected_write(WPROTRPROTCMD1,WPROTRPROTS1,CLKCTLCKSC_CPUCLKS_CTL,0x03u); /*CPU时钟源选择,BIT1-0, 3-PLL输出CPLLCLK*/
while(CLKCTLCKSC_CPUCLKS_ACT!=0x03u); /*等待 CPU时钟正常工作 */
/* 设置PERI2总线 40 MHZ (PPLLCLK2) */
protected_write(WPROTRPROTCMD1,WPROTRPROTS1,CLKCTLCKSC_IPERI2S_CTL,0x02u);
while(CLKCTLCKSC_IPERI2S_ACT!=0x02u);
/*设置ADCA0时钟 40 MHZ (PPLLCLK2) */
protected_write(WPROTRPROTCMD0,WPROTRPROTS0,CLKCTLCKSC_AADCAS_CTL,0x03u);
while(CLKCTLCKSC_AADCAS_ACT!=0x03u);
/*设置ADCA1时钟 40 MHZ (PPLLCLK2) */
protected_write(WPROTRPROTCMD1,WPROTRPROTS1,CLKCTLCKSC_IADCAS_CTL,0x03u);
while(CLKCTLCKSC_IADCAS_ACT!=0x03u);
/*设置RLIN时钟 40 MHZ (PPLLCLK2) */
protected_write(WPROTRPROTCMD1,WPROTRPROTS1,CLKCTLCKSC_ILINS_CTL,0x03u);
while(CLKCTLCKSC_ILINS_ACT!=0x03u);
/*设置CAN时钟80 MHZ (CPUCLK) */
protected_write(WPROTRPROTCMD1,WPROTRPROTS1,CLKCTLCKSC_ICANS_CTL,0x03u);
while(CLKCTLCKSC_ICANS_ACT !=0x03u);
/*设置CAN通讯时钟16 MHZ (main osc) */
protected_write(WPROTRPROTCMD1,WPROTRPROTS1, CLKCTLCKSC_ICANOSCD_CTL,0x01u);
while(CLKCTLCKSC_ICANOSCD_CTL !=0x01u);
/* Select the Low Speed IntOsc(240kHz) as TAUJ Clock */
/*设置TAUJ时钟40 MHZ (PPLLCLK2) */
protected_write(WPROTRPROTCMD0,WPROTRPROTS0,CLKCTLCKSC_ATAUJS_CTL,0x04u); //??
while(CLKCTLCKSC_ATAUJS_CTL!=0x04u);
}
RH850时钟相关说明完成了,时钟是单片机系统最基本部分,时钟初始化完成后,系统就可以跑起来了。
2、RH850外设时钟选择及配置相关推荐
- STM32F105、107RB使用外部晶振8M时配置外设时钟为72M
转发:STM32F105RBT6使用外部晶振8M时配置外设时钟为36M_yunke120的博客-CSDN博客 STM32F105.107属于互联型芯片在stm官方库文件设置中默认外接晶振为25MHZ, ...
- 【ARM自学笔记】ARM7时钟简述及配置
简述 所使用的芯片为NXP的I.MX6U. 硬件分析 原理图如下: 分为两个来源: 32.768KHz晶振(I.MX6U的RTC时钟源) 24MHz晶振(I.MX6U内核和外设的时钟源) 流程分析 P ...
- 阿尔法系统时钟和外设时钟
一.系统时钟 1.时钟树 I.MX6U 的系统主频为 528MHz,但是默认情况下内部 boot rom 会将 I.MX6U 的主频设置为396MHz I.MX6U-ALPHA 开发板的系统时钟来源于 ...
- 蓝桥杯物联网竞赛基础图文教程——时钟选择
蓝桥杯物联网竞赛基础图文教程--时钟选择 1什么是时钟 时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令.时钟系统就是CPU的脉搏,决定cpu速率,像人的心跳一样 只有有了心跳,人才 ...
- STM32F103ZET6的时钟系统RCC配置
家人们,今天分析了一下手头ZET6开发板的时钟配置过程,记录一下下: 根据正点原子的<库函数开发指南>,时钟系统可以用时钟树来表示: 一共有HSE(高速外部时钟4-16M,正点原子开发板是 ...
- 你需要知道的Linux 系统下外设时钟管理
嵌入式系统一般要求低功耗,出于这个原因,一般只把需要使用到的外设时钟源打开,其他不需要使用到的模块,则默认关闭它们. LCD 模块,上电时候默认情况是关闭的,所以,要想使用 LCD 模块,配置它寄存器 ...
- STM32片上外设时钟使能、失能和复位的区别
置顶/星标公众号,不错过每一条消息! 今天分享的关于时钟知识,可能很多人没有在意过.这也是之前有朋友问过的问题,这里就简单给大家普及一下吧. 1 RCC时钟说明 在STM32参考手册中,都有Reset ...
- 对MSP430F5438的时钟及uart配置
对MSP430F5438的时钟及uart配置 在使用的过程中,一直认为比较简单,也一直没有深究,忽然这几天卡壳了,出现问题是操作UART发送出的数据给232显示,并不是想得到的数据.这里涉及了两个地方 ...
- 服务器CPU和普通家用CPU有什么区别?服务器如何选择CPU配置?
服务器CPU和普通家用CPU有什么区别?服务器如何选择CPU配置? 大家都知道服务器是指那些具有较高计算能力,能够提供响应成千上万用户服务请求的一种高性能计算机服务器,虽然在硬件结构上和通用的个人计算 ...
- 【超简单】MySQL存储引擎的选择与配置
[超简单]MySQL存储引擎的选择与配置 存储引擎简介 MySQL中的数据用各种不同的技术存储在文件(或内存)中.每一种技术都使用不同的存储机构,索引技巧,锁定水平并且最终提供广泛的不同的功能和能力. ...
最新文章
- select,epoll,poll比较
- 杭电 1272 poj 1308 小希的迷宫
- 成功解决bash syntax error near unexpected token from
- Hdu 1754 . I Hate It
- java中的复合数据类型是什么_【填空题】类是Java中的一种重要的复合数据类型,是组成Java程序的基本要素。一个类的实现包括两部分:____和_____....
- flink 写kafka_网易云音乐基于 Flink + Kafka 的实时数仓建设实践
- Storm的BaseBasicBolt源码解析ack机制
- mysql数据库连接配置路径_关于mysql安装后更改数据库路径方法-linux环境
- JS获取页面 GET 方式请求的参数
- c语言编程简单好玩的图,几个有趣的画图编程
- php有没有能无限遍历,php无限遍历目录代码
- selenium模拟刷百度流量源码
- c语言人名首字母大写,关于字符串:如何在C中大写名字和姓氏的首字母?
- 什么品牌台灯最舒服?盘点2023最好的台灯品牌
- WINCC 7.5 sp1 sp2安装包,硬件狗等,Sim_EKB_Install_2018下载
- Java web 课程设计——图书馆管理系统(SSM)
- 手术麻醉系统管理源码
- 蓄电池内阻变化规律 解释电车猛加速电压降低,匀速后又上升
- 一个奇特的轨对轨运放OPA340
- 远程面试之企业招聘新方式
热门文章
- matlab怎么画地震反应谱,地震工程学-反应谱和地震时程波的相互转化matlab编程...
- I210网卡LINUX的mac,intel(R)I211网卡刷I210简易教程
- jrtplib使用笔记
- 基于51单片机的电子秤设计
- matlab实用教程 答案,含答案《matlab实用教程》.doc
- 计算机科学中的张量,杨晓伟教授到我院做“张量学习的几个关键问题”学术报告...
- oracle导出要工具,Oracle导出工具的具体操作步骤详解
- Silverlight 4 RC发布和详细更新
- SHELLEXECUTEINFO,ShellExecuteEx
- Mac环境下AndroidStudio关于 Failed to resolve: org.jetbrains.kotlin:kotlin-stdlib-jre7的错误