0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CW32L012小机器人的电机控制

jf_03820826 来源:jf_03820826 作者:jf_03820826 2025-11-21 13:18 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

电机作为现代电子系统的核心执行部件,是实现 “电能 - 机械能” 转换的关键载体,广泛渗透于工业自动化、智能机器人消费电子、交通工具等众多领域。从精密设备的微小型驱动到工业生产线的大功率调速,电机的控制性能直接决定了系统的响应速度、运行精度、能耗效率与稳定性。这里分享CW32L012小机器人的正反转、调速的电机控制

电机的正反转

wKgZO2kf9heANFgGAAMz5KhSlR4411.jpg

从配套的开发板资料介绍中可以知道,这是电机的驱动芯片RZ7899

从立创商城下载该芯片的数据手册https://item.szlcsc.com/93566.html

wKgZPGkf9heAXK_-AAY4QhccHvc450.jpg

打开手册看到引脚定义和真值表

wKgZO2kf9hiAQETWAABP9kx1JPg733.jpg

wKgZPGkf9hiAM5epAAAwNEnsZsI770.jpg

在根据资料中主板的电路原理图:

wKgZO2kf9hmAXFgyAACDw5k1TLo156.jpg

得到正反转的控制逻辑,需要两个IO口,通过拉高拉低两个IO口形成不同的逻辑,其输出也会有对应变化,就实现了电机的正反转控制

电机的调速

采用PWM调速,该方式是通过开关管不断的开关电源,形成周期固定,占空比可调的矩形波,具有成本低,稳定性高,简单高效等优点

下面是资料源码中的PWM和正反转IO口初始化代码:

void Motor_Init(void)

{

__SYSCTRL_GPIOB_CLK_ENABLE();

__SYSCTRL_GTIM3_CLK_ENABLE();

PB04_AFx_GTIM3CH3();

PB05_AFx_GTIM3CH4();

GPIO_InitTypeDef GPIO_Initstructure;

GPIO_Initstructure.IT=GPIO_IT_NONE;

GPIO_Initstructure.Mode=GPIO_MODE_OUTPUT_PP;

GPIO_Initstructure.Pins=GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_3 | GPIO_PIN_12;

GPIO_Init(CW_GPIOB,&GPIO_Initstructure);

GTIM_InitTypeDef GTIM_InitStruct = {0};

GTIM_InitStruct.AlignMode = GTIM_ALIGN_MODE_EDGE;

GTIM_InitStruct.ARRBuffState = GTIM_ARR_BUFF_EN;

GTIM_InitStruct.Direction = GTIM_DIRECTION_UP;

GTIM_InitStruct.EventOption = GTIM_EVENT_NORMAL;

GTIM_InitStruct.Prescaler = 0;

GTIM_InitStruct.PulseMode = GTIM_PULSE_MODE_DIS;

GTIM_InitStruct.ReloadValue = 1000 - 1;

GTIM_InitStruct.UpdateOption = GTIM_UPDATE_DIS;

GTIM_TimeBaseInit(CW_GTIM3, >IM_InitStruct);

GTIM_OCModeCfgTypeDef GTIM_OCModeCfgStruct = {DISABLE, DISABLE, 0};

GTIM_OCModeCfgStruct.FastMode = DISABLE;

GTIM_OCModeCfgStruct.OCMode = GTIM_OC_MODE_PWM1;

GTIM_OCModeCfgStruct.OCPolarity = GTIM_OC_POLAR_NONINVERT;

GTIM_OCModeCfgStruct.PreloadState = DISABLE;

GTIM_OC3ModeCfg(CW_GTIM3, >IM_OCModeCfgStruct);

GTIM_OC4ModeCfg(CW_GTIM3, >IM_OCModeCfgStruct);

GTIM_OC3Cmd(CW_GTIM3, ENABLE);

GTIM_OC4Cmd(CW_GTIM3, ENABLE);

GTIM_Cmd(CW_GTIM3, ENABLE);

GTIM_SetCompare3(CW_GTIM3, 0);

GTIM_SetCompare4(CW_GTIM3, 0);

Car_Stop();

}

配置GTIM3定时器为输出比较模式,后续通过调整CCR的值来更改占空比来实现调速,配合上面提到的驱动芯片,就实现了电机的正反转和调速功能

电机的正反转、调速源码

void GTIM1_SetCompare1(uint16_t value)

{

value=(value>=1000)? 1000:value;

GTIM_SetCompare3(CW_GTIM3,value);

}

void Motor_Left_Run(int16_t value)//左电机

{

int16_t compare;

if(value>0)//正转

{

PB03_SETLOW();

compare=750value/900+250;//将外部遥控更改的速度值100-900线性缩放到占空比250-1000

}

else if(value<0)//反转

{

compare=750value/900-250;//将外部遥控更改的速度值100-900线性缩放到占空比250-1000

compare=1000+compare;

PB03_SETHIGH();

}

else //停止

{

PB03_SETLOW();

compare=0;

}

GTIM1_SetCompare1(compare);

}


审核编辑 黄宇

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

    关注

    213

    文章

    31494

    浏览量

    223749
  • 电机控制
    +关注

    关注

    3601

    文章

    2180

    浏览量

    279177
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32L012的FOC电机驱动的运放电路设计解析

    CW32L012由于有两个内置运放,所以在设计FOC电机驱动时,可以考虑使用内置运放做单/双电阻的电流采样。 以下图B相为例,运放及外围电路构成同相放大电路,由于相电流存在正负方向,所以需要增加偏置
    的头像 发表于 04-28 15:00 440次阅读
    <b class='flag-5'>CW32L012</b>的FOC<b class='flag-5'>电机</b>驱动的运放电路设计解析

    CW32L012电压电流表设计思路

    CW32L012C8T6 定位为 电机控制、电源管理、智能仪表、工业传感器 等领域的高性价比解决方案,尤其适合需要 高精度模拟信号处理 + 复杂数字控制 的混合信号系统, ARM
    的头像 发表于 03-31 21:32 650次阅读

    Neway电机方案在机器人技术方面的优势

    ,确保电机控制系统在长时间运行中不易出现故障。五、高效能与低损耗,提升系统能效背景:工业机器人关节需高精度、高响应速度的电机控制,电源模块需
    发表于 03-30 09:39

    FOC控制中如何利用芯片内部的运放设计电流采样电路?

    最近开发电机控制的项目,我开始使用最新的CW32L012做主控,CW32L012作为混合信号MCU,相比于传统MCU控制,集成度较高,性能当
    的头像 发表于 01-05 16:50 2985次阅读
    FOC<b class='flag-5'>控制</b>中如何利用芯片内部的运放设计电流采样电路?

    CW32L012与STM32G431的CORDIC三角函数运算性能对比

    本文对比均为作者实测,结果仅供参考,可附代码供有意者评估~ STM32G431是STM32家族中较新的产品。CW32L012也是武汉芯源半导体最新推出的混合信号MCU,让我们深入分析基于各自芯片
    的头像 发表于 12-29 15:55 2807次阅读
    <b class='flag-5'>CW32L012</b>与STM32G431的CORDIC三角函数运算性能对比

    CW32L012与STM32F103的三角运算性能对比

    ​  CW32L012和STM32F103在定位和性能上差异显著,在三角函数的运算性能上的对比亦非常直观。 一、 硬件架构对比(性能基础) 芯片型号 CW32L012C8 STM32F103C8
    的头像 发表于 12-29 15:32 2535次阅读
    <b class='flag-5'>CW32L012</b>与STM32F103的三角运算性能对比

    Infineon移动机器人电机控制方案深度解析

    Infineon移动机器人电机控制方案深度解析 在当今科技飞速发展的时代,移动机器人在物流、生产、服务等众多领域的应用日益广泛。电机
    的头像 发表于 12-18 17:00 529次阅读

    CW32L012小型机器人控制评估板活动 四足机器人+智能小车 开箱评测

    CW32L012活动相关资料链接:https://dwi41yhz703.feishu.cn/wiki/B1Ihw31ebiX0vkkhQr2cINnkn1g 小型机器人+智能小车 主控板简介
    发表于 11-24 23:44

    **CW32L012****开发评估板的第一个程序**

    CW32L012****开发评估板的第一个程序 最近以15.99在CW32生态社区入手了这块CW32L012开发评估板,我迫不及待的烧录进电灯程序,看看这块板子是否是正常的,能否满足我后面的学习
    发表于 11-22 00:09

    使用芯源CW32的CW32L012开发评估板做了spi屏幕驱动

    CW32生态社区以极高的性价比入手了这块CW32L012开发评估板,开发板以底板、核心板、1.77寸TFT显示屏构成,所有的IO口都引出了排针,这点好评,使用杜邦线可以非常方便的连接其他模块。引脚
    的头像 发表于 11-21 11:34 814次阅读
    使用芯源<b class='flag-5'>CW</b>32的<b class='flag-5'>CW32L012</b>开发评估板做了spi屏幕驱动

    Arduino Uno l两轮自平衡机器人 电机驱动无输出求解

    Arduino Uno l两轮自平衡机器人 电机驱动无输出求解
    发表于 10-15 06:36

    CW32L011电机驱动电机控制开发板-硬件1

    CW32L011电机驱动电机控制开发板-硬件介绍 后面有软件分析
    的头像 发表于 08-12 14:20 4519次阅读
    <b class='flag-5'>CW32L</b>011<b class='flag-5'>电机</b>驱动<b class='flag-5'>电机</b><b class='flag-5'>控制</b>开发板-硬件1

    坚持继续布局32位MCU,进一步完善产品阵容,96Mhz主频CW32L012新品发布!

    CW32L012基于ARM® Cortex-M0+内核,主频高达96MHz,同时集成了CORDIC硬件单元、扩展算术运算单元(EAU),可以提供部分数学函数、算术运算的硬件加速,特别适用于电机控制、电源、计量、信号处理等应用。
    的头像 发表于 07-16 16:34 1551次阅读
    坚持继续布局32位MCU,进一步完善产品阵容,96Mhz主频<b class='flag-5'>CW32L012</b>新品发布!

    坚持继续布局32位MCU,进一步完善产品阵容,96Mhz主频CW32L012新品发布!

    (EAU),可以提供部分数学函数、算术运算的硬件加速,特别适用于电机控制、电源、计量、信号处理等应用。 同时,CW32L012 是基于 eFlash 的单芯片低功耗微控制器,集成了双1
    发表于 07-16 16:32

    轮式移动机器人电机驱动系统的研究与开发

    【摘 要】以嵌入式运动控制体系为基础,以移动机器人为研究对象,结合三轮结构轮式移动机器人,对二轮差速驱动转向自主移动机器人运动学和动力学空间模型进行了分析和计算,研究和设计了自主移动
    发表于 06-11 14:30