基于恩智浦MPC5744P的电机FOC控制中电流的采样

发布时间:2023-05-24  

摘要

本篇笔记主要记录基于恩智浦MPC5744P的电机FOC控制中电流的采样。


准备工作

  1. 安装S32DS for PA, 因为我们在S32DS下开发MPC5744P。

  2. 安装S32DS 的SDK, 我们使用最新版3.0.3


ADC

恩智浦的MPC5744P,含有的ADC子模块有四个,我们使用ADC0的通道0,和ADC1的通道0来做电流的同步采样,通过PWM触发CTU,CTU事件触发ADC电流采样,在CTU的中断中去获取电流的ADC值,经过滤波后就可以做电流算法的闭环控制,这个芯片的ADC 有两种模式。

图片

图片

我们使用电机控制模式,使用内部集成的CTU去触发ADC转换。也可以采用etimer去触发ADC,这次我们采用CTU触发,配置ADC,CTU时钟为80M.

图片

CTU

CTU的利用可以减少CPU的负担,具体的描述可以参考手册下面的描述

图片

CTU框图

图片

图片

因为做电机控制,电流的同步采样非常关键,根据这个框图可以看到,PWM的重装载可以作为触发CTU,CTU产生ADC命令请求去ADC转换。CTU操作的模式有触发模式和顺序模式。我们采用触发模式。

这里需要注意的是CTU的FIFO是不同的,0和1用来做快速采样,而2和3用来配置作为低速采样。

图片

配置和开发

在S32DS开发环境中配置CTU和ADC,

图片

图片

ADC配置

图片

更多参数的配置请参考收据手册,这个需要认真阅读手册配置,可以参考例程。配置完成后,生成驱动,如果没有错的话,我们这里需要完成CTU的中断去获取ADC值。


驱动添加

需要初始化ADC和CTU,添加相应的代码,使用生成的配置结构体

图片

然后还需要完成CTU的中断,

图片

转换结果的获取有两种API, 可以根据自己需要选择,第一种API

/ FUNCTION *********************************************************************


  • Function Name : CTU_DRV_GetConvData

  • Description : This function returns the conversion data result aligned according

  • to the alignment parameter.


  • Implements : CTU_DRV_GetConvData_Activity

  • END**************************************************************************/

uint16_t CTU_DRV_GetConvData (const uint32_t instance, const uint32_t fifoIdx, ctu_data_align_t alignment)

第二种API

/ FUNCTION *********************************************************************


  • Function Name : CTU_DRV_GetConvResult

  • Description : This function gets the full conversion result information, with

  • the conversion data aligned according to the alignment parameter.


  • Implements : CTU_DRV_GetConvResult_Activity

  • END**************************************************************************/

void CTU_DRV_GetConvResult (const uint32_t instance, const uint32_t fifoIdx, const ctu_data_align_t alignment, ctu_conv_result_t * const result)

两种都可以正确获取到ADC值,获取到原始值以后还需要做一些滤波来处理,这些流给大家去实现,因为你的应用不一样,可能采取的滤波算法也不一样。有时候还需要采用多种滤波算法实现对不同干扰的抗扰能力。


测试

添加完代码,没有问题后就可以编译下载到板子上调试观察,可以看到,正确实现了电流的多路采样,可以采集多组值,测量下这里就给大家简单观察下打断点采集到的结果。

图片

同时CTU还有其他一些触发源,大家也可以实验一下,也可以软件触发。但在电机控制中,为了达到同步和快速的电流采样,都是用触发同步采样,提供给算法实施闭环控制。有兴趣的可以多研究研究。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>