• 1
    回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

【你购物我买单】+KIT_PSC3M5_EVK高分辨率定时器使用

一、PSC3M5介绍

25年初,英飞凌扩大了其PSOC产品阵容,推出了PSOC Control C3产品线,搭载Arm Cortex M33内核,主频高达180MHz,继承DSP、FPU及CORDIC加速器,为高性能实时控制提供了足够的算力,其主要定位也在电机控制和功率转换应用。

目前主推的为入门级和主流级产品线,性能级产品线据介绍还在研发中。

本次你购物我买单活动选择了英飞凌的KIT_PSC3M5_EVK开发板,使用主流产品线PSC3M5做为板载MCU,具体型号为PSC3M5FDS2AFQ1。模拟方面,集成了高性能可编程模拟子系统HPPASS,支持12bit高达12Mbps的ASR ADC,支持16个通道,每个通道都配备独立的采样保持器。数字方面,支持16个16bit的TCPWM,4个32bit的HR-TCPWM,支持输出小于80ps精度的高分辨率PWM。通信接口方面,最大支持6个串行通信模块,每个模块都可以任意配置为SPI、UART、IIC,同时支持两个CAN-FD接口。

下面是KIT_PSC3M5_EVK开发板的实物图,内含开发板、包装盒、typec数据线、跳线。

对于开发板,板载KitProg3仿真器,支持typec和DC供电,电位器等外设资源,同时上面还支持多种外扩接口,包括英飞凌的Shield2Go、MIKROE的mikroBUS、Arduino接口、扩展接口。针对HRPWM,板载两个SMA接口将信号引出,方便测试,但是未焊接。

 

二、PSC3M5的TCPWM介绍

针对PSC3M5的TCPWM架构,从手册中可以知道,其主要分为三个Group,其中Group 0只支持四个32bit的HR-TCPWM,也即HRPWM主要通过这四个通道输出。Group 1支持八个16bit的TCPWM,一个运动接口模块MOTIF只在Group 1里被支持,可以工作在正交解码、霍尔传感器等四种模式。Group 1支持八个16bit的TCPWM。

对于使用上面的特性,英飞凌针对每种特性开发了对应的外设驱动,即TCPWM driver。但是需要注意,目前TCPWM driver主要包含三个版本,每个版本特性不一样,针对的器件也不一样。

其中针对PSOC C3主要关注TCPWM版本3,当然,选择官方推荐的ModusToolbox开发环境是最省心的方式,支持PSOC C3的各种设备,并且TCPWM驱动版本和BSP也都默认适配好。

 

三、使用高分辨率定时器生成HRPWM

对于ModusToolbox开发环境的搭建,英飞凌官方有相应的教程参考,直接开始程序部分。

由于PSOC C3的demo里面没有直接针对HR-TCPWM的例程,选择出厂例程进行研究。首先需要选择对应的BSP

接着在选择应用栏里面选择官方提供的例程,这里选择OOB_DEMO,并重新命名工程名字为PSC3M5_OOB_DEMO。由于ModusToolbox是从github上拉取程序的,有时会遇到列表里面没有demo的情况,多刷新下网络或者科学上网。

至此,OOB_DEMO便导入到工程列表中。其main函数中主要完成BSP初始化、GPIO初始化并打开中断、UART初始化并打开接收中断,最后使能全局中断。在for循环中,初始情况下串口没有接收到字符,会自动循环运行main_helloworld程序。

OOB_DEMO中共提供了四个示例程序,第一个是main_helloworld,主要是点灯;第二个是main_gpio_interrupt,主要是通过板载按键产生GPIO中断,进一步控制LED;第三个是main_sar_adc,主要是通过片上ADC来读取板载电位器的值;最后一个是main_hrpwm,主要是通过HR-TCPWM生成高分辨率定时器。

main_hrpwm函数中主要完成对TCPWM Group 0 Counter 0的初始化,并设置ADC转换,最后打印出转换结果。

对于占空比修改的逻辑,放在了串口接收中断中,当收到指定字符后,控制变量对比较值进行修改,最后通过函数重新设置比较值。

对程序进行编译下载后,通过串口发送指定字符,可以看到HRPWM的占空比在实时发生变化,同时可以通过修改整数和小数部分进行占空比的精细调节。

四、试用总结

感谢电源网和得捷电子带来的“你购物我买单”活动,可以让工程师们有机会体验到各种大厂开发板,本次我也有幸体验到了来自英飞凌的新产品,上次使用HRPWM还是在ST的G474上面,希望后面学习PSC3M5的HRPWM会有更多的收获!

全部回复(1)
正序查看
倒序查看
01-16 11:46

看起来高大上的板子

0
回复