您的位置:首页 > 其它

I2C协议及PCA9685控制芯片

2020-07-13 05:46 477 查看

I2C总线协议

自驾仪的主控芯片一般具有多种资源与传感器或其他外设进行通信, 包括串口、I2C、SPI、QSPI等。I2C总线具有简单、有效的特点, 能够有效减少芯片管脚和线路连接的数量, 本文介绍的PCA9685舵机控制器就是采用I2C与主控芯片进行通信的。
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) 操作。

PCA9685的用途及特点

PCA9685是一款基于I2C总线控制的16路LED背光调节控制芯片。每一路LED输出端均可自由调节PWM波的频率 (40-1000Hz) 和占空比 (0%-100%) 。这款芯片主要通过输出不同占空比的PWM脉冲信号来控制舵机转动的角度, 其主要特点如下:

  1. PCA9685可编程调节16路PMW脉冲的占空比以及高电平到来的时刻, 分辨率为12位 (4096) 。
  2. 在快速模式下I2C总线的速率可以达到1MHz, 此外SDA端口30m A的驱动能力可以在高总线负荷上使用。
  3. PCA9685的PWM脉冲输出频率范围为40~1000Hz, 它内置的25MHz振荡器和外部时钟可以选择使用。
  4. PCA9685的硬件地址被设计为6位, 这样在同一个I2C总线上可以连接62个同一芯片;每个芯片有4个基于I2C总线的软件可编程地址, 并且任一芯片可以被同时或单独寻址。
  5. PCA9685的电压工作范围为2.3~5.5V, 使用温度为-40℃~+85℃。

PCA9685舵机控制的实现

通常PCA9685与舵机连接需要三根线, 分别是电源线、控制线和地线, 其中控制线是PWM脉冲的输出端, 电源线和地线为舵机内部的直流电机供电。舵机转动的角度和控制线PWM脉冲的宽度 (占空比) 成正比, 1ms对应0°, 2ms对应180°, 并且脉宽在1~2ms之间变化时, 舵机角度从0°~180°线性增长。因此, 要实现对舵机的控制, 需要在PCA9685正确的地址设工作模式、PWM脉冲的频率及占空比即可。
1.芯片访问地址的确认
PCA9685的访问地址由芯片的6位硬件地址引脚连接电平决定, 最高位为1不变, 最低位用于区分I2C通信的读写模式, 主控芯片通过该地址向PCA9685的不同寄存器写入不同数据, 就可以控制PCA9685向舵机发送想要的PWM脉冲。
2.PMW脉冲频率的设置
PCA9685脉冲输出频率的范围为40~1000Hz, 一般舵机控制需要的频率为50Hz。计算公式为:
其中prescal为向频率设定寄存器 (地址为0XFEH) 中写入的值, EXTCLK为主控芯片的时钟信号, refresh_rate为期望得到的PWM脉冲频率, 这里为50。实现代码为:
3. 脉冲宽度的设置
PCA9685的任一通道均有4个寄存器用于设置12位计数器以此来实现脉宽调节, 分别用于控制高电平开始到结束的时刻, 一般将LEDn_ON设置为0, 如果脉宽为duty, 则LEDn_OFF的计算公式如下:
实现代码为:

总结:

在PCA9685 LED控制芯片的基础上, 通过I2C总线协议, 设计了一种可产生16路PWM脉冲, 并可灵活设置频率及占空比的舵机控制实现途径。经过本文的分析及设计, 最终从原理上实现了这一应用, 有效减轻了硬件设计和软件设计的工作量, 是一种行之有效的解决办法。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: