侵权投诉
订阅
纠错
加入自媒体

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

2019-03-20 09:23
来源: 与非网

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

通过将寄存器设置为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值相同时(意味着当衰落完成时),将产生中断。

原理:

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

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

电子工程 猎头职位 更多
扫码关注公众号
OFweek电子工程网
获取更多精彩内容
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号