- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
?
?
基于I2C通信的PCA9685在舵机控制中的应用
?
?
李强霍淑珍郑伟
摘要:文章采用I2C总线通信方式,将PCA9685LED控制芯片应用在舵机控制中。PCA9685接收主控芯片的指令,通过输出PWM脉冲信号的方式用以控制最多不超过16路舵机或其他输出通道,最终实现了舵机控制的功能。
关键词:I2C总线;PCA9685;PWM;舵机控制
:TP273文献标志码:A:2095-2945(2018)28-0173-02
Abstract:Inthispaper,theI2Cbuscommunicationmodeisadopted,andthePCA9685LEDcontrolchipisappliedtothecontrolofthesteeringgear.ThePCA9685receivestheinstructionofthemaincontrolchipandusesthewayofoutputtingthePWMpulsesignaltocontrolthesteeringgearupto16channelsorotheroutputchannels,andfinallyrealizesthecontrolfunctionoftheservogear.
Keywords:I2Cbus;PCA9685;PWM;servocontrol
在自驾仪中,舵机是决定飞机舵面偏转角度的执行机构,一般的无人机需要四个舵机用于控制无人机的俯仰、偏航和滚转,通常由PWM信号进行控制[1]。PCA9685是一款用于产生16路PWM信号的LED控制芯片,采用I2C总线与主控芯片进行通信[2]。由于PCA9685具有可以产生16路PWM脉冲、控制独立精准、编程简单灵活等特点,以其为基础实现的舵机控制能够有限减少硬件和软件设计的复杂度,具有高可靠性[3-4]。
1I2C总线协议
自驾仪的主控芯片一般具有多种资源与传感器或其他外设进行通信,包括串口、I2C、SPI、QSPI等。I2C总线具有简单、有效的特点,能够有效减少芯片管脚和线路连接的数量,本文介绍的PCA9685舵机控制器就是采用I2C与主控芯片进行通信的[5]。
I2C总线是由Philips公司开发的,是一种简单的双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。
I2C总线一般由两根数据传输线构成:一根时钟线(SCL)、一根数据线(SDA)。I2C总线协议一般要求每次发送字节的长度必须为8位,每次通信由主机、从机两端完成。整个通信过程如图1所示[6]。
I2C写操作流程为:
(1)主机发起开始信号;
(2)主机发送I2C地址(7位)和写操作0(1位),等待确认;
(3)从机发送确认;
(4)主机发送寄存器地址(8位),等待确认;
(5)从机发送确认;
(6)主机发送数据(8位),即要向寄存器中写入的数据,等待确认;从机发送确认;
(7)主机发起停止。
I2C读操作流程为:
(1)主机发送I2C地址(7位)和写操作0(1位),等待确认;
(2)从机发送确认;主机发送寄存器地址(8位),等待确认;
(3)主机发送开始;主机发送I2C地址(7位)和读操作(1位),等待确认;
(4)从机发送确认;从机发送数据(8位)。
(5)主机发送确认。
从以上分析可以看出,I2C总线通信只需要两根线(SCL和SDA),可并联多个外设使用,通过每个外设的I2C地址区分不同外设。从机的I2C地址最低位代表读(1)或写(0)操作。
2PCA9685的用途及特点
PCA9685是一款基于I2C总线控制的16路LED背光调节控制芯片。每一路LED输出端均可自由调节PWM波的频率(40~1000Hz)和占空比(0%~100%)。这款芯片主要通过输出不同占空比的PWM脉冲信号来控制舵机转动的角度,其主要特点如下[7]:
(1)PCA9685可编程调节16路PMW脉冲的占空比以及高电平到来的时刻,分辨率为12位(4096)。
(2)在快速模式下I2C总线的速率可以达到1MHz,此外SDA端口30mA的驱动能力可以在高总线负荷上使用。
(3)PCA9685的PWM脉冲输出频率范围为40~1000Hz,它内置的25MHz振荡器和外部时钟可以选择使用。
(4)PCA9685的硬件地址被设计为6位,这样在同一个I2C总线上可以连接62个同一芯片;每个芯片有4个基于I2C总线的软件可编程地址,并且任一芯片可以被同时或单独寻址。
(5)PCA9685的电压工作范围为2.3~5.5V,使用温度为-40℃~+85℃。
3PCA968
文档评论(0)