0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用ATtiny2313A AVR微控制器即可实现高速读取正交编码器信号

PCB线路板打样 来源:LONG 2019-08-09 15:39 次阅读

高速读取正交编码器信号(例如,1MHz,或1m/s,分辨率为1μm)通常需要专用硬件。本设计方案展示了一个简单的方案,仅使用ATtiny2313A AVR微控制器即可实现此功能。当然,微控制器也可以通过串行接口连接到其他设备,或者测量位置可以显示在本地LCD上,可以连接到端口PB。此外,可以添加一个或多个LED来指示错误情况。

使用ATtiny2313A AVR微控制器即可实现高速读取正交编码器信号

图1用ATtiny2313A读取正交信号; Z索引信号是可选的。

在这个实现中,中断处理程序非常重要。它在不到1μs的时间内读取输入信号A和B.差分信号AP/N和BP/N由SN75157接收器处理,如果编码器输出逻辑电平信号,则不需要。

处理器配置为端口PD引脚的任何更改产生中断。该中断是中断向量表中的最后一个,因此

可以省去跳转指令,从而减少2-3个时钟(100-150ns)的中断服务时间。

先前和当前信号之间的异或操作( A 旧 ? B new或 A new ? B old )确定当前位置是否从前一个增加或减少。 old 和 B old 是改变状态前的A和B信号, A new 和 B new 是中断后的值。中断处理程序位于 PCIsubroutine1.txt 文件中。

中断处理程序的执行时间为800-850ns(16-17个时钟)。为了最大限度地缩短ISR的执行时间,一些寄存器专门用于它,主程序不能使用它:

R10保存SREG并测试激活新的中断

R11和R12用于新旧状态

R24和R25用于位置传感器

要计算当前位置,需要只有一个时钟周期。缺点是该位置只能有65536个值。您可以使用3或4个字节确定位置,在这种情况下,子程序执行时间从添加必要指令后增加到18-19个周期(使用寄存器对R24,R26,R28或R30)。

中断处理程序在退出当前ISR之前检查新中断。通过在SREG中设置位T来指示该情况。执行此检查,执行时间增加3个周期。我们使用RB6029(每转4,000个脉冲)以最大速度测试子程序的操作,没有检测到错误。

在激活中断之前,PCIE2值必须放在寄存器R12中(读取PIND寄存器)在启用PCINT2中断并设置SREG -I标志之前。

如果要使用Z索引信号,该位置将存储在三个寄存器中,为1,024,000个值? (4,000次计数/旋转; 256次旋转)。读取数据的中断处理程序更复杂,如 PCIsubroutine2.txt 中所示。长度为19个周期,或当Z激活时当前位置递增时为20个周期。

如果Z索引处于激活状态,我们清除角度位置,增加转数,并检查先前的角度价值是3,999。在该子程序中,检测到三个错误:一个用于重叠的新中断(如前一种情况),另外两个与Z索引相关(检查先前角位置的正确性)。错误计数器寄存器rerr1,rerr2和rerr3应由用户定义。要初始化系统,请运行 InitIndexZ.txt ,等待Z处于活动状态。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6734

    浏览量

    147371
  • PCB打样
    +关注

    关注

    17

    文章

    2965

    浏览量

    21350
  • 华强PCB
    +关注

    关注

    8

    文章

    1831

    浏览量

    27445
  • 华强pcb线路板打样

    关注

    5

    文章

    14629

    浏览量

    42547
收藏 人收藏

    评论

    相关推荐

    正交编码器接口

    PIC18F4331里的正交编码器接口怎么用啊!我要用这个模块读取编码器的数据,编码器一转程序就不走了!找不到资料,谁有给分享下啊,谢谢了
    发表于 06-04 20:25

    ATtiny2313AAVR微控制器

    AVR微控制器处理正交编码器信号只需不到1μs的时间
    发表于 02-04 06:58

    正交编码器原理码盘

    。方向:A相和B相相差一个相位,一般来说是90°。A信号在前表示正转,B相信号在前表示反转。计数:在每个上升沿或者下降沿检测,检测到计数
    发表于 08-12 07:10

    只有6个引脚的AVR单片机ATtiny10微控制器可以玩RunTiny游戏吗?

    只有6个引脚的AVR单片机ATtiny10微控制器可以玩RunTiny游戏吗?
    发表于 09-18 07:00

    正交编码器原理什么是正交

    1.正交编码器原理什么是正交?如果两个信号相位相差90度,则这两个信号称为正交。由于两个
    发表于 01-10 08:04

    正交编码器测速的方法

    1.正交编码器的原理通常,光电式编码器的输出信号A信号和B
    发表于 01-10 06:00

    如何利用STM32的正交编码器模式读取编码器的角度数据和速度?

    如何利用STM32的正交编码器模式读取编码器的角度数据和速度?
    发表于 02-11 07:01

    一个基于ATtiny13A/5xIO的微型微控制器PCB

    描述ATtiny13A 分线 PCB一个基于 ATtiny13A、5xIO 的微型微控制器 PCB,其中 3 个 IO 连接到 ADC。该板非常适合所有使用 Arduino 的小而简单的项目。板载
    发表于 07-06 07:33

    AVR编程板资料分享

    描述AVR编程板一个简单的适配器,用于对DIP封装中的流行微控制器进行编程。专为通过中国供应商提供的 ISP 微控制器编程而设计。ATMEGA 8/168/328,ATTINY 13/
    发表于 08-04 06:20

    attiny2313中文资料pdf

    ATtiny2313是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间, ATtiny2313 的数据吞吐率高达1 MIPS/M
    发表于 04-08 09:24 106次下载

    attiny2313 pdf

    ATtiny2313是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间, ATtiny2313 的数据吞吐率高达1 MIPS/M
    发表于 06-16 12:51 107次下载

    Atmel推出快闪AVR微控制器封装产品ATtiny4/5/

    爱特梅尔公司(Atmel® Corporatio)宣布,全球最小的快闪AVR®微控制器封装产品开始投入生产。爱特梅尔的ATtiny4、ATtiny5、
    发表于 06-04 08:49 836次阅读

    ATtiny2313 AVR增强型RISC架构的低功耗CMOS 8位微控制器的资料概述

    ATtiny2313是基于AVR增强型RISC架构的低功耗CMOS 8位微控制器。通过在单个时钟周期中执行强大的指令,ATtiny2313实现
    发表于 11-13 08:00 7次下载
    <b class='flag-5'>ATtiny2313</b> <b class='flag-5'>AVR</b>增强型RISC架构的低功耗CMOS 8位<b class='flag-5'>微控制器</b>的资料概述

    ATtiny2313低功耗8位CMOS微控制器数据手册免费下载

    ATtiny2313是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间, ATtiny2313 的数据吞吐率高达 1 MIPS/
    发表于 12-11 08:00 4次下载
    <b class='flag-5'>ATtiny2313</b>低功耗8位CMOS<b class='flag-5'>微控制器</b>数据手册免费下载

    STM32的正交编码器模式读取编码器的角度数据和速度

    STM32的正交编码器模式读取编码器的角度数据和速度
    发表于 12-08 17:06 137次下载
    STM32的<b class='flag-5'>正交</b><b class='flag-5'>编码器</b>模式<b class='flag-5'>读取</b><b class='flag-5'>编码器</b>的角度数据和速度