MSP432P401R LaunchPad教程(一)时钟配置

这篇具有很好参考价值的文章主要介绍了MSP432P401R LaunchPad教程(一)时钟配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MSP432P401R LaunchPad教程(一)时钟配置

专栏目录
MSP432P401R LaunchPad教程 基于keil的开发环境
MSP432P401R LaunchPad教程(一)时钟配置
MSP432P401R LaunchPad教程(二)keil环境配置
MSP432P401R LaunchPad教程(三)滴答定时器

如何将性能拉满 配置到48MHz 具体见下文

一.时钟树

msp432p401r,MSP432P401R LaunchPad,单片机,物联网,嵌入式硬件

1.七个时钟源

从官方参考手册可以看出,这个mcu的时钟信号一共有七个时钟源,意思就是说所有的时钟信号由这七个时钟源通过各种配置 (分频倍频 选择啥的)出来的

这七个时钟源是

两个外部时钟源

HFXTCLK:

高速振荡器时钟源 允许的频率范围1-MHz to 48-MHz LaunchPad上就有一个48Mhz的晶振 Q2

msp432p401r,MSP432P401R LaunchPad,单片机,物联网,嵌入式硬件

LFXTCLK:

低速振荡器时钟源 允许的频率范围32KHz以下 LaunchPad上就有一个32768Hz的晶振 Q1

msp432p401r,MSP432P401R LaunchPad,单片机,物联网,嵌入式硬件

五个内部时钟源

DCOCLK:

数字控制振荡器时钟源 意味着其频率可编程的 默认频率为3MHz 我们为了达到mcu最大工作频率48MHz的话 也可以用DCO当作时钟源 只要把DCO的频率编程设置为48MHz 当然没有外部晶振作为时钟源精确 我的工程文件中都用的是外部高速晶振

VLOCLK :

具有9.4-kHz典型频率的内部极低功率低频振荡器(VLO)

REFOCLK :

内部低功耗低频振荡器(REFO),可选择32.768-kHz或128kHz典型频率

MODCLK :

内部低功耗振荡器,典型频率为25 MHz

SYSOSC :

典型频率为5MHz的内部振荡器

2.五个时钟信号

MCLK

主时钟 master clk 为cpu和外设提供时钟的

其时钟源可以来自LFXTCLK, VLOCLK, REFOCLK, DCOCLK,
MODCLK, or HFXTCLK.

MCLK can be divided by 1, 2, 4, 8, 16, 32, 64, or 128.

HSMCLK

子系统主时钟 为外设提供时钟

其时钟源可以来自LFXTCLK, VLOCLK,REFOCLK, DCOCLK, MODCLK, HFXTCLK.

HSMCLK can be divided by 1, 2, 4, 8, 16, 32, 64, or 128.

SMCLK

低速子系统主时钟 为外设提供时钟

其时钟源可以来自HSMCLK 参考手册里说SMCLK的频率限制为HSMCLK额定最大频率的一半 可以我竟然能把SMCLK设置成48MHz 和HSMCLK一样不知道咋回事

msp432p401r,MSP432P401R LaunchPad,单片机,物联网,嵌入式硬件

我通过这些函数观测到我设置的时钟频率 发现SMCLK也能到48MHz

msp432p401r,MSP432P401R LaunchPad,单片机,物联网,嵌入式硬件

msp432p401r,MSP432P401R LaunchPad,单片机,物联网,嵌入式硬件

SMCLK can be divided independently from HSMCLK by 1, 2, 4, 8, 16, 32, 64, or 128.

ACLK

辅助时钟 为外设提供时钟

其时钟源可以来自LFXTCLK, VLOCLK, or REFOCLK

ACLK canbe divided by 1, 2, 4, 8, 16, 32, 64, or 128.

BCLK

低速备用域时钟 为LPM外设提供时钟

其时钟源可以来自

3.默认时钟配置

msp432p401r,MSP432P401R LaunchPad,单片机,物联网,嵌入式硬件

默认的是时钟配置都是内部时钟源

默认时钟配置是在启动文件system_msp432p401r.c里SystemInit(void)设置的 这个函数是在启动文件汇编文件里调用的 学过stm32的应该都熟悉

msp432p401r,MSP432P401R LaunchPad,单片机,物联网,嵌入式硬件

可以在system_msp432p401r.c里通过修改这个宏 更改MCLK的频率 即cpu的主频 通过配置发现 HAMCLK和SMCLK也会跟着改变 所以这个宏应该是同时改变这三者频率

msp432p401r,MSP432P401R LaunchPad,单片机,物联网,嵌入式硬件

二.用外部晶振作为时钟源

上文所说LaunchPad上板载着两个外部晶振 一个高速一个低速

我们就可以用其作为我们的HFXTCLK和LFXTCLK

配置函数如下

/// @brief 使用外部晶振 达到48MHz
/// @param  
void SysInit(void)
{
	//High:48MHz  Low:32768Hz
	//MCLK=48MHz  SMCLK=48MHz
    WDTCTL = WDTPW | WDTHOLD; // 停用看门狗

    /* 第一步需要配置我们的时钟引脚,这里的高速时钟使用的是外部晶振*/
    //低速时钟初始化比较慢
    MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_PJ, GPIO_PIN3 | GPIO_PIN2, GPIO_PRIMARY_MODULE_FUNCTION); //High
    MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_PJ, GPIO_PIN0 | GPIO_PIN1, GPIO_PRIMARY_MODULE_FUNCTION); //Low
    CS_setExternalClockSourceFrequency(32768, 48000000);

    /* Starting HFXT in non-bypass mode without a timeout. Before we start
     * we have to change VCORE to 1 to support the 48MHz frequency */
    MAP_PCM_setCoreVoltageLevel(PCM_VCORE1);

    /* 更改闪存控制器使用的等待状态数用于读取操作。
    当改变时钟的频率范围时,必须使用此函数以允许可读闪存
    通俗来讲就是CPU跑太快了,Flash跟不上,让CPU等等它 */
    MAP_FlashCtl_setWaitState(FLASH_BANK0, 1);
    MAP_FlashCtl_setWaitState(FLASH_BANK1, 1);

    CS_startHFXT(false);          //这是晶体 需要驱动
    CS_startLFXT(CS_LFXT_DRIVE3); //驱动等级3

    MAP_CS_initClockSignal(CS_MCLK, CS_HFXTCLK_SELECT, CS_CLOCK_DIVIDER_1);  //MCLK    48MHz   16分频时,滴答延时可达到最长
    MAP_CS_initClockSignal(CS_SMCLK, CS_HFXTCLK_SELECT, CS_CLOCK_DIVIDER_1); //SMCLK   48MHz
	CS_initClockSignal(CS_HSMCLK, CS_HFXTCLK_SELECT, CS_CLOCK_DIVIDER_1);	 //HSMCLK  48MHz
    CS_initClockSignal(CS_ACLK	, CS_LFXTCLK_SELECT, CS_CLOCK_DIVIDER_1); 	 //ACLK	   32768Hz	
	CS_initClockSignal(CS_BCLK	, CS_LFXTCLK_SELECT, CS_CLOCK_DIVIDER_1);	 //BCLK	   32768Hz
	
	// CS_initClockSignal(CS_ACLK	, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_1); 	 //ACLK		这是不用外部低俗晶振  时钟源为CS_REFOCLK_SELECT
	// CS_initClockSignal(CS_BCLK	, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_1);	 //BCLK
}

这个函数我参考了一个B站up主和官方例程

三.具体工程

我目前基于ti的固件库 进行了二次封装 欢迎大家到我的个人博客中下载

[博客链接](小吕的博客 (dxclv.top))文章来源地址https://www.toymoban.com/news/detail-589725.html

到了这里,关于MSP432P401R LaunchPad教程(一)时钟配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于MSP432P401R爬坡小车【2020年电赛C题】

    主控板: MSP432P401R 数据显示: OLED 电机: 霍尔编码器电机 电池: 7.3V航模电池 巡线: OpenMV H7 Plus 警报: 蜂鸣器 电机驱动: TB6612 仪器: 3D打印机 视觉云台: 3D建模打印 转向: 数字舵机 其他: 铜柱、螺丝螺母、开关、面包板等。 编译器: Keil、OpenMV IDE 建模软件: Sketc

    2024年02月15日
    浏览(32)
  • 配置msp432e401y的ADC采样达到2M

    配置msp432e401y的ADC采样达到2M 电赛期间收到了TI公司提供的msp432e401y开发板。手册上标明ADC采样率可以达到2M,但在TIDriver里好像最大开到500k的采样率。在网上找了半天,没有找到相关代码的帖子,索性自己研究手册,配置出2M采样率。 在msp432e4的sdk文件中里找到.examplesnortos

    2024年02月16日
    浏览(48)
  • MSP432E401Y学习笔记1

    因为去年电赛强制使用TI芯片,所以最近在闲鱼上淘了一块MSP432E401Y准备学习。吃了没文化的亏,这款MSP432的资料实在太少了,网上仅有的一些资料也是P系列的,实在是很头疼。所以在次记录一下自己的学习过程,为想学这款板子的伙伴避一些坑。 芯片:MSP432E401Y 开发环境:

    2024年02月15日
    浏览(36)
  • 关于MSP432E401Y入门指南(1 环境搭建&点亮一个led灯)

    可以使用keil5和ccs开发,这里ccs使用不惯,因此采用keil5开发 一个工程模板test,已经将启动文件、头文件和源文件添加进入 工程示例:链接:https://pan.baidu.com/s/1707PoqR2LP44s1vLjzPH4w 提取码:fghj 文档资料:链接:https://pan.baidu.com/s/1-GMRFdwazVyhh0X0NFi09A 提取码:utsx Pack:链接:htt

    2024年02月14日
    浏览(27)
  • MSP432学习笔记4:时钟与滴答计时器

    所用单片机型号:MSP432P401r 今日继续更新我的MSP432电赛速通笔记: 提示: 本节内容相当于讲述delay_ms() 和delay_us() 俩延时函数的由来, 所以不需要花费过多时间斟酌 MSP432单片机各部件能在有条不紊地自动工作,实际上是在其系统时钟作用下,由CPU指挥芯片内各个部件自

    2024年02月16日
    浏览(45)
  • MSP432速成教程(看这一篇就够了)

    (一)GPIO输出 打开芯片数据手册(msp432p401r)第17页的表详细描述了对应引脚的GPIO功能 1.库函数 配置GPIO模式: 设置高低电平 配置驱动强度 只有P2.0、P2.1、P2.2、P2.3引脚可以配置为高驱动程度 This I/O can be configured for high drive operation with up to 20-mA drive capability. 此I/O可配置为高达

    2024年02月13日
    浏览(43)
  • MSP432学习笔记5——外部中断

    所用单片机型号:MSP432P401r 今日继续我的MSP432电赛速通之路。 外部中断是个很有用的配置 STM32几乎每个I/O口都能配置复用为外部中断 但MSP432并不是这样。 我经过查阅数据手册发现 支持中断的引脚 为: P1^0~ P1^7        P3^0~ P3^7     P5^0~ P5^7 P2^0~ P2^7        P4^0~ P4^7  

    2024年02月07日
    浏览(36)
  • openmv与msp432串口通信

    根据 OpenMV与stm32,msp432等单片机的串口通讯(已经写好一个识别色块的例程,可直接使用)keil(MDK)改进。 一、首先有一个大思想的问题,举个例子就是假如msp432充当“大脑”,openmv就相当于“眼睛”,那么链接所写的就是“眼睛”一直在向“大脑”发送数据,中断会一直

    2024年02月16日
    浏览(29)
  • MSP430单片机C语言编程与实践(入门篇)之一 ----MSP430单片机简介和LaunchPad开发板

    1.1  MSP430单片机的架构        单片机是一个综合的模拟和数字系统,根据其丰富的片上资源,再添加一些外围电路,通过软件编程后就可以完成检测、控制等任务,形成一个实用的电子装置或设备。 MSP430 是美国德州仪器公司(TI,Texas Instruments)推出的系列单片机,因其超

    2024年03月18日
    浏览(34)
  • MSP432库函数学习笔记-GPIO

    简述MSP432Pxx-GPIO库的各函数 1,GPIO模式设置,PxDIR寄存器 2,GPIO复用功能配置,PxSEL寄存器 3,GPIO输出电平设置,PxOUT寄存器 4,GPIO输入模式下上/下拉电阻选择,PxREN寄存器 5,GPIO输入读取模式设置,PxIN寄存器 6,GPIO中断模块设置 1,中断使能寄存器PxIE 2,获取选择I/O口上的中

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包