更简单的扩展,工程师教你做I2C编码器

与非网 中字

在正常操作期间可以即时写入这些寄存器。

通过将寄存器设置为I2C总线,可以配置几个选项。 使用GCONF寄存器,可以配置多个参数。

在配置中,可以设置编码器正交信号的极性,也可以设置编码器的输出是X1还是X2。

为了读取旋转编码器的运动,有4个32位寄存器:CVAL,CMAX,CMIN和ISTEP。

所有这4个寄存器都可以配置为32位INT或IEEE 754浮点数,这种格式可以在GCONF寄存器中设置。

每当编码器移动一步时,CVAL寄存器的值就会增加或减少ISTEP的值。 旋转方向决定是否从CVAL中添加或减去ISTEP。

CMAX和CMIN用于设置CVAL的最小和最大阈值。 在GCONF寄存器中,有WRAPE位。 该位用于在超过阈值时启用或禁用CVAL的包装功能。

例如,如果我将I2C Encoder V2配置如下:

CVAL = 0

CMAX = 5

CMIN = -5

ISTEP = 1

在编码器的每个旋转步骤中,我将使CVAL增加1。 CVAL可以达到的最大值为5,而最小值为-5。

当CVAL达到值5时,WRAPE设置为1时,在下一个增量CVAL处,它将被包装为-5。
每当编码器旋转一步并且CVAL触摸阈值时,就会产生一个中断,并且可以在寄存器ESTATUS中读取。

蓝色和红色线是编码器旋转且禁用WRAPE时的CVAL值

蓝色和红色线是编码器旋转并启用WRAPE时的CVAL值

编码器按钮

I2C Encoder V2还支持带按钮的旋转编码器。 按下按钮时,在上升沿和下降沿产生中断。

以这种方式,可以检查按下或释放按钮的时间。通过在寄存器DPPERIOD中设置窗口时间,还可以读取快速双按。

当在DPPERIOD窗口内进行双重推动时,会产生中断。如果DPPERIOD为0,则禁用双推功能。

所有上述中断均可在寄存器ESTATUS中读取,也可通过寄存器INTCONFIG禁用。

淡入功能

I2C编码器V2具有自动衰落功能。 可以为旋转编码器上集成的RGB LED或GP引脚的PWM输出启用此功能。

有两个寄存器:

FADERGB:用于设置旋转编码器的RGB LED

FADEGP:用于设置GP引脚

您在这些寄存器中写入的值是衰落斜坡的步进速度,以毫秒为单位。 如果值为0,则禁用淡入淡出功能。 这意味着当写入PWM的新值时,它会立即更新为输出。

当写入PWM值时,开始衰落过程。 根据您设置的PWM值完成衰落过程。 当内部衰减PWM值与PWM值相同时(意味着当衰落完成时),将产生中断。

原理:

声明: 本文系OFweek根据授权转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存