历史上的今天
返回首页

历史上的今天

今天是:2025年02月22日(星期六)

2020年02月22日 | MSP430Ware使用笔记 初始化DCO至8MHz

2020-02-22 来源:eefocus

1.平台说明MSP430F5438。


2.ACLK选择XT1,频率为32.768K,MCLK和SMCLK选择DCOCLKDIV,频率为8000K。


// 辅助时钟 ACLK 32.768K

// 系统时钟 子系统时钟 8000K

 

#include "inc/hw_memmap.h"

#include "ucs.h"

#include "wdt_a.h"

#include "gpio.h"

#include "sfr.h"

 

void main (void)

{

    // 停止看门狗

    WDT_A_hold(WDT_A_BASE);

 

    // P4.0保持输出状态

    GPIO_setAsOutputPin(GPIO_PORT_P4,GPIO_PIN0);

 

    // 初始化P7.0和P7.1为复用功能

    GPIO_setAsPeripheralModuleFunctionInputPin( GPIO_PORT_P7 , GPIO_PIN0 | GPIO_PIN1 );

    // 启动XT1

    UCS_LFXT1Start( UCS_BASE , UCS_XT1_DRIVE0 , UCS_XCAP_3 );

 

    // DCO参考时钟选择XT1,选择了默认参数

    // UCS_clockSignalInit( UCS_BASE, UCS_FLLREF, UCS_XT1CLK_SELECT ,UCS_CLOCK_DIVIDER_1 );

    // DCO时钟8MHz

    // 该函数第二个参数为系统工作频率 8000K,第三个参数为 工作频率/DCO参考频率

    UCS_initFLLSettle( UCS_BASE, 8000 , 244 );

 

    // 使能全局中断

    __bis_SR_register(GIE);

 

    while(1)

    {

        // 翻转P4.0

        GPIO_toggleOutputOnPin(GPIO_PORT_P4,GPIO_PIN0);

        // 软件延时

        __delay_cycles(1000000);

    }

}


从代码的角度来看,使用MSPWare使编程更加简洁,修改更加方便。


最后添加UCS_getSMCLK等函数验证结果,代码如下:



// 辅助时钟 ACLK 32.768K

// 系统时钟 子系统时钟 8000K

 

#include "inc/hw_memmap.h"

#include "ucs.h"

#include "wdt_a.h"

#include "gpio.h"

#include "sfr.h"

 

uint32_t clockValue_ACLK = 0;

uint32_t clockValue_MCLK = 0;

uint32_t clockValue_SMCLK = 0;

 

void main (void)

{

//    uint16_t status;

    // 停止看门狗

    WDT_A_hold(WDT_A_BASE);

 

    // P4.0保持输出状态

    GPIO_setAsOutputPin(GPIO_PORT_P4,GPIO_PIN0);

 

    // 初始化P7.0和P7.1为复用功能

    GPIO_setAsPeripheralModuleFunctionInputPin( GPIO_PORT_P7 , GPIO_PIN0 | GPIO_PIN1 );

    // 启动XT1

    UCS_LFXT1Start( UCS_BASE , UCS_XT1_DRIVE0 , UCS_XCAP_3 );

 

    // DCO参考时钟选择XT1,实际选择了默认参数

    // UCS_clockSignalInit( UCS_BASE, UCS_FLLREF, UCS_XT1CLK_SELECT , UCS_CLOCK_DIVIDER_1 );

    // DCO时钟8MHz

    // 该函数第二个参数为系统工作频率 8000K,第三个参数为 工作频率/DCO参考频率

    UCS_initFLLSettle( UCS_BASE, 8000 , 244 );

 

    // 如果使用XT1或者XT2,需要调用该函数

    UCS_setExternalClockSource(UCS_BASE,32768,8000000);

    clockValue_SMCLK = UCS_getSMCLK(UCS_BASE);

    clockValue_MCLK = UCS_getMCLK(UCS_BASE);

    clockValue_ACLK = UCS_getACLK(UCS_BASE);

 

    // 使能全局中断

    __bis_SR_register(GIE);

 

    while(1)

    {

        // 翻转P4.0

        GPIO_toggleOutputOnPin(GPIO_PORT_P4,GPIO_PIN0);

        // 软件延时

        __delay_cycles(1000000);

    }

}


推荐阅读

史海拾趣

Eclipse Magnetics公司的发展小趣事

由于篇幅限制,无法在此处直接提供5个完整的、每篇至少500字的Eclipse Magnetics公司电子行业发展的相关故事。不过,我可以概括地描述几个可能的故事线索,这些线索可以基于Eclipse Magnetics公司的历史、技术发展和市场应用来构建。

  1. 品牌初创与磁铁技术的突破

在1930年代,Eclipse Magnetics的名字首次出现,标志着这个品牌的诞生。随着技术的不断发展,公司在1940年代成为独立公司,并开始专注于磁铁技术的研发。到了1950年代,Eclipse Magnetics在技术上取得了重大突破,他们将磁铁涂上红色,并设计了与公司颜色相匹配的马蹄形标志,这一设计不仅提升了品牌形象,也成为了国际通用标记。这一时期的Eclipse Magnetics,以其独特的技术和产品,开始在电子行业中崭露头角。

  1. 航空航天领域的应用与拓展

随着航空航天技术的不断发展,Eclipse Magnetics看到了磁铁技术在该领域的巨大潜力。公司开始投入大量资源,研发适用于航空航天领域的磁性解决方案。通过不断的技术创新和产品优化,Eclipse Magnetics成功地为航空航天领域提供了高性能、高可靠性的磁铁产品,并在这一领域树立了良好的口碑。

  1. 与制药工业的深入合作

除了航空航天领域,Eclipse Magnetics还与制药工业建立了深入的合作关系。在制药过程中,磁铁技术可以用于磁选机,有效地去除原料中的杂质,提高药品的纯度。Eclipse Magnetics根据制药工业的特殊需求,定制了多款磁选机产品,并提供了全面的技术支持和售后服务。通过与制药工业的深入合作,Eclipse Magnetics不仅拓展了市场,也提升了自身的技术实力。

  1. 在汽车制造行业的应用

随着汽车制造业的快速发展,Eclipse Magnetics也看到了磁铁技术在该领域的广阔前景。公司针对汽车制造中的各个环节,研发了多款适用于不同场景的磁性解决方案。例如,在齿轮箱轴制造过程中,Eclipse Magnetics的磁性过滤器可以保持冷却液的清洁,提高生产效率和产品质量。这些解决方案不仅满足了汽车制造业的需求,也进一步巩固了Eclipse Magnetics在电子行业中的地位。

  1. 创新研发与可持续发展

作为一家专注于磁性技术的公司,Eclipse Magnetics始终将创新作为发展的核心动力。公司不断投入研发资源,推动磁铁技术的不断进步。同时,Eclipse Magnetics也关注可持续发展问题,致力于研发环保、高效的磁性产品。通过创新研发和可持续发展战略的实施,Eclipse Magnetics在电子行业中保持了领先地位,并为未来的发展奠定了坚实的基础。

请注意,以上内容仅为故事线索的概括描述,具体的故事细节和数据需要根据Eclipse Magnetics公司的实际情况进行补充和完善。

Cavium Networks公司的发展小趣事

随着消费者对家庭娱乐和智能生活的需求不断增长,Cavium Networks 敏锐地捕捉到了这一市场趋势。公司推出了面向消费者市场的无线显示解决方案 WiVu,利用最新的笔记本电脑技术如嵌入式 DisplayPort 和显示迷你卡(DMC),为多房间和交互式应用提供了高性能的 Wi-Fi 无线显示解决方案。WiVu 的推出不仅满足了消费者对便捷、高效、高质量的娱乐体验的需求,也引领了市场的新潮流,进一步巩固了 Cavium Networks 在电子行业中的地位。

Graseby Infrared公司的发展小趣事
按下正转启动按钮(如SB1),接触器KM1的线圈得电,KM1主触头闭合,电动机按L1-L2-L3的相序接通电源,实现正转。同时,KM1的常开辅助触头闭合自锁,保持电动机持续运转。
昆泰(CHRONTEL)公司的发展小趣事

1982年,Dennis Gillings博士在美国北卡罗莱纳州创立了Quintiles Transnational Inc.(昆泰)。成立之初,昆泰只是一家为药企提供数据服务的美国本土公司。凭借其独特的数据处理能力和对市场的敏锐洞察,昆泰迅速在行业内树立了良好的口碑。

ETL semiconductor公司的发展小趣事

AMD(Advanced Micro Devices)在半导体行业中的发展经历了一个从追赶到逆袭的过程。在英特尔的强大市场压力下,AMD通过不断创新和技术提升,逐渐在处理器市场上获得了一席之地。尤其是在游戏和高端计算领域,AMD的处理器凭借其出色的性能和性价比赢得了众多消费者的青睐。

Cantec Electronic Co Ltd公司的发展小趣事

在追求经济效益的同时,Cantec Electronic Co Ltd也积极履行社会责任,坚持绿色发展理念。公司投入大量资金进行环保设施的建设和改造,确保生产过程中的废弃物得到有效处理。同时,公司还积极研发环保型电子产品,推动整个行业的绿色转型。这一举措不仅提升了公司的社会形象,也为公司的可持续发展提供了有力保障。

问答坊 | AI 解惑

单片机控制GSM模块

我最近在做单片机控制GSM模块的实验,先做的是单片机通过串口与GSM模块连接,谁知道单片机通过串口发送什么数据可以发送短信呢? 希望有高手指点!!!…

查看全部问答>

wince u盘?FAT32?

尊敬的斑竹及各位大牛们好,小弟一直关注次论坛!现在想问个问题?我的wince5.0系统现在可以识别u盘了,但是如果是FAT32格式的u盘识别时间要1分半钟(有时候可能还长),如果是FAt格式的u盘很快就识别了时间大概是10秒左右,我已经测试了n遍都是这样 ...…

查看全部问答>

求助优龙BIOS,nand_boot_beg段分析!

我对汇编不是很熟悉,看论坛里面有几个DX搞过这个,所以想请教下: 情况是:用AXD调试,bios可以起来!烧写到nandflash中后,就不可以了,所以就是nand_boot_beg段有问题了, 没有将nandflash中的代码搬到ram中去! nand_boot_beg代码如下 nand ...…

查看全部问答>

委托开发工业机器人控制系统,有兴趣的请回复QQ79500116

委托开发工业机器人控制系统,有兴趣的请回复QQ79500116…

查看全部问答>

Windows ce 下的一个简单的驱动设计问题

我的设备的物理地址基址是0x3800 0000,映射成虚拟地址是0x9000 0000 和0x B000 0000 我设计的流接口驱动程序使用VirtualAlloc()函数、VirtualCopy()以及MmMapIoSpace()函数应该怎么映射地址?…

查看全部问答>

linux硬件环境搭建好,在开发板上交叉编译运行自己的程序,却显示/bin/sh:./hello not found.

小弟终于搭建好uboot+linux2.6+busybox的硬件环境,用nfs系统成功驱动。 我自己编了简单的c程序,测试运行情况。 我在linux主机用arm-linux-gcc编译后,复制到开发板根目录运行 却显示 /bin/sh: ./hello  not found 请问是交叉编译 ...…

查看全部问答>

关于COM口的问题

串口硬件资源的问题,它有个输入/输出范围是03F8-03FF,但是书上好象只说串口芯片8251A只有两个字节的范围,就是命令/状态字缓冲器和数据缓冲器呀,这这么解释呢?还有就是想弄明白输入/输出地址范围和内存范围,网卡也是IO设备,怎么会变成内存范围呢?…

查看全部问答>

congigure讲解

Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure脚本配置工具就是基础 ...…

查看全部问答>

求教M3高速AD采样的实现

本人菜鸟,请高手指点。有个M3(lm3s8962)小系统,要高速进行AD采样搜集,>=600K 采样频率。AD本身采样频率大于100MSPS,再加上SDRAM做数据缓冲。请问用M3能否实现?采用什么接口接受AD数据。SDRAM那里有什么要注意的?谢谢!…

查看全部问答>

如何实现ARM与DSP+FPGA通信

 在工业控制系统中,ARM,DSP,FPGA共在同一块板中,非常常见,怎样合理安排上面资源,请教大家?…

查看全部问答>