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

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

下载PDF版本

由比尔•威尔金森
亚博棋牌游戏Allegro Microsystems,LLC

介绍

本应用说明将提供一个逐步配置谐波输出信号线性化使用A1335角度传感器集成电路(IC).本例将利用Allegro A1335 Samples程序员软件,兼容任一ASEK-20或ASEK-21程序员套件。对于更先进的生产级编程,Allegro提供了DLL,允许在此示例中建立在定制软件和硬件中的功能。

套件内容和描述

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

A1335女儿板和孙女板提供简单方便的方法,可以使用ASEK-20程序员接口传感器IC。孙女板的弹簧动作接触销允许对传感器的无焊测试进行焊接测试。对于使用定制的硬件,端子和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软件可以从仪表板下载。

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

软件设置

下载并提取Allegro软件后,双击Allegro A1335 Samples Programmer可执行文件。这将打开示例图形用户界面(GUI),其中选择了DEMO选项卡。此选项卡将显示传感器角度、锁定错误(如上电复位或低磁场标志)和传感器上应用的磁场强度。但是,在与传感器通信之前,必须选择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端口正确,底部的“状态”框将更新为“Active”,并报告ASEK-20软件版本(本例中的版本为127.6.3.1)。选择需要的通信协议和频率,然后退出窗口。在选择频率时,要考虑可能已经添加到IC通信引脚上的电阻性和电容性负载。外部滤波/负载电路(包括长线)会降低通信信号并导致通信问题。

单击“开机”按钮。A1335现在应使用最右侧面板上显示的电压(上述5V)(上述5V)和CRENEN(26.92 mA)。

磁铁的设置

用目标磁铁根据需要对准传感器。如“先进的片上线性化”应用笔记,推荐的场强应在300到1000克之间;然而,低于300克以下的小偏差不会显着影响性能。尽管开发了谐波线性化以允许高精度的轴轴性能,但也可用于最小化由更传统的轴上应用中存在的机械未对准误差产生的非线性。亚博尊贵会员

重要的是要意识到CVH传感元件不居中在A1335(单芯和双芯片版本)包内。例如,当将单模传感器安装在轴外轴上时(图6中的最左图),传感器IC的销1侧应朝向磁体。这允许CVH尽可能接近目标磁体。

图6:轴外和轴上安装
图6:轴外和轴上安装

原始数据记录

对于与目标磁体正确对准的A1335,现在可以测量原始(或前线性化)性能。通过单击“线性化”选项卡,可以通过下拉菜单(谐波或分段)选择补偿类型。通常,谐波线性化更好地补偿了传感器安装中的偏心率导致的正弦误差,并且将是该示例中所示的方法。


图7:A1335单芯IC中的CVH位置
图7:A1335单芯IC中的CVH位置



图8:在A1335双芯片内的CVH位置
图8:在A1335双芯片内的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的零点位置。定位后,确保对应于“Encoder 0.000”的数据输入行以蓝色高亮显示(如图9所示);如果未选中,则使用鼠标选择该行。点击“读取角度”按钮,轮询传感器IC在此磁位置的输出。

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

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

计算和选择谐波分量

一旦拍摄了所有样本(并使用“使用”读取角度...“按钮输入),通过单击”计算“按钮来计算谐波误差分量。所有可观察谐波的幅度(以度为单位)和阶段显示在最右边的表中。应用补偿的谐波通过最左侧列中的复选框选择;默认,选择具有大于0.3°的幅度的前八个谐波分量。Be aware when selecting a greater number of harmonics that the test (EEPROM programming) time of the IC will increase.输出精度的优化与所选择的谐波数应由用户进行,并通过应用变化。

通过单击列标题,表可以按升序或降序排序。这使得最大的错误贡献者很容易被识别。

A1335能够补偿多达11个不同的谐波元件(但是,超过八个谐波,短钟特征被禁用)。在拍摄17个或更多个样本的情况下,比寄存器的可选谐波分量将存在更多数量的选择。为了提供更高谐波序列的补偿,可以跳过最多3个连续的谐波,即可以选择谐波令1,2和6,省略3,4和5.这如图12所示。

编程A1335.

通过按下“写入设备”按钮,所选择的谐波系数被编程为EEPROM。此按钮解锁传感器,进入空闲模式,将谐波系数传送到内存,脉冲vCC写EEPROM,并动力循环传感器,使EEPROM正确地装入SRAM。

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

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

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



验证补偿

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

设置零位置(零角度位置)

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

图13:传感器输出预先和线性化。注意,该图是在“零位置”编程之前,并且来自编码器的295度对应于零度的角度输出(A1335 IC输出信号)。
图13:传感器输出预先和线性化。注意,该图是在“零位置”编程之前,并且来自编码器的295度对应于零度的角度输出(A1335 IC输出信号)。

常见问题和常见问题

使用谐波线性化仅使性能变得更糟。发生了什么?

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

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

如果遇到大型线性化角度误差并将数据记录在GUI环境之外(Allegro DLL或第三方采样方案)之外,请确保将ZERO_OFFSET字段重置为0,并重唤原始角度数据。

对线性化后的零角位置进行了规划。

这很可能是由于EEPROM中的Zero_offset字段中的预先存在的值是缺陷的。

如上所述(参见设置零点位置部分),ZERO_OFFSET字段中的值在传感器输出之前从补偿的角度中减去(参见图14)。因此,如果在完成谐波线性化之前编程零位,则该值不再正确(注意第一个点改变,后线性化,如图13所示),期望的零位是不正确的。

要纠正这个错误,请将ZERO_OFFSET字段重置为零。这可以在GUI中的“EEPROM”选项卡中完成。然后,将目标磁铁移动到期望的零点位置后,点击Demo选项卡上的“零点角度”按钮,即可编程正确的数值。

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

在轴外操作期间遇到高噪音。

噪声在很大程度上取决于磁场的大小。名义上,在900 G和室温下,A1335的测量角度值将呈现±0.17°的可变性。由于离轴安装固有的场强大摆动,很可能部分磁旋转将呈现比其他更大的噪声;换句话说,由于磁场大小在位置上的可变性,噪声水平可能成为位置依赖的。

为了减轻这些效果,重要的是要最大化传感器观察的场强,因为这将建立较低的基线噪声水平。这可以通过确保目标磁铁具有足够的强度(即300g或更大,通过传感器测量的300g或更大)来实现,并且最小化
CVH元件和磁铁。除了与磁体相关的参数之外,A1335还可以配置为累积和平均多个传感器输出,以较慢的刷新率成本增加系统的有效分辨率。平均使用的样本数量使用EEPROM(0x308,位23:21)内的ORATE字段来配置。有关Orate设置的更多详细信息,请参阅A1335编程手册。

谐波线性化并没有充分提高传感器的精度。

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

图15:典型的一西格玛角噪声超过场强,与比值= 0
图15:典型的一西格玛角噪声超过场强,与比值= 0



图16:一个Sigma角度噪声与平均设置,300 g。
图16:一个Sigma角度噪声与平均设置,300 g。



本文档中包含的信息不构成关于本文件主题的Allegro向客户提供的任何代表性,保证,保证,担保或诱导。所提供的信息并不能保证基于此信息的过程是可靠的,或者Allegro探讨了所有可能的失败模式。客户有责任对最终产品进行充分的资格测试,以确保它是可靠的,满足所有设计要求。