Infineon 图形化配置软件Dave4使用-针对XMC系列(一)

1.   引言

随着电子技术的快速发展,基于微控制器的电子产品以其体积小、功耗低、功能强大、成本低廉等优势得到广泛的应用。目前微控制器品牌种类繁多,但其开发方法大同小异,需要开发人员在使用之前首先熟悉其处理器架构、寄存器定义等。对于功能复杂、片上外设资源丰富的控制器来说这一工作非常的繁琐艰巨,往往占用开发人员较长的时间,从而影响产品的开发周期。所以很多半导体厂商都推出了图形化编程软件,使用图形化编程,快速完成控制器的资源分配和寄存器配置,上手简单方便,从而极大的缩短项目的开发周期。能够快速进入应用软件设计, 缩短项目的开发周期。 

本文介绍的是基于XMC系列微控制器,如何使用Infineon推出的图形化配置软件DAVE4进行开发,以使用CCU8配置死区可控的互补pwm为例。


2.   Dave4概述
Dave4是Infineon推出的图形化编程IDE,是一个基于Eclipse的免费的集成式开发环境,集成ARM GNU编译器,它具备源代码编译和管理功能,包含免费编译器、免费调试器和免费闪存加载器。
其最具特色的功能是图形化配置工具,集成有多种可视化配置的外设及功能APP库, 通过调用APP库方式, 可方便地完成系统初始化或算法配置,可以针对自己的项目选择所需要的外设和应用的DAVE Apps,进行可视化配置之后,即可自动生成配置代码和功能函数。然后用户即可集中精力开发自己的控制功能软件,生成的代码可以通过API的形式进行调用,并且提供有详细的介绍文档。

3.  XMC1000系列微控制器介绍
 XMC1000微控制器是英飞凌在工业自动化、数字电源转换和电子控制领域开辟诸多全新应用。XMC1000采用ARM Cortex-M0处理器,具备针对目标应用精心定制的全面外设功能。目标应用包括:工业自动化领域的执行器、用于控制LED灯和多相电机的数字电源转换,以及对割草机、锯齿机或发电机等配备的小型内燃机进行电子控制。

本文使用的XMC1400其时钟周期为48MHz,在XMC1400中,PWM定时器和AD转换器等控制器外设的重要元件也能以倍频运行,即96MHz。XMC1400微控制器系列产品具有四个CCU定时器模块(两个CCU4和两个CCU8模块),因而有多达16个独立的定时器,可以用于实时产生PWM。而本文主要讲的就是如何用Dave4的图形化配置工具来快速配置PWM,包括配置过程和部分问题。

 
4.  Dave4 图形化配置互补PWM

4.1  添加PWM_CCU8 App

1. 在APP Dependency Tree那选择Add New App

2. 在弹出页面的Search filter中输入PWM,选择PWM_CCU8模块,然后单击Add

3.成功后出现以下界面

4.2  配置PWM参数

1.在“General Settings”选项卡中,我们可以看到当前CCU8时间片的的时钟频率为主频48MHz的倍频96MHz,在此界面可以配置PWM模式、占空比、频率等。我们选择计数模式为边沿对齐。“Start during initialization”复选框可以不选中。



2.在“External Event Settings"”选项卡中,可以为事件0选择“外部启动”,在“外部启动”组中选择同步启动,可以将ccu8_global_start信号连接到相应的事件。可以设置触发边缘,选择启动定时器或清除并启动定时器之间的功能控件。此次我们用不到外部事件控制只做介绍。



3.在“Signal Settings”选项卡中,可以配置死区时间、PWM极性等,此处我们启用并配置通道1信号所需的死区时间为3000ns。值得注意的是,在此App中无法配置死区预分频值,在下文中会详细介绍并讲解如何解决。



4.在"Timer Event Settings"中,我们可以配置触发中断,此处我们不需要。

5.在“Pin Setting”中,使能通道1直接和反向输出。另外可以配置引脚的模式,在XMC4000系列中,还可以配置驱动强度。


4.3  分配PWM输出引脚

在配置完成后,我们可以直接右键点击PWM_CCU8 APP选择manual pin allocator选择想要的引脚。

也可以点击Pin Mapping界面,进行图形化分配引脚

4.4  编译下载
在完成配置工作后,点击工具栏的Generate Code按钮,DAVE软件会自动根据APP的配置信息,生成相应的源码库,在Dave下的Generated文件夹下能够看到这些源码。在下载到控制器之后,就可以测量到一对互补带死区的PWM了。

5.  PWM APP死区配置存在的问题

       在PWM的控制中,死区是一个比较重要的参数,但是在开发过程中,我发现PWM_CCU8 app中死区时间的配置是有点僵硬的,在pwm频率较高的情况下,比如1MHz,一个周期只有1us,此时死区时间依旧可以设置为1us以上,并不冲突。
       因此在死区时间的控制上,还是推荐使用Infineon提供的对应库函数,包括(XMC_CCU8_SLICE_SetDeadTimePrescaler();XMC_CCU8_SLICE_SetDeadTimeValue();XMC_CCU8_SLICE_ConfigureDeadTime();)
       另外也可以使用APP CCU8_SLICE_CONFIG来生成PWM,此app可以更为详细的图形化配置每个寄存器,在后续的文章中会介绍使用CCU8_SLICE_CONFIG来实现PWM,定时器等功能。

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论