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

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

3天内不再提示

CW32L012 AD\DA电压闭环控制实验

CW32生态社区 来源:CW32生态社区 2026-04-01 16:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

引言

嵌入式控制系统中,数模转换(DAC)与模数转换(ADC)是实现 “数字信号 - 模拟信号” 交互的核心环节,广泛应用于信号调理、电压调节、小型闭环控制等场景。对于低成本、低功耗的小型嵌入式项目而言,选择适配性强的主控芯片,并结合简洁的外围电路实现精准的信号控制,是兼顾成本与性能的关键需求。

本实验以 CW32L012 为主控核心,搭建由 10kΩ 电阻与 47μF 电容构成的 RC 滤波电路:以 MCU 的 DAC 输出(Vdac)作为 RC 电路的输入信号,采集经过 RC 电路平滑后的 ADC 电压(Vadc),并通过软件闭环控制算法,将 Vadc 稳定调节至预设的目标电压值。

本实验的开展,不仅可验证 CW32L012 在 “DAC 输出 - RC 调理 - ADC 采集 - 闭环控制” 链路中的功能可行性,还可加深PID在控制系统中的运用和理解,还能提供一套简洁、低成本的模拟信号闭环调节方案,为小型嵌入式系统中的电压精准控制、信号稳定输出等需求提供实践参考。

一、CW32L012C8T6主控

CW32L012 是武汉芯源半导体 (CW) 推出的 32 位低功耗 MCU,基于 ARM Cortex-M0 + 内核,主频高达 96MHz,集成64KB Flash和8KB RAM,专为需要高性价比和低功耗的应用设计。

1.1核心规格:

wKgZO2nLxC2AVfCpAABJHqzPH0Y327.jpg

1.2主要设计亮点与应用场景:

完整的信号链集成芯片集成了从模拟信号采集(ADC)、数字处理(MCU核心)到模拟控制输出(DAC和运放)的完整链路,可以说是一颗完整信号链混合信号MCU。这意味着在工业传感器、信号调理等场景中,可以减少甚至省去外部的模拟调理芯片,简化设计并降低成本。

硬件加速提升实时性能内置的CORDIC和EAU硬件加速单元是关键特色。在电机控制数字电源等需要快速进行三角函数、开方、除法运算的实时控制场景中,这些硬件单元能数十倍地提升计算速度,减轻CPU负担,实现更高效的控制算法。

兼顾性能与低功耗基于M0+内核和低功耗工艺,芯片支持Sleep和DeepSleep等低功耗模式。在DeepSleep模式下,功耗可降至微安(µA)级别,非常适合电池供电的物联网设备、便携式仪器等应用。

二、实验硬件及接线

2.1硬件与原理图:

wKgZPGnM2wKASPa6AAYkCqsqFvA932.png

wKgZPGnLxC6AIQDdAAAnYjYKqfA975.jpg

wKgZO2nLxC6AFbOTAAC_DJCmgto342.jpg

chaijie_default.png

wKgZPGnLxC-AJ12IAAMHy5dW2ao686.jpg

2.2硬件接线:

CW32L012主控板PA4--->RC滤波电路Vadc

CW32L012主控板PB0--->RC滤波电路Vdac

CW32L012主控板GND--->RC滤波电路GND

CW32L012主控板PA9--->串口模块的RX

CW32L012主控板PA10--->串口模块的TX

完整接线如图:

wKgZO2nM2yCAVfkfAASTTCX_-Mk763.png

wKgZO2nLxDCAC3UeAAsnojbQdPE203.jpg

三、实验软件

3.1项目框图:

wKgZPGnLxDGACC3CAAAjvPdePeY657.jpg

按键:作为人机交互输入单元,用于设置目标电压值,Kp,Ki,Kd;

Vdac:CW32L012 的 DAC 外设输出端,是 RC 滤波电路的输入信号源;

CW32L012:系统核心,负责接收按键指令、驱动 DAC 输出 Vdac、采集 Vadc 反馈信号、运行闭环控制算法,同时将数据通过串口上传、在 LCD 屏幕显示状态;

Vadc:RC 滤波电路的输出端,作为 CW32L012 的 ADC 采集输入,提供电压反馈信号;

LCD 屏幕:实时显示目标电压、当前 Vadc 实际值、Kp,Ki,Kd,输出电压Vdac等参数,直观呈现实验结果;

串口:用于将目标电压、当前 Vadc 实际值发送到上位机观察波形,直观感受数据变化趋势。

3.2闭环控制框图:

wKgZO2nLxDGAJ9sDAAAf_PRp4yE249.jpg

通过按键或者程序给系统设定一个目标电压值,然后PID计算实际与目标值之间的偏差,将计算结果作用到DAC模块输出电压作用到RC电路的输入端,此时RC电路的输出端电压会产生变化,再用ADC实时检测输出端的实际电压,重复进行上述流程,实现RC电路输出端电压的闭环控制。

3.3内部电压跟随器:

内部运算放大器的使用:

wKgZPGnLxDGAQPT7AAAkmjV1B7c605.jpg

为了降低IO口的输出阻抗,这里使用了CW32L012的内部运算放大器,并将产生DAC电压的IO口PB1接到了运放的同相输入端,将PB0接到了运放的输出端口,然后将其初始化为电压跟随器模式。

void OPA1_Init(void)
{
        __SYSCTRL_GPIOB_CLK_ENABLE();
        __SYSCTRL_OPA_CLK_ENABLE();
        AFx_OPA1OUT_PB00();
        OPA_InitTypeDef OPA_InitStr;
        OPA_InitStr.Bias=OPA_BIAS_1UA_36US;
        OPA_InitStr.InputN=OPA_INPUT_NONE;
        OPA_InitStr.InputP=OPA_INPUT_INP3;
        OPA_InitStr.PgaGain=OPA_PGA_GAIN2;
        OPA_InitStr.WorkMode=OPA_WORKMODE_FOLLOWER;
  OPA_Init(CW_OPA1,&OPA_InitStr);
        OPA_Start(CW_OPA1);
}

3.4 PID控制算法:

在这个 Vdac-Vadc 的电压闭环控制实验中,选择了增量式 PID:

减少电压波动

实验中,输出的执行器是DAC,其数字量范围为0~4095,并且将新的数字量写入DHR寄存器后,若无新值写入,DAC会持续输出上一次所写数字量对应的电压,即执行器具有保持功能,所以在此基础上选择了增量式PID,将每次的计算结果加上上一次的输出作为最终输出,这样DAC变化更平滑,电压波动小。

避免积分饱和

位置式 PID 需要持续累积积分项,若目标电压(设定值)突变(比如按键修改设定值)或偏差长期存在,易出现积分饱和(积分项过大导致控制量超出 DAC 输出范围),进而引发 Vdac 输出跳变、Vadc 超调严重。增量式 PID 的输出是 “控制量的变化量”,无积分项的累积,天然避免了积分饱和问题,调节过程更平缓,适配电压稳定控制中 “小步长、低超调” 的需求。

匹配 Vdac 的小范围调节特性

实验中,Vdac 的调节目标是让 Vadc 稳定在设定值(属于小范围、连续的电压校正),增量式 PID 输出的 “调节增量” 刚好适配这种场景 —— 每次仅微调 Vdac 的输出值,避免 Vdac 大幅跳变导致 RC 电路的电压变化跟不上,能让 Vadc 更平滑地趋近设定值。

#define Error_Scale 15
uint16_t pid_control(void)
{
        static float out_last=0;
        set_pid_para();//更新pid参数
        temper_pid.err=Error_Scale*(temper_pid.target-temper_pid.actual);//误差缩放指定倍数再进行计算
        temper_pid.out=temper_pid.Kp*(temper_pid.err-temper_pid.err_last)+
                       temper_pid.Ki*temper_pid.err +
                       temper_pid.Kd*(temper_pid.err-2*temper_pid.err_last+temper_pid.err_last_last);
        // 更新误差历史(前2次 → 前1次,前1次 → 当前)
        temper_pid.err_last_last = temper_pid.err_last;
        temper_pid.err_last =temper_pid.err;        

        float temp=out_last+temper_pid.out;
        temp=(temp>DAC_MAX)? DAC_MAX:temp;//输出限幅
        temp=(temp< 0)? 0:temp;
        out_last=temp;
        return temp;
}

四、实验现象

4.1 屏幕:与屏幕对应的变量含义:

wKgZO2nM2zOAVAdYAAVziRaMDc4156.png

wKgZO2nLxDKABVuYAAAbIzgXORU477.jpg

4.2 按键:

按键1(左):对光标所选中的参数进行加操作

按键2(中):对光标所选中的参数进行减操作

按键3(右):切换光标选择的内容

wKgZPGnM20yAJRU-AAVyibStUBA137.png

wKgZO2nM21WAJLJrAAClz3t9qDc679.png

4.3 串口:

使用VOFA+软件连接串口,CW32会将设定、实际电压(放大十倍),Kp,Ki,Kd几个参数打印到上位机,显示波形

wKgZPGnLxDSASj7uAAFR0ia4NK4449.jpg

4.4 PID参数整定:

4.4.1 P参数整定:

将 I D设为0,P设为10,输出响应小,达不到控制目标

wKgZO2nM23GABmeZAAF1r6tMPEk551.png

将 I D设为0,P增大到40,输出响应略微超调,仍达不到控制目标

wKgZPGnM23qAD0zBAAHMzydPGN0055.png

将 I D设为0,P增大到45,输出响应略微超调,仍达不到控制目标,此时P参数整定完毕

wKgZO2nM24mARB7HAAH6Y-jNx_w513.png

4.4.2参数整定:

将 D设为0,P设为45,I设为20,引入积分消除静差,此时积分作用小,静差消除慢

wKgZO2nM25aASEFyAAHMukCskjQ636.png

将 D设为0,P设为45,I增大到50,增强积分作用,,静差消除快,I整定完毕

wKgZO2nLxDaAaOdIAAGrfWJlpww422.jpg

4.4.3 D 参数整定:

引入微分作用后会造成震荡,并且本系统超调和震荡并不严重,可以不引入微分作用

wKgZPGnLxDaASjXuAAEIdBXJBA8594.jpg

wKgZO2nLxDeAI2lCAAAOoHyN8aA087.jpg

所以这里将D设定为0,D参数整定完毕

总结

本次基于 CW32L012 的 Vdac-Vadc 电压闭环控制实验,以 “10kΩ+47μF”RC 电路为信号调理单元,结合增量式 PID 算法实现了 Vadc 对设定电压的稳定跟踪;而通过上位机波形实时观测与手动 PID 参数整定的实践,更直观地验证了 PID 三参数的核心作用,完整串联了硬件架构、算法选择与参数调试的实验链路。


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

    关注

    44

    文章

    2844

    浏览量

    197584
  • 闭环控制
    +关注

    关注

    0

    文章

    100

    浏览量

    16145
  • CW32
    +关注

    关注

    1

    文章

    323

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    三相逆变器电压闭环控制仿真

    三相逆变器电压闭环控制仿真 一、引言 三相逆变器是电力电子技术中的重要组成部分,广泛应用于新能源发电、电动汽车、工业自动化等领域。电压闭环控制是逆变器
    的头像 发表于 12-14 11:16 3623次阅读

    CW32L012的PID温度控制——算法基础

    PID 控制算法是比例(Proportional)- 积分(Integral)- 微分(Derivative) 控制的简称,是工业控制、嵌入式系统中最经典、应用最广泛的闭环控制算法。它
    的头像 发表于 01-05 16:27 2256次阅读
    <b class='flag-5'>CW32L012</b>的PID温度<b class='flag-5'>控制</b>——算法基础

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

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

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

    基于CW32L01x系列低功耗微控制器家族的全新成员:CW32L012系列产品。 CW32L012基于ARM® Cortex-M0+内核,主频高达96MHz,同时集成了CORDIC硬件
    发表于 07-16 16:32

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

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

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

    。 这次CW32L012的评测活动,CW32生态社区将开发板、以及各类套件与相关资料(技术资料、例程代码、视频教程等)准备得非常丰富,对初学者非常地有好,可以说是手把手带你入门,新手小白可以趁机入手
    发表于 11-24 23:44

    自动调平的闭环控制。#闭环控制

    闭环控制
    学习电子知识
    发布于 :2022年10月06日 19:56:23

    温度闭环控制实验

    温度闭环控制实验一.实验要求根据实验要求,即加温速率(上升时间)、超调量、调节时间及误差,选择P I D 控制参数、积分
    发表于 05-15 00:09 7170次阅读
    温度<b class='flag-5'>闭环控制</b><b class='flag-5'>实验</b>

    什么是闭环控制

    什么是闭环控制   闭环控制   发动机电喷系统的闭环控制是一个实时的氧传感器、计算
    发表于 03-12 10:03 2390次阅读

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

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

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

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

    CW32L012小机器人的电机控制

    线的大功率调速,电机的控制性能直接决定了系统的响应速度、运行精度、能耗效率与稳定性。这里分享CW32L012小机器人的正反转、调速的电机控制 电机的正反转 从配套的开发板资料介绍中可以知道,这是电机的驱动芯片RZ7899 从立创
    的头像 发表于 11-21 13:18 2535次阅读
    <b class='flag-5'>CW32L012</b>小机器人的电机<b class='flag-5'>控制</b>

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

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

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

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

    CW32L012电压电流表设计思路

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