[原创] 【贝能高性价比ATSAMD51评估板】基于MHC+MDK开发

qinyunti   2022-11-28 23:43 楼主

前言

之前我们介绍了MDK和MPLAB开发环境的搭建。MPLAB是官方工具链,支持图形化配置源码等,但是IDE使用上体验不是很好。而MDK是大家比较熟悉的,而且仿真调试用户体验不错,很多时候我们希望能统一开发环境,而使用通用的MDK等。

这里我们有一个折中的方案,使用MHC配置模板工程,配置基本的外设资源,再使用MDK进行仿真调试开发。

 

我们上一篇讲解了MPLAB开发环境安装,有讲到将mhc下载到了

C:\Users\qinyunti\Harmony3\mhc

也可以直接从git仓库下载

https://gitee.com/Microchip-MPLAB-Harmony/mhc

 

 

mhc工具可以单独使用。

 

进入该文件夹运行runmhc.bat

image-20221128234309-1.png  

 

创建配置

File -> New configuration

按如下配置

image-20221128234309-2.png  

 

image-20221128234309-3.png  

image-20221128234309-4.png  

 

 

配置编译器

image-20221128234309-5.png  

时钟配置

原理图可以看到使用外部12MHz晶振,用的是XOSC1

image-20221128234309-6.png  

image-20221128234309-7.png  

 

基本的时钟路径如下

XOSC1->FDPLL200Mn->GCLK->MCLK

image-20221128234309-8.png  

 

配置外部晶振如下

image-20221128234309-9.png  

 

 

从手册可以看到MCLK最大120MHz,FDPLL最大200MHz

按如下配置得到最大120MHz主频

image-20221128234309-10.png  

 

image-20221128234309-11.png  

 

其他外设时钟等配置按需配置

image-20221128234309-12.png  

滴答定时器

image-20221128234309-13.png  

 

配置串口

从原理图可以看到,调试串口用的是S2

image-20221128234309-14.png  

 

添加串口

image-20221128234309-15.png  

配置参数如下

image-20221128234309-16.png  

 

添加标准输入输出

image-20221128234309-17.png  

将标准输入输出映射到UART

 

image-20221128234309-18.png  

 

生成工程

保存工程

image-20221128234309-19.png  

 

image-20221128234309-20.png  

 

打开工程

生成的工程位于demo\firmware\default.KEIL

打开demo.uvprojx即可

 

再按照之前创建MDK工程介绍的配置仿真器。

 

就可以直接仿真运行了。

 

Main函数中添加一句

SYSTICK_TimerStart(); 启动滴答定时器

printf("Hello Burnon ATSAMD51 EVK");

 

这里串口的引脚不知道为什么没有初始化,手动配置下

    PORT_REGS->GROUP[1].PORT_PINCFG[24] = 0x1U;

    PORT_REGS->GROUP[1].PORT_PINCFG[25] = 0x1U;

PORT_REGS->GROUP[1].PORT_PMUX[12] = 0x33U;

 

连接串口可以看到打印信息

int main ( void )

{

    /* Initialize all modules */

    SYS_Initialize ( NULL );

  SYSTICK_TimerStart();

    PORT_REGS->GROUP[1].PORT_PINCFG[24] = 0x1U;

    PORT_REGS->GROUP[1].PORT_PINCFG[25] = 0x1U;

    PORT_REGS->GROUP[1].PORT_PMUX[12] = 0x33U;

printf("Hello Burnon ATSAMD51 EVK");

    while ( true )

    {

        /* Maintain state machines of all polled MPLAB Harmony modules. */

        SYS_Tasks ( );

    }

 

    /* Execution should not come here during normal operation */

 

    return ( EXIT_FAILURE );

}

 

image-20221128234309-21.png  

修改工程

File -> Open Configuration

打开\firmware\src\config\default\default.prj重新配置即可

 

 

总结

本文完成了基本的Demo,具备定时器,printf打印基本的功能,后面就可以基于此进行开发。

我们借助HDC自动生成MDK工程代码,然后使用MDK进行仿真调试,结合两者进行开发更加高效。

 

 

 

 

 

 

回复评论 (3)

玩了两次mhc,觉得有点乱有点复杂,没有stm32cube和nxp的好用。而且mplab现在用netbeans做开发,太特立独行了。

默认摸鱼,再摸鱼。2022、9、28
点赞  2022-11-29 09:13
现在很流行图形化配置工具呀。
点赞  2022-12-4 20:25

用的MPLAB X 


MPLAB XC


和Harmony V3


编译烧录后


用串口助手


看不到


点赞  2022-12-18 18:21
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复