这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » DIY-PCA9685舵机控制模块设计一

共2条 1/1 1 跳转至

DIY-PCA9685舵机控制模块设计一

高工
2026-06-20 09:32:20     打赏

基于 PCA9685 的 16 路舵机控制模块硬件设计方案,涵盖芯片要点、原理图设计、PCB 布局及关键参数计算,适合自己画板或课程设计参考。

PCA9685 舵机控制核心原理

芯片特性:NXP PCA9685,16 通道独立 12 位 PWM 0~4095,I²C 接口100/400 kHz,内置 25MHz 振荡器,输出为开漏Open-Drain结构。

舵机控制要求:标准模拟舵机周期 20ms,50Hz,脉宽 0.5ms~2.5ms 对应 0°~180°。

脉冲值换算12位分辨率,周期 20ms ≈ 4096 计数值:

0.5ms → 4096 × 0.5/20 ≈ 102

1.5ms → 4096 × 1.5/20 ≈ 307

2.5ms → 4096 × 2.5/20 ≈ 512

实际代码中常用 map(angle, 0, 180, SERVOMIN, SERVOMAX)做映射。


关键电路设计

1. I²C 接口与地址配置

SDA、SCL 各接 4.7kΩ~10kΩ 上拉电阻至 VCC通常 3.3V。

A0~A5一般模块只引出 A0~A2通过焊盘接 GND 或 VCC,设置 I²C 基地址 0x40全接地,范围 0x40~0x7F,同一总线最多级联 62 片。

2. PWM 输出与舵机接口

PCA9685 OUT0~OUT15 为开漏输出,每路建议串联 220Ω~470Ω 限流电阻保护芯片。

舵机接口使用 3×2.54mm 排针:信号PWM / V+舵机电源 / GND,排列与标准杜邦线兼容。

开漏输出靠内部下拉,舵机上拉到自身 5V 即可被识别无需额外上拉电阻,除非特殊需求。

3. OE输出使能引脚

OE 低电平有效使能输出,建议上拉电阻4.7kΩ~10kΩ到 VCC,同时引至排针可用 MCU 控制。

上电初始化前拉高 OE 可防止舵机乱转。

4. 电源与滤波

PCA9685 的 VCC 引脚旁紧贴放置 0.1μF 陶瓷电容MLCC退耦。

舵机电源输入端并联 100μF~470μF 电解电容 + 0.1μF MLCC,抑制启动浪涌和纹波。

舵机电源走线加宽≥50mil / 1.2mm,多层板敷铜更佳。


image.png


PCA9685 舵机控制模块设计说明

模块总体组成

本模块基于 NXP PCA9685 芯片设计,用于实现多路舵机的稳定 PWM 控制,整体由以下几个部分组成:

1. 核心控制芯片

PCA9685:16 通道、12 位分辨率 PWM 控制器,采用 I²C 总线通信,支持多片级联扩展。

2. 通信接口

I²C 接口(兼容 Grove 标准)

使用 2.0mm 4P 插座,可直接接入 Grove 线缆;

同时作为模块的控制信号输入与逻辑供电入口。

预留 FPC 扩展接口

增加 FPC 软排线座子,用于后期多板级联或远距离信号扩展;

当前版本在 PCB 封装选型上存在一定问题,后续版本将优化封装定义。

3. 供电系统

控制部分电源

支持 3.3V / 5V 逻辑供电,为 PCA9685 及 I²C 上拉电阻供电;

供电由 I²C 接口统一引入。

舵机驱动部分电源

独立 5V / 6V 大功率供电轨,专为舵机提供工作电流;

与逻辑电源电气隔离,仅通过 GND 单点共地。

电源滤波

舵机电源输入端并联 100μF 电解电容,用于抑制舵机启停带来的电压波动与浪涌。

4. 指示电路

控制电源指示灯

用于显示 PCA9685 逻辑电源是否正常;

舵机电源指示灯

用于指示舵机供电轨是否上电,方便现场调试与故障排查。

5. 舵机输出接口

16 路舵机接口

每路由 3×2.54mm 排针构成(信号 / 电源 / 地);

排针采用颜色区分:

红色:舵机电源(V+)

黑色:GND

黄色 / 白色:PWM 信号

接口布局紧凑,便于直接使用杜邦线连接舵机。


模块设计思路

本模块设计主要参考 Adafruit PCA9685 舵机驱动板 的总体架构,在保证功能完整性的前提下,针对实际应用进行了以下优化:

舵机接口优化

采用通用 2.54mm 排针,兼容绝大多数舵机与扩展板;

使用颜色区分电源与信号,降低接线错误率。

I²C 输入兼容性

使用 2.0mm 4P 插座,可直接接入 Grove 生态设备;

逻辑电源与 I²C 信号共用同一接口,减少连线复杂度。

扩展能力预留

增加 FPC 软排线座子,为后续多模块级联、柔性布线提供可能;

虽然当前封装存在不足,但已预留物理空间与电气连接。

电源分区设计

控制电源与舵机电源分开设计,避免舵机大电流对控制芯片造成干扰;

通过电源指示灯实时反馈供电状态。


原理图与 PCB 设计说明

1. I²C 接口设计

模块使用标准 I²C 输入接口,包含 SDA、SCL、VCC 与 GND;

SDA 与 SCL 分别通过 4.7kΩ 上拉电阻接至逻辑电源,确保总线电平稳定;

支持 3.3V 与 5V 逻辑电平系统。

2. FPC 扩展接口

增加 FPC 座子,用于未来通过软排线进行模块级联或信号延伸;

当前版本封装选型不够理想,存在引脚定义与布局不匹配的问题,将在后续版本中修正。

3. 电源与滤波设计

舵机电源入口并联 100μF 电解电容,并在 PCA9685 电源引脚附近布置 0.1μF 瓷片电容;

舵机电源走线加宽处理,降低线路阻抗与大电流发热风险。

4. 输出与布局

PWM 输出信号经限流电阻后连接至排针;

舵机接口沿 PCB 边缘整齐排列,便于布线与管理;

电源指示灯与信号通路分离,避免干扰。


模块使用I2C输入,这里使用2.0间距座子,以便兼容GROVE接口。I2C信号输入,同时负责给PCA9685供电。额外增加了个FPC座,想着以后使用fpc软排线接入,但是制作PCB封装时,选择的封装不好,存在问题。I2C总线使用两个电阻上拉。

image.png

舵机电源输入,使用KF128-5.08mm端子。可以提供大电流输入。使用一个MOS管,来防止反接。当舵机电源正确接入,MOS管导通。如果接反,MOS管截止,保护后端电路。添加了个100uf的电解电容,用来滤波,平滑电源。

image.png


PCA9685 的每个 PWM 输出引脚均串联了限流电阻(通常为 220Ω~470Ω)。由于舵机属于感性负载,插拔瞬间极易产生电压尖峰或反向电流,该电阻能有效限制流入芯片的电流,防止因外部干扰导致的 IO 口锁死或芯片烧毁,显著提升了模块在复杂环境下的耐用性。

在芯片选型方面,为了极致压缩模块体积,我特意选用了 PCA9685 的 QFN(Quad Flat No-leads)封装。相比传统的 DIP 或 TSSOP 封装,QFN 封装具有体积小、寄生参数低、散热性能好的优势,使得整板布局更加紧凑精致。然而,QFN 封装的焊盘位于芯片底部且间距极小,极大地增加了手工焊接的难度。焊盘不可视导致对位困难,且容易出现虚焊、连锡等问题,对焊接工艺要求较高,后期在样板制作时需格外注意焊接温度与时间的控制,必要时需借助热风枪与钢网完成焊接作业。

image.png



院士
2026-06-21 16:08:30     打赏
2楼

学习了,谢谢分享。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]