产品展示 | 联系我们 您好,欢迎访问博亿堂byt98网址登陆/博亿堂平台怎么样-博亿堂娱乐直播下载,我们将竭诚为您服务!
20年专注设备技术研发 专注技术 专心质量 专业服务
全国咨询热线:13528138066
您的位置: 首页 > 产品展示
产品展示

无刷电机小车开发记录—PWM信号输入捕获驱动

时间:2023-09-23 06:31:52 来源:博亿堂byt98网址登陆 点击:1次

  下移植FOC,更倾向于使用RTThread的框架,所以各种传感器和驱动器的适配计划加到RTThread的驱动这边来做。FOC那边只移植SimpleFOC的核心算法即可。所以在正式移植FOC算法之前,还需要先搭建用到的底层驱动。

  今天就先整理一下读取磁编码器PWM信号的输入捕获驱动的移植记录。其实某些适配更好的BSP内的RTThread驱动库里面已经有了输入捕获驱动,但只是捕获了输入脉宽的时间,而我这里需要的是捕获PWM信号的占空比,也就对应了磁编码器探测到的电机位置。但大体功能类似,所以随便找一个类似的底层驱动进行一下修改和移植即可。

  我这里用的是赛卓电子的国产磁编码器芯片SC60228,详情请看其数据手册,主要特性如下:

  然后代码内容改动不大,主要改的是返回的数据除了脉宽时间还有一个周期时间,这样就可以计算输入PWM信号的占空比了。另外,原有的驱动上使用的是ringbuffer做了一个数据缓存,这样数据处理可以异步话,何时要说明时候把缓存内的数据全部读走即可。但各人考虑,我应用的场合是用这个信号来驱动无刷电机,这个PWM信号的输入频率也才1Khz,市面上大多数的无刷电机驱动,底层控制频率基本都达到了10Khz以上。

  所以我这里肯定不需要异步处理的,会直接用这个信号触发底层控制。而且控制效果还需要测试,如果转速上不去或者抖动厉害的话,可能还需要想办法插值细化或者改用SPI读取编码器数据(这也是怎么回事硬件上做了两种接口的原因,就是想去测试探索一些好玩的东西)。所以我这里是直接去掉了ringbuffer,加入了信号量。到时候上层开一个线程去等待这个信号量去跑FOC算法。头文件修改如下:

  C文件主要修改的是回调函数,把之前的数据加入ringbuffer的操作改成了释放信号量,其它地方的修改都是一些简单的适配,由于C代码较多,我这里就不都贴出来了,相信我们大家肯定会自己完成适配,甚至比我的还要适配的好。而我的代码,等我第一期的功能开发完了,会整体开源出来。C代码主要修改的回调函数如下:

  BSP驱动的适配稍微麻烦一点,如果大家能找到其它类似BSP内的相似驱动能够直接进行移植,那我这里简单找了一下并没找到,所以仿照RTT的驱动适配方式,自己适配了一下。主要实现要点就是开启每个Timer的CH0和CH1双通道对CI0或者CI1输入的PWM信号进行采样,一个捕获脉宽,一个捕获周期,从而得到占空比。剩下的就是一些向下调用GD32的驱动库API,向上适配RTT的驱动接口。同样,下面只给出主要的初始化代码和中断处理代码,其它的可自行实现或者关注我后续开源的代码。

  管理BSP驱动代码的Kconfig文件不再librares目录下,而是在board目录下。于是在“board/Kconfig”文件内的适当位置,仿照其它驱动加入如下代码:

  意思也最简单,我这里适配了6个PWM的输入捕获驱动,并且利用“select”语句,在BSP的驱动管理里面自动开启了RTT驱动里面的“RT_USING_PWM_INPUT_CAPTURE”选项。修改完上述代码后,就可以用menuconfig命令或者RTThreadIDE的RT-Thread Settings图形配置界面内进行配置了:

  目前只是实现了大概1S钟打印一次编码器位置,一圈的机械角度范围扩大到了0~10000(我用的是12位磁编码器,分辨率是4096,我这里统一归一化到了10000),终端输出如下:

  可以看到,慢慢向一个方向推动小车,两个编码器的变化规律是相反的,和实际的两个电机对向安装相匹配,实际使用的时候按照其中一个为基准,把另外一个编码器数据反向即可。

  只看其中一个轮子,输出频率改为原有的1Khz,输出值转换为浮点的角度值,可得到如下的测试曲线:

  静止不动,暂时也没有驱动电机,也就没有电机的电磁干扰,在次条件下测得的静态数据如下,静态稳定度在0.2度左右,比12位的最小测量精度0.088度大了二倍多一点:

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

  玩玩,不用网上的现有方案,一切从零开始自己做方案。硬件方案打算用GD32E503和EG2134栅极

  器经过优化,可与外部功率MOS一起工作晶体管,以实现更好的功率处理。NJM2266可以轻轻松松实现三相直流

  器】深入浅出讲解FOC算法与SVPWM技术 稚晖的个人站     写得很清晰机器人硬件三大核心部件(

  ,目前已能跑起来了,然后就是加入各种各样的传感器,使得她的功能更为丰富。 本次就谈谈做

  波一个循环中占的比例,类似交流电,不同占空比能控制实际电压输出大小。但是树莓派的

  ,我这里暂时只用脉冲引脚,所以只需用到PA6引脚以及该引脚的复用功能T3C1。 二、

  加速前进,减速后退运动。 三、硬件部分        本实验系统总体框图如图3.1所示,系统的电路原理图如图

  了电路板空间,而且还降低了系统成本。集成的保护功能提高了系统的稳健性和可靠性。 这就从另一方面代表着我们不需要去处理霍尔

  实验数据 一、写在前面的话 二、实验数据 三、思考总结 一、写在前面的话 在几年前,我在某宝上买了一斤直流

  在控制精度、效率、噪声等方面更具优势,但在系统的复杂性和成本方面,三相全波

  板组成的一种没有电刷和换向器的机电一体化产品。随着控制板的应用场景逐渐丰富,控制板

  暂未编写输出比较配置方法和原理当TAxCCTLn中CAP位为0时,此路定时器被选择为比较模式。比较模式用于在特定时间间隔生成

  晶体管、电力场效应晶体管、金属栅双极性晶体管IGBT模块、集成门极换流晶闸管及近年新

  目前已在航模、医疗器械、家用电器、电动车等多个领域得到普遍应用。本文主要介绍了五款

  ,替代LB11867,完全替代LB11961,完全替代IR2101系列

  控制系统中使用的问题,并对利用霍尔集成传感器进行了探讨。关键词:霍尔元件

  百亿联发科,登顶全球最大智能手机芯片商,2021年首发旗舰“天玑1200”5G芯片