0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【中科昊芯Start_DSC28034PNT湖人开发板试用体验】DSC28034PNT片上系统时钟及中断向量初始化

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-11-18 16:37 次阅读

本文来源电子发烧友社区,作者:jf_55236000, 帖子地址:https://bbs.elecfans.com/jishu_2292645_1_1.html

在使用一款新的MCU时,首先要做的事情就是要配置好芯片的系统时钟及中断向量,这样才能让MCU的基本内核跑起来,看了DSC28034PNT的官方例程,DSP2803x_SysCtrl.c文件中基本已经将各种系统时钟模式配置的很全面详细了,通过调用配置好的函数,就可以完成自己想要的系统时钟模式配置,由于官方例程是将片上内部12Mhz时钟通过PLL倍频10倍成120Mhz作为系统时钟,现在我们将其改为使用外部10Mhz晶振通过PLL倍频12倍成120Mhz作为系统时钟,具体配置代码如下:


/******************************************************************

*函数名:void SystemInit(void) *参 数 :无 *返回值:无 *作 用 :初始化DSP片上外设 ******************************************************************/ void SystemInit(void) { DisableDog(); // Disable the watchdog


(*Device_cal)(); // Oscillator calibration values XtalOscSel(); // SelectExternal CRYSTAL oscillator as Clock Source InitPll(DSP28_PLLCR, DSP28_DIVSEL); // Initialize the PLL control InitPeripheralClocks(); // Initialize the peripheral clocks InitFlash(); // Initializes the Flash Control registers InitPieCtrl(); // Initializes the PIE control registers IER = 0x0000; // Disable CPU Interrupt and Flag IFR = 0x0000; InitPieVectTable(); // Initializes the PIE vector table InitCpuTimer(); // Initializes the Timer

}

首先关闭看门狗,防止在喂狗之前系统复位,然后打开并选择外部10M晶振作为系统PLL的输入时钟,通过修改宏定义设置DSP28_PLLCR为12,DSP28_DIVSEL为3,PLL将10M晶振时钟倍频10倍分频1倍成120Mhz作为系统时钟,然后再打开各种用到的外设的时钟,并根据不同的系统时钟频率初始化Flash访问等待时间,然后再关闭PIE中断和系统总中断,并清除所有中断的中断标志位,上面所有配置函数除了InitCpuTimer()为自己配置的,其他均为调用官方驱动库。

InitCpuTimer()为初始化一个定时器,计数器每1us减1,计数周期为1s中,后序将利用这个定时器测量一些函数或算法的执行时间,以评估DSC28034PNT的运算性能,InitCpuTimer()的初始化代码如下:


/******************************************************************

*函数名:void InitCpuTimer(void) *参 数 :无 *返回值:无 *作 用 :初始化定时器 ******************************************************************/ void InitCpuTimer(void) { //==========CPU Timer 0=========================// CpuTimer0Regs.PRD.all = 1000000; // Initialize timer period to 1s: CpuTimer0Regs.TPR.bit.PSC = 120; // Initialize pre-scale counter to divide by 1 (SYSCLKOUT): CpuTimer0Regs.TPR.bit.TDDR = 120; CpuTimer0Regs.TCR.bit.TSS = 1; // Make sure timer is stopped: CpuTimer0Regs.TCR.bit.TRB = 1; // Reload all counter register with period value: CpuTimer0Regs.TCR.bit.TIE = 0; // 0 = Disable/ 1 = Enable Timer Interrupt CpuTimer0Regs.TCR.bit.TSS = 0; // Start CpuTimer0 }

不知道写啥,暂时先写这么多

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 中科昊芯
    +关注

    关注

    5

    文章

    79

    浏览量

    5139
  • 开发板试用
    +关注

    关注

    3

    文章

    301

    浏览量

    2033
收藏 人收藏

    评论

    相关推荐

    有奖丨米尔 瑞微RK3576开发板免费试用

    米尔与瑞微合作发布的新品基于瑞微RK3576应用处理器的MYD-LR3576开发板免费试用活动来啦~~米尔提供了7块价值849元的MYD-LR3576
    的头像 发表于 11-12 01:00 103次阅读
    有奖丨米尔 瑞<b class='flag-5'>芯</b>微RK3576<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>

    【龙芯2K0300蜂鸟试用】开箱体验

    本帖最后由 ele2022 于 2024-8-13 19:54 编辑 首先感谢电子发烧友和龙芯中科提供的试用机会。 今天开箱体验龙芯中科的一款2K0300蜂鸟开发板。龙芯2K03
    发表于 08-12 19:59

    ESP32S3开发板无法初始化是怎么回事?

    我使用的是ESP32S3开发板开发环境是Arduino IDE,在测试SimpleFOC 的 InlineCurrentSense时,无法初始化 在执行到 while
    发表于 07-01 06:11

    初始化IO口为外部中断线的时候,最先初始化的会被后初始化的覆盖掉为什么?

    初始化IO口为外部中断线的时候,比如GPIOA6与GPIOB6先后初始化为外部中断,最先初始化的会被后
    发表于 05-14 08:26

    PNT-SG3FS全球导航卫星系统模块数据表

    电子发烧友网站提供《PNT-SG3FS全球导航卫星系统模块数据表.pdf》资料免费下载
    发表于 05-06 10:33 0次下载

    MCU单片机GPIO初始化该按什么顺序配置?为什么初始化时有电平跳变?

    GPIO初始化时有时钟配置、模式配置、输出配置、复用配置,那么在编写初始化代码时,到底该按什么顺序执行呢?如果顺序不当那初始化过程可能会出现短暂的电平跳变。
    的头像 发表于 02-22 11:07 1405次阅读
    MCU单片机GPIO<b class='flag-5'>初始化</b>该按什么顺序配置?为什么<b class='flag-5'>初始化</b>时有电平跳变?

    【先楫HPM5361EVK开发板试用体验】(原创)5.手把手实战AI机械臂

    工作。 安全措施:考虑到机械臂操作,务必实施必要的安全措施,例如限位开关、紧急停止功能等。 框架概述 初始化硬件:首先,您需要初始化开发板的硬件资源,包括三组四自由度机械臂、红外线传感器和可能
    发表于 02-06 10:28

    请问PSOC4的中断向量表在哪查看?

    如题,PSOC4的中断向量表在哪查看?谢谢
    发表于 02-06 06:22

    什么是单板机的监控程序?

    初始化程序:用于设置单片机的初始状态,包括初始化寄存器、设置中断向量、启动时钟等。   主循环程序:监控程序的主程序,不断循环执行,包
    的头像 发表于 02-02 17:15 1304次阅读
    什么是单板机的监控程序?

    什么是中断向量偏移,为什么要做中断向量偏移?

    当MCU中有两段或以上程序的时候(第一个程序为用户BootLoader程序,其他的为APP程序,这个在前期视频《什么是ISP?什么是IAP》中有讲过),APP程序中都需要做中断向量偏移,那么什么是中断向量偏移,为什么要做中断向量
    的头像 发表于 01-30 09:47 1566次阅读
    什么是<b class='flag-5'>中断向量</b>偏移,为什么要做<b class='flag-5'>中断向量</b>偏移?

    DSC测熔点的图谱怎么分析?

    DSC
    南京大展检测仪器
    发布于 :2024年01月29日 11:44:51

    M453VG6AE中断向量表起始地址是多少呢?一共有多个中断向量呢?

    芯片:M453VG6AE 这款芯片中断向量表起始地址是多少呢?一共有多个中断向量呢?
    发表于 01-17 08:13

    自动初始化机制原理详解

    自动初始化机制是指初始化函数不需要被显式调用,只需要在函数定义处通过宏定义的方式进行申明,就会在系统启动过程中被执行。这篇文章就来探索一下其中的奥秘, 简单理解其原理!
    的头像 发表于 12-16 09:33 958次阅读
    自动<b class='flag-5'>初始化</b>机制原理详解

    水下PNT体系信息架构及关键问题

    随着北斗卫星导航系统的建设和发展,我国已形成以北斗系统为代表的天基PNT系统PNT服务也由此带来了革命性的变化。但由于卫星导航
    的头像 发表于 12-10 09:52 1224次阅读
    水下<b class='flag-5'>PNT</b>体系信息架构及关键问题

    【爱派 Pro 开发板试用体验】开箱测试

    的各种纸盒包装结实很多。 打开后发现,其中包括一个开发板和电源。还有一个口袋里面有个螺母,不知道什么用途,我现在把它安装在电源的接头上了,好像也不是特别合适。 开发板的各种接口似乎都是双份,包括
    发表于 11-20 22:09