2026年电赛FPGA赛道,用国产高云板子做电源类题目,ADC采样和PWM死区控制怎么做才能不被评委挑刺?

开放3 回答 46 浏览

今年电赛准备选电源题,手里只有高云GW1NR-9的开发板,指导老师说电源题对ADC采样精度和PWM死区要求很高。我用FPGA做数字PID和PWM生成,ADC用的是外部12位并行ADC,采样率100k,但死区时间设置总感觉不对,MOS管发热严重。想问下有电赛电源题经验的,FPGA做数字电源控制时,死区时间怎么算?ADC采样和PWM更新怎么同步才不会有抖动?

分享:

3 个回答

  • 单片机爱好者

    先说结论:死区时间不是拍脑袋设的,得从你选的MOS管和驱动芯片的数据手册倒推。一般做法是查MOS管的开通延迟、关断延迟,加上驱动芯片的传输延时差,再留一点裕量。比如典型值算出来200ns,那就设250到300ns,宁可稍微大一点牺牲点效率,也别让上下管直通。你MOS发热严重,八成是死区太小甚至没生效,建议先用示波器双通道同时看上下管的栅极波形,确认两路之间真有死区,别光看代码里写了。

    ADC和PWM同步这块,核心思路是让采样点固定在PWM周期的某个位置,比如中点采样,避开开关噪声。用一个PWM周期信号去触发ADC转换,转换完再更新占空比,这样每个周期更新一次,就不会抖。高云板子上可以用PLL倍频出一个干净时钟,别用默认的。你现在的采样率和更新节奏是怎么对应的?这个说清楚才能判断抖动来源。

  • 嵌入式爱好者小王

    看你的描述,我猜你现在的结构大概是:ADC自由跑,PID在主循环里算,PWM独立生成。这种松耦合在低速下能用,但电源题评委一看波形就露馅——占空比更新和采样不同步,会产生次谐波振荡,表现出来就是输出电压纹波大、MOS电流尖峰高。

    建议改成事件驱动的紧耦合结构。具体说,用PWM模块产生一个周期中断或者同步脉冲,这个脉冲同时干两件事:一是启动ADC转换,二是锁存上一周期的PID结果去更新占空比寄存器。这样采样、计算、更新形成固定流水线,每个周期节奏一致。ADC转换需要时间,100k采样率下转换大概几微秒,所以采样点要提前放在周期开始附近,等你算完PID,正好赶上本周期更新。

    死区时间的计算我再说细一点。你需要的是「死区」而不是「延时」,两者区别在于死区是上管关断后到下管开通之间的强制空白。很多新手直接给两路PWM加固定延时,结果死区随占空比变化,轻载时甚至消失。正确做法是在PWM生成逻辑里做硬件死区,上管下降沿触发一个计数器,计到设定值才允许下管上升沿。高云里用几个寄存器和比较器就能搭出来。

    风险提醒:死区设太大,轻载时输出电压会失控,因为有效占空比被吃掉一块。所以要做死区补偿,根据电流方向动态调整。电赛时间紧的话,先把固定死区调稳,再考虑补偿。你板子上的ADC是并行接口还是SPI?并行的话时序约束要写对,不然采样值会跳。

  • 递归小菜鸟

    我按电源题评委的视角跟你捋一遍,因为很多人栽的不是技术,是没搞懂评委到底在看什么。

    评委挑刺通常集中在三个地方:波形干不干净、效率数字合不合理、保护逻辑有没有。死区和ADC同步本质上是为这三件事服务的。

    先说死区的因果链。MOS发热严重,表面看是死区问题,但根子可能在驱动能力不足或者栅极电阻太大,导致开关过程变慢,死区时间被开关时间吃掉。所以你第一步不是改死区参数,是拿示波器量栅极波形的上升下降时间。如果开关本身就要300ns,你死区设200ns,那等于没有。这时候该换驱动芯片或者调栅极电阻,而不是继续加死区。

    第二步才是算死区。从MOS管手册里找td(on)、td(off)、tr、tf,从驱动芯片手册找传输延时匹配度。最坏情况是上管关断最慢加下管开通最快,这个差值就是最小死区。工程上一般再乘1.5到2倍裕量。你算出来的数如果超过500ns,说明器件选型有问题,电源题里这个值偏大了。

    第三步是ADC和PWM的同步架构。这里有个取舍:同步采样精度高但灵活性差,异步采样灵活但容易抖。电源题建议用同步,因为评委看的是稳态纹波和动态响应。具体做法是用PWM周期做时基,在每个周期固定相位触发ADC,转换完成后在下一个周期边界统一更新占空比。这样占空比每个周期只变一次,不会在周期中间跳变造成抖动。

    高云GW1NR-9的资源做这个绰绰有余,但要注意跨时钟域。ADC采样时钟和PWM时钟如果不是同源,一定要做同步器,否则亚稳态会让占空比偶尔抽风,这种偶发问题最难查。

    学习路径上,建议你先别急着上PID。先用固定占空比把死区调对,看波形正常了,再加ADC采样,看采样值稳不稳,最后才闭环。很多人一上来就闭环,出问题根本分不清是死区、采样还是PID的锅。

    最后说个评委常问的点:你的死区时间在不同占空比下是否恒定?如果会变,要能解释为什么,以及怎么补偿。这个问题答不上来,基本就判定你没真正理解死区。你现在测栅极波形用的探头带宽够吗?低压差分探头和普通探头看到的波形差别很大,这个也影响你判断。

登录后可在本页底部提交回答

提问者

逻辑设计新人甲查看主页
浏览「其他」

描述场景与已尝试方案,更容易获得有效解答

相关问题

同分类

提问建议

  • 标题写清核心疑问,避免「求助」「请问」等空泛用语
  • 正文补充环境、版本、报错信息或截图
  • 先搜索本站是否已有相近问题,减少重复提问
  • 若与课程相关,请标明课时或章节便于讲师定位