RV1126 + PCA9685实现7路舵机+2路减速电机控制
RV1126 + PCA9685实现7路舵机+2路减速电机控制
- 0. 引言
- 1. 系统组成
- 1.1 硬件构成
- 1.2 接线拓扑图
- 1.3 硬件连接
- 1.3.1 开发板上的I2C接口
- 1.3.2 连接PCA9685 PWM模块
- 2. 软件实现
- 2.1 I2C驱动与PCA9685驱动模型封装
- 2.1.1 驱动加载流程
- 2.1.2 PWM 输出接口定义
- 2.1.3 内核设备树配置(片段)
- 2.2 用户空间测试程序
- 2.3 驱动源码
- 2.3.1 PCA9685驱动模块源码(pca9685-servo.c)
- 2.3.2 Makefile构建文件
- 2.3.3 Kconfig文件
- 3. 减速电机控制逻辑
- 3.1 ENA/ENB 通过 PCA9685 调速
- 3.2 IN1\~IN4 方向控制
- 4. 编译与部署
- 4.1 Buildroot驱动集成
- 4.1.1 将驱动源码添加至 `external`
- 4.1.2 将驱动编译配置添加至 `package`
- 4.1.2.1 Config.in
- 4.1.2.2 pca9685-servo.mk
- 4.2 打开驱动模块编译
- 4.3 驱动编译
- 4.3.1 kernel编译
- 4.3.2 PCA9685驱动编译
- 5. 驱动调试
- 5.1 `pca9685-servo.ko`驱动调试
- 5.1.1 检查PCA9685的i2c地址
- 5.1.2 安装pca9685-servo.ko
- 5.1.3 测试open和ioctl接口
- 5.2 7路舵机控制调试
- 5.3 2路减速电机控制调试
- 参考资料
0. 引言
本文以Firefly
的AIO-1126-JD4
开发板为平台,基于PCA9685
PWM扩展模块实现对7路舵机(MG90S
)及2路减速电机(JGB37-520
,L298N
驱动)的控制,并将驱动部分封装为内核模块(.ko)以提升系统可靠性与可移植性。
1. 系统组成
1.1 硬件构成
组件 | 型号 | 说明 |
---|---|---|
主控板 | AIO-1126-JD4 | 基于RV1126 SoC,运行Buildroot Linux |
PWM扩展模块 | PCA9685 | 16路12-bit PWM,通过I2C控制 |
舵机 | MG90S ×7 | 控制角度范围0°–180°,5V驱动 |
减速电机 | JGB37-520 ×2 | 12V驱动,双向旋转 |
电机驱动 | L298 |