PCA9685资料

PCA9685资料原文地址 http nicekwell net blog 20161213 pca9685 16lu 12wei pwmxin hao fa sheng qi html 一 概述和硬件 1 概述 2 硬件 1 电压 2 i2c 地址 3 使能脚二 寄存器功能 MODE1 寄存器各个通道的 ON 和 OFF 寄存器 PRE SCALE 寄存器三 驱动树莓派 wiringPi 平台四 使用流程 16 路 12 位 PWM 信号发生器 可用于控

原文地址:http://nicekwell.net/blog/20161213/pca9685-16lu-12wei-pwmxin-hao-fa-sheng-qi.html

  • 一、概述和硬件
    • 1、概述
    • 2、硬件
      • 1、电压
      • 2、i2c地址
      • 3、使能脚
  • 二、寄存器功能
    • MODE1寄存器
    • 各个通道的ON和OFF寄存器
    • PRE_SCALE寄存器
  • 三、驱动
    • 树莓派wiringPi平台
  • 四、使用流程


16路12位PWM信号发生器,可用于控制舵机、led、电机等设备,i2c通信,节省主机资源。

pca9685

一、概述和硬件

1、概述

工作频率 时间分辨率 通常舵机500~2500us可分成份数 通常舵机500~2500us,旋转角180°的角度分辨率
50Hz 4.88us 410份 0.439°
60Hz 4us 492份 0.366°

驱动方式可以选择开漏输出或推挽输出。

2、硬件

1、电压

2、i2c地址

3、使能脚

模块有一个OE反使能脚,这个引脚低电平使能,不接的话模块内部默认已经接地使能了,所以正常使用可以不接。

二、寄存器功能

:-:|:-:|:-:

内部地址(hex) 名称 功能
00 MODE1 设置寄存器1
01 MODE2 设置寄存器2
02 SUBADR1 i2c-bus subaddress1
03 SUBADR2 i2c-bus subaddress2
04 SUBADR3 i2c-bus subaddress3
05 ALLCALLADR  
06 LED0_ON_L  
07 LED0_ON_H  
08 LED0_OFF_L  
09 LED0_OFF_H  
0x06 + 4*X LEDX_ON_L  
0x06 + 4*X + 1 LEDX_ON_H  
0x06 + 4*X + 2 LEDX_OFF_L  
0x06 + 4*X + 3 LEDX_OFF_H  
… 上面共16路通道
FA ALL_LED_ON_L  
FB ALL_LED_ON_H  
FC ALL_LED_OFF_L  
FD ALL_LED_OFF_H  
FE PRE_SCALE 控制周期的寄存器
FF TestMode  

MODE1寄存器

名称 功能
D7 RESTART 写1复位,写完后此位自动清除。一定要在SLEEP位写0后至少500us后才能对此位写1进行复位。
D6 EXTCLOCK 0-使用内部时钟(25MHz)。1-使用外部时钟引脚的时钟。修改此位前,一定要先SLEEP,再修改此位(此时SLEEP位仍然写1),再退出SLEEP。
D5 AI 0-内部地址读写后不自动增加。1-内部地址读写后自动增加。一般i2c设备在对从机读写后内部地址都会自动增加,这个芯片可以手动设置是否自动增加,我们一般都会设成自动增加。
D4 SLEEP 0-退出SLEEP模式。1-进入SLEEP模式。注:1、写0退出sleep模式后,最多等500us后即可产生稳定的时钟信号。2、写1进入sleep模式后,时钟会关闭。此时可以修改时钟源寄存器EXTCLOCK和周期寄存器PRE_SCALE,修改这两个寄存器之前必须先进入sleep模式。
D3 SUB1  
D2 SUB2  
D1 SUB3  
D0 ALLCALL 0-不响应0x70通用i2c地址。1-响应0x70通用i2c地址。这个芯片除了可以通过A5:A0自定义i2c地址外,还有一个通用i2c地址0x70,此寄存器可以控制是否响应这个通用地址。注意啊:这个寄存器的设置好像掉电会保存的!

各个通道的ON和OFF寄存器

PRE_SCALE寄存器

这个寄存器是用来设置周期的,具体原理可以不用管,只要记住这个公式: prescale 其中osc_clock是时钟,根据上面的寄存器设置选择是内部25MHz时钟还是外部时钟; update_rate是频率,比如周期是20ms,那么频率就是50。 注意:实际应用中发现有误差,需要加入校准,要把udpate_rate乘以0.915。 包括从网上下载的arduino驱动中也加入了此校准。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200291.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午11:08
下一篇 2026年3月20日 上午11:08


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号