想用语音模块输出 PWM 控制电机或舵机,先要分清两个概念:硬 PWM 和软 PWM。厂商工程师的一句话概括了区别:"平台可 IO 配置的就是硬 PWM,软 PWM 所有 IO 都可以"。而一句补充建议("软 PWM 控制舵机,如果你要的角度比较多的话可能性能不够")点明了选型关键。本篇讲清两者的机制差异、适用边界,以及电动沙发这类多电机场景的落地路径。
硬 PWM 与软 PWM 的机制差异
硬 PWM:由芯片的专用 PWM 外设产生,硬件定时器驱动波形,输出与 CPU 负载无关。平台上可配置为 PWM 输出的 IO(查型号的引脚复用表)就是这类。特点:
- 频率与占空比精确稳定;
- CPU 忙于语音识别时,波形不抖动;
- 数量受芯片 PWM 外设通道数限制(通常 2-6 路);
软 PWM:用普通 GPIO 由软件定时翻转模拟 PWM 波形。任何 IO 都能做,但:
- 波形精度受中断和调度影响,语音识别高负载时可能抖动;
- 频率上限低(通常几十到几百 Hz 级别可控);
- 优点是不占用专用外设,引脚随便挑。
场景一:电动沙发的多路电机
客户要控制电动沙发的电机,追问"最多可以有几路 PWM 输出"。分析路径:
- 沙发电动推杆类负载,通常用 PWM 调速或继电器/正反转控制——先确认电机驱动方案:推杆电机多数是正反转+启停控制(两路 IO 或 H 桥),不一定真需要 PWM 调速;
- 若确实需要 PWM 调速(如按 摩强度渐变),数一数需要的通道数:2-3 路以内,优先用硬 PWM 引脚;更多路,评估软 PWM 承载(低频慢速负载可行);
- 硬 PWM 通道数查型号规格书的引脚复用表,平台配置界面里可选项即硬 PWM;
场景二:舵机控制——角度数量决定方案
另一位工程师从 SU-03T 换到 CI-03T,同样的 A0/A4 口配 PWM 输出,舵机没反应。厂商的建议是典型答案:"建议用硬 PWM,软 PWM 控制舵机如果你要的角度比较多的话可能性能不够"。
拆解:
- 舵机要 50Hz 基频+0.5-2.5ms 精确脉宽,软 PWM 在语音识别负载下脉宽抖动会直接变成舵机抖动或角度偏差;
- 角度档位少(比如只开/关两个位置)软 PWM 勉强可用;连续调角度(多档位),必须硬 PWM;
- "同样的配置换芯片没反应"还要查:换芯片后 PWM 引脚映射变了(平台配置是否对应新引脚)、平台 PWM 频率下限钳制(此前案例:50Hz 被钳回 2000Hz 的平台 bug)、供电是否够(舵机堵转电流大,独立供电);
顺带两条边界知识
- UAC 不支持:有工程师问芯片是否支持 UAC 协议(USB Audio Class,做 USB 声卡用),答复"还不支持"——语音模块的音频输出是内置 DAC/功放链路,不做 USB 声卡;需要 USB 音频的产品另配专用方案;
- 平台配置的 PWM 参数同样受上期讲的"单位陷阱"影响(毫秒/微秒、频率/周期),配置后用逻辑分析仪实测验证;
落地清单
- 需求评审先分类负载:调速(要 PWM)/正反转(IO 或 H 桥)/舵机(50Hz 精确脉宽);
- 舵机+多角度:硬 PWM 必选,确认芯片 PWM 通道数;
- 软 PWM 只用于低频、慢速、单路的简单场景;
- 换芯片迁移配置时,逐项核对引脚映射与平台钳制规则;
- 电机类负载独立供电,与模块电源隔离,防堵转电流拉垮语音。
PWM 输出是语音模块外设能力里"看起来简单、做起来讲究"的一项。硬软之分、通道之数、精度之别,立项时想清楚,比量产阶段换方案便宜得多。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70049243/viewspace-3181550/
,如需转载,请注明出处,否则将追究法律责任。