利用片上EEPROM和Allegro应用软件对A1335输出信号进行谐波补偿亚博尊贵会员

利用片上EEPROM和Allegro应用软件对A1335输出信号进行谐波补偿亚博尊贵会员

下载PDF版本

比尔·威尔金森,
亚博棋牌游戏快板微系统公司有限责任公司

介绍

这个应用笔记将提供一个逐步的例子,配置谐波输出信号线性化使用A1335角度传感器集成电路(IC).本例将利用Allegro A1335 Samples Programmer软件,兼容任一ASEK-20或ASEK-21程序包。对于更高级的生产级编程,Allegro提供dll,允许将本例中显示的功能内置到定制的软件和硬件中。

试剂盒内容及描述

A1335 IC评估所需的硬件由ASEK-1335-T-KIT提供,其内容如图1和图2所示。

A1335子板和孙子板为传感器IC与ASEK-20编程器的接口提供了一种简单方便的方式。孙女板的弹簧作用触针允许对传感器进行无焊接测试。对于使用定制硬件的磁性评估,子板上提供了端子和Molex连接器,允许灵活连接。

根据评估包提供的快速指南,连接硬件。

AN296118图1 AN296118图2
图1:ASEK-20-T-KIT内容物
图2:ASEK-1335-SUBKIT-T目录

软件

获取评估GUI

一旦硬件设置完成,应该下载与ASEK-20板接口所需的Allegro软件。这是通过在Allegro软件注册门户(https://registration.allegromicro.com/login)和注册为A1335 IC。

一旦注册,A1335评估GUI软件可以从Dashboard下载。

图3:Allegro软件门户(https://registration.allegromicro.com)
图3:Allegro软件门户
https://registration.allegromicro.com

设置软件

下载并解压Allegro软件后,双击Allegro A1335 Samples Programmer可执行文件。这将打开示例图形用户界面(GUI),并选中DEMO选项卡。该选项卡将显示传感器角度、任何锁定错误(如开机复位或低磁场标志),以及施加在传感器上的磁场强度。但在与传感器通信前,必须选择“COM端口”和“COM协议”
设备必须上电。

图4:A1335示例GUI
图4:A1335示例GUI

要选择正确的COM端口和通信协议,请单击左上角的“设置”菜单,然后选择“通信…”,这将弹出“通信设置”窗口。

图5:通信设置菜单
图5:通信设置菜单

选择ASEK-20编程器对应的COM端口。如果不知道COM端口号,请观察下拉菜单中列出的可用COM端口,从计算机上拔下ASEK-20 USB电缆,然后点击刷新按钮,显示的列表与ASEK-20 COM端口对应。同样,ASEK-20插入后出现的COM端口列表也是正确的地址。

如果COM端口正确,底部的状态框将更新为“活动”,并报告ASEK-20软件版本(在本例中为版本127.6.3.1)。选择所需的通信协议和频率,然后退出窗口。当选择频率时,考虑可能已经被添加到IC的通信引脚的电阻和电容负载。外部滤波/负载电路(包括长导线)可能会降低通信信号并导致通信问题。

点击“电源”按钮。A1335现在应该用最右边面板上显示的电压(5 V以上)和电流(26.92 mA以上)供电。

磁铁装置

根据需要将传感器与目标磁铁对齐。如“高级片上线性化”应用说明中所述,建议的场强应在300和1000 G之间;但是,低于300 G的小偏差不会显著影响性能。虽然谐波线性化是为了实现高精度离轴性能而开发的,但它也可用于最小化由更传统的轴上应用中存在的机械失调误差引起的非线性。亚博尊贵会员

需要注意的是,CVH传感元件未在A1335(单模和双模版本)封装内居中。例如,在离轴应用中安装单芯片传感器时(图6中最左侧的图示),传感器IC的引脚1侧应背向磁铁。这使得CVH尽可能靠近目标磁铁。

图6:离轴和离轴安装
图6:离轴和离轴安装

原始数据记录

随着A1335正确地与目标磁铁对齐,原始(或预线性化)性能现在可以测量。通过点击“线性化”选项卡,补偿的类型可以通过下拉菜单选择(谐波或分段)。一般来说,谐波线性化能更好地补偿传感器安装中偏心引起的正弦误差,并将在这个例子中显示的方法。


图7:A1335单片IC内的CVH位置
图7:A1335单片IC内的CVH位置



图8:在A1335双模IC内的CVH位置
图8:在A1335双模IC内的CVH位置

样本点数

为了量化叠加在传感器传递函数上的谐波误差,必须测量磁体完全旋转时的输出。通过线性化选项卡左上角的文本框,可以选择在整个旋转过程中采取的测量点的数量。可使用的最低分数为8分;然而,建议至少取16个样本-这允许7阶谐波被解决。历史上,1、2和4次谐波是造成最终误差的主要因素。可使用2048个样品;然而,如果数字不是2的幂(16、32、64等),则在执行FFT之前,收集的数据将被插值以获得一个2的幂长度数组。一旦按下“Calculate”按钮,这将在GUI中自动执行。

图9:线性化选项卡
图9:线性化选项卡

当使用Allegro A1335样本编程器GUI时,假设每个样本点在整个磁铁旋转过程中均匀分布。为了帮助数据采集,最左侧表格的左栏中显示了每个采样点的预期编码器位置。间隔不均匀的数据也可用于
线性化;然而,这需要额外的软件后处理,并且必须作为文本或CSV文件加载。有关所需格式的更多细节,请参阅“调和线性化编程”应用说明。

图10:正在进行的原始数据收集
图10:正在进行的原始数据收集

记录数据

要开始采样原始角度数据,将磁铁定位到所需的起始位置;这不需要(通常不会)与传感器IC的零位相对应。定位后,确保“编码器0.000”对应的数据输入行以蓝色突出显示(如图9所示);如果未选择该行,则使用鼠标选择该行。单击“读取角度”按钮以轮询传感器IC在该磁性位置的输出。

角度值将与相应的编码器值相邻放置。下一个编码器位置行现在将以蓝色突出显示。将磁铁移动到此位置,点击“读取角度”。重复此操作,直到完成一个完整的旋转,并且所有的行都满了。

使用“保存角度…”按钮可以保存数据。这允许在以后加载原始数据(使用“加载角度…”按钮),而无需重新进行角度测量。

谐波分量的计算与选择

一旦采集了所有的样本(并使用“读取角度…”按钮输入),谐波误差分量通过点击“计算”按钮来计算。所有可见谐波的振幅(以度数表示)和相位显示在最右边的表格中。通过最左边一列的复选框选择用于补偿的谐波;默认情况下,振幅大于0.3°的前8个谐波分量被选中。当选择更大数量的谐波时,要注意IC的测试(EEPROM编程)时间会增加。优化输出精度与谐波数量的选择应由用户进行,并根据应用程序而变化。

通过单击列标题,表可以按升序或降序排序。这样就可以很容易地识别出最大的错误。

A1335能够补偿多达11个不同的谐波分量(但是,超过8个谐波,短冲程功能将被禁用)。在采集17个或更多样本的情况下,可选择谐波分量的数量将大于寄存器。为了补偿高次谐波,最多可以跳过3个连续谐波,即可以选择谐波阶数1、2和6,忽略3、4和5。如图12所示。

编程的A1335

通过按“写入设备”按钮,将选定的谐波系数编程到EEPROM中。这个按钮解锁传感器,进入空闲模式,将谐波系数传输到存储器,脉冲VCC写入EEPROM,并使传感器通电,以使EEPROM正确加载到SRAM中。

在进行原型设计时,使用易失性内存比使用非易失性EEPROM更容易进行实验,在非易失性EEPROM中,潜在的失误更有影响,也更难纠正。在这些情况下,不需要谐波线性化后的功率循环传感器,因为它删除了易失性存储器中的任何配置。为了避免这种情况,如果在单击“写入设备”按钮时按住CTRL键,则不进行电源循环。相反,选择的系数被写进两者
EEPROM和SRAM。通过将值写入SRAM,系数会立即产生影响,而无需进行功率循环。

图11:计算谐波误差
图11:计算谐波误差

图12:跳过连续谐波
图12:跳过连续谐波



验证补偿

将编程的EEPROM系数加载到SRAM后,传感器将开始进行谐波补偿。这种补偿可以通过完全旋转目标磁体并观察输出行为来验证。输出现在应该从给定的起始位置线性增加到360度,然后返回到初始位置。如图13所示。

设置零位(零角位置)

线端线性化后,现在可以对传感器报告的零角位置进行最终调整。要执行此操作,请将目标磁铁移动到所需的零角位置,然后在A1335 GUI的演示选项卡中,单击“零角”按钮。这将记录当前角度,并将其写入EEPROM内的零偏移字段(0x306,位11:0)。该值从信号路径末端的补偿角度值中减去,因此存储在寄存器中的值成为导致0°输出的位置。由于减法是在数字信号路径内补偿后执行的,因此必须在谐波(或分段)线性化完成后设置该值。0 50 100 200 250 300 350

图13:传感器输出线性化前后。注意这个图是在“Zero Position”编程之前,距离编码器295度对应的是0度角输出(A1335 IC输出信号)。
图13:传感器输出线性化前后。注意这个图是在“Zero Position”编程之前,距离编码器295度对应的是0度角输出(A1335 IC输出信号)。

常见问题和常见问题

使用谐波线性化只会使性能变差。发生了什么事?

这很可能是由于谐波系数内的相位偏移,因此校正不再与误差分量正确对齐,在某些情况下可能会放大误差而不是消除它。最常见的情况是,在获取用于计算系数的原始数据之前,设置了EEPROM (0x306, bits 11:0)中的ZERO_OFFSET字段。

当不使用提供的A1335 GUI来记录数据时,这应该是一个问题,因为GUI在SRAM (0x06,位15:0,左对齐)中设置相应的ZERO_OFFSET字段为零。

如果遇到较大的后线性化角度误差,并且数据是在GUI环境之外(Allegro dll或第三方采样方案)记录的,请确保ZERO_OFFSET字段被重置为0,并重新获取原始角度数据。

线性化后的零角位置编程问题。

这很可能是由于EEPROM中的ZERO_OFFSET字段中存在一个预先存在的值。

如上所述(参见设置零位部分),在传感器输出之前,从补偿角度中减去零点偏移字段内的值(见图14)。因此,如果在完成谐波线性化之前对零位进行了编程,则该值不再正确(请注意图13中线性化后的第一个点发生了变化),并且所需的零位不正确。

要纠正这个错误,请将ZERO_OFFSET字段重置为零。这可以通过GUI中的“EEPROM”选项卡完成。将目标磁铁移动到所需的零位置后,点击“演示”页签上的“零角”按钮,即可编程出正确的零角值。

图14:A1335数字信号通路
图14:A1335数字信号通路

离轴操作时遇到高噪音。

噪声高度依赖于磁场的大小。名义上,A1335在900 G和室温下的测量角度值变化约为±0.17°。由于离轴安装固有的磁场强度大幅度波动,磁旋转的部分可能会比其他部分产生更大的噪声;换言之,由于磁场大小随位置的变化,噪声水平可能与位置有关。

为了减轻这些影响,必须最大化传感器观察到的场强,因为这将建立较低的基线噪声水平。这可以通过确保目标磁铁具有足够的强度(即传感器测量的300 G或更大)和最小化两个磁铁之间的气隙来实现
CVH元件和磁铁。除了磁相关参数,A1335还可以配置为累积和平均多个传感器输出,以较慢的刷新率为代价增加系统的有效分辨率。平均值中使用的样本数量是使用EEPROM (0x308,比特23:21)内的ORATE字段配置的。请参阅A1335编程手册,了解更多关于ORATE设置的细节。

谐波线性化不能充分提高传感器精度。

谐波补偿能够显著提高精度,将误差从±40°减少到小于1°。改善将取决于应用的谐波数量,谐波数量由采集的原始样本数量决定。Allegro建议使用至少16个样本,允许计算最多7次谐波误差。如果补偿后,产生的精度不够,则可能是高阶谐波导致了误差。应采取更多的初始样本;在这种情况下,建议样本量为64;除此之外,还有一点好处。

图15:典型的一西格玛角噪声大于场强,其ORATE = 0
图15:典型的一西格玛角噪声大于场强,其ORATE = 0



图16:一西格玛角噪声与平均设置,300 G。
图16:一西格玛角噪声与平均设置,300 G。



本文件所包含的信息不构成Allegro就本文件标的向客户作出的任何陈述、保证、保证或诱惑。所提供的信息不能保证基于这些信息的流程是可靠的,也不能保证Allegro已经探索了所有可能的故障模式。客户有责任对最终产品进行充分的合格测试,以确保其可靠并满足所有设计要求。