This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1093700/tmag5170-q1-tmag5170-q1
部件号:TMAG5170-Q1您好,
我正在将传感器与FPGA连接以在连续模式下读取数据,但从传感器读取的数据每次都没有变化,几乎是一样的。
触发模式下的情形也相同。 有人能告诉我这是吗?
是否缺少任何其他配置?
此致
阿提拉
阿提拉
感谢您与我们联系。 听起来您好像没有启用任何磁道。 该设备允许使用SENSOR_CONFIG寄存器中的MAG_CH_EN自定义配置转换模式,默认情况下此设置为OFF:
谢谢!
Scott
您好,
我已启用频道,并且能够读取值。 但我没有得到足够的样品。 就像我执行两次读取一样,数据是相同的。 它没有改变。 两个读数提供相同的数据。
阿提拉
我理解。 如果设备处于活动测量模式,则每次完成完全转换时,设备应触发新转换的开始。 如果在此期间再次读取输出,我希望看到没有更新。 您能否确认输出在大量样本中是恒定的,或者在读取之间有很长的暂停时间?
如果您看到图像,则 会捕获数据,但如果我再次阅读,则值不会更改
阿提拉
在您的捕获中,我可以看到每次读取之间的细微变化,但看起来您也可能在每次读取之间更改寄存器。 尝试匹配从您的标记开始的读数时,12.5 附近的读数似乎是相同的寄存器,结果中存在微小差异。 在Miso和MOSI上,使用十六进制代码执行每个事务可能会更容易。
您能否描述您为设备提供的输入以及测试所需磁场的预期变化?
您能否提供注册设置?
谢谢!
Scott
您好,Scott:
是的,磁道x和y在连续模式下启用。 也可以从x和y通道读取数据。 转换平均值为默认值。
此致
阿提拉
阿提拉
很抱歉耽误你的时间。 复活节周末我们延长了周末。 您的磁性输入是什么? 如何改变读取之间的磁场?
谢谢!
Scott
您好,Scott:
我也有一个延长的周末。
我只是将磁铁悬停在传感器上读取数据。 我想,在我同时执行读取时,读取的数据也是相同的。 如果我在两次读取之间设置一个延迟,您认为这些值会被更改吗?
此致
阿提拉
阿提拉
是的。 现在,您的阅读之间有500我们的延迟。 首先验证的一个简单方法是在有磁铁的情况下运行测试,然后在没有磁铁的情况下再次运行测试。 您应该会看到传感器观察到的磁场发生重大变化。
谢谢!
Scott
您好,Scott:
是的,我能够看到显著的差异。 但我需要的是一些具有不同值的样本来获得一个图解,就像我们使用评估套件时得到的一样
此致
阿提拉
阿提拉
当然可以。 此步骤是为了确认您正在从设备成功读取。 在这里,您应该设置为开始捕获更多数据,以便为此目的将其组合在一起。 根据磁铁的行程持续时间,您可能需要将样品间隔,或增加用于计算的总数量。 对于EVM,它默认为1000个采样,总时长约为75毫秒。 经过几次尝试后,我能够使用EVM上固定数量的样片进行干净捕获,并使用您的设置和以下图解
在这里,我使用了一个相当强的磁铁,用手移动磁铁很快。 在75毫秒的时间间隔内,我能够捕捉到我的大部分运动。
如果我移动得更慢,反应就会显示出变化少得多
在第二个图解中捕获的线性部分期间,X输出仅由360 uT更改。
您还应该发现,较大的磁场会产生较大的磁性变化,而位置变化较小。 这可能是由于使用较强的磁铁或将现有磁铁放置在离传感器更近的位置。 如果我在距离传感器更远的地方使用较小的磁铁,我预计从一个点到另一个点观察到的变化会更小。
谢谢!
Scott
您好,Scott:
是的,我认为它似乎工作正常。
谢谢你。
此致
阿提拉
大家好,Scott,我每500次尝试使用触发器来捕获数据。 我使用CS脉冲作为触发器。 但我获得的数据并不是我所期望的那样。
您能否查看下面的图片?
阿提拉
标有“CS_..”的线似乎是您的时钟,我看不到CS引脚的触发信号。 否则,您触发CS的速度似乎比500 us读取速率快得多。 我通常看到您的输出代码在变化,但不知道您正在读取什么寄存器。 您能否更具体地说明问题?
谢谢!
Scott
您好,Scott:
我正在读取X通道输出,并将cs作为触发器,我使用了数据有效信号来捕获所有样本。 样品正在变化,但变化是突然的。
阿提拉
输出代码是2s的补充,以支持+/-感应范围。
因此,如果输入电平极低,或者输入在+和-值之间变化,则可能 会出现00和FF之间的步进。
此外,在触发模式下,请 注意 ,使用CS触发器时,它将在CS较低时初始化并开始转换。 在捕获每次转换的输出之前,您将留出足够的初始化时间+转换时间
对于活动触发模式下的双轴采样,此值应约为85 us,远低于您的500 us延迟。
谢谢!
Scott
您好,Scott:
我还有一个疑问,当C变低时,C触发器就会启动? 所以触发器只是低转换还是整个C低脉冲? 所以如果我在第一个CS脉冲转换后给下一个Cs, 我想这是好的
此致
阿提拉
阿提拉
有两种触发模式取决于CS信号,它们的行为方式不同:
对于trigger_mode = 0b01,触发器被定义为低脉冲启动。 在这种情况下,不需要SPI事务。 依赖于CS的第二个选项是trigger_mode = 0b00以使用SPI触发。 这是使用设备的CMD位启动的。
使用此模式时,可以将CMD0设置为在完成write命令后,当CS返回到HIGH状态时,设备将开始下一个转换。
谢谢!
Scott
您好,Scott:
我正在使用00b1模式,因此当C脉冲变低时,将设置触发器,转换从C的低脉冲开始,我对吗? 在这种模式下,不需要SPI事务,即发送命令从输出通道读取数据一次,然后更改cs,这是您的意思吗?
此致
阿提拉
阿提拉
如果需要,您可以通过在不发送任何时钟或数据的情况下发出CS low (CS下限)来触发转换。 但是,在任何正常读/写事务期间,如果设备尚未运行转换,则驱动CS low以启动SPI事务将开始下一个转换。 如果设备在任何活动转换期间收到触发器输入,则会忽略触发器。
在上面显示的情况下,似乎每500 us就启动一个SPI命令,这将在读取过程中启动转换。 读取应在转换结果就绪之前完成。 但是,您的转换结果将在下一次读取之前准备就绪。 这意味着在实际位置和MCU接收数据时,您将有固定的500 us延迟。
谢谢!
Scott
您好,Scott:
设备工作正常,但有时Miso数据在前一帧中显示CRC错误,我已禁用CRC检查,但有时仍显示错误,您能告诉我是吗?
此致
阿提拉
您好,Scott:
现在总是这样。 始终显示CRC错误。 我没有改变任何东西,但突然发生了这种情况。
您好Abira:
为了让您注意,Scott今天已不在办公室,但明天会回来帮助您解决问题。
此致,
Justin Beigel
您好,Scott:
错误现已解决。 感谢你的帮助。
此致
阿提拉
您好,Scott:
我有磁场值,但值中有一些不是预期的跳转。 磁铁保持不动。 请查看下图。
此致
阿提拉
阿提拉
我无法确切地理解我所看到的内容。 您是否能够以表格形式提供结果? 您报告的意外跳跳数有多大?
谢谢!
Scott
您好,Scott:
此处没有磁铁,但波形与此类似。 有一个从6.5523万跳到3.2768万 (十进制)的跳转
此致
阿提拉
阿提拉
这些跳跃大约每隔0.5 毫秒发生一次,这是您以前的读取速率。 代码3.2768万是2^16的1/2。 在我看来,这似乎是您每次启动读取时要重置的控制器中的数据。 从SPI获取数据后,它将保持稳定,实际读取值为6.5523万,接近0 mt。
谢谢!
Scott
您好,Scott:
但当我放置磁铁时,这种转变并不发生,它是正确的
此致
阿提拉
阿提拉
输出代码是2s的补充格式,您是否对结果进行了任何处理以说明这一点?
对于噪声和偏移,我不会惊讶地看到输出从刚好高于0到刚好低于2^16。 对于您的情况,您的值似乎刚好高于0,偏移2^15。
您可以通过以下方式将磁铁缓慢移动到传感器上方来测试此情况:
根据您能够做到的直线程度,您应该能够生成一个类似于绿线的图解。 它可能需要根据您正在读取的轴将磁铁旋转90度。 绿色图解是在运动过程中同时显示正场和负场的结果。 您应观察到正区域全部大于代码0,负区域小于2^16。 除非您正在饱和输入,否则不应接近中间代码值。
请检查以确保两个极性都不存在问题。
谢谢!
Scott
您好,Scott:
是的,我正在进行转换。 这是转换后的结果。 我没有旋转磁铁,只是移动了磁铁。 但是,对于磁铁来说,图形很好。
您好,Scott:
但数值不是正数,它总是负数。
此致
阿提拉
阿提拉
请仔细检查您的转换计算,以及2s的补码是如何记录的。 如果没有磁铁,您应该测量非常接近0 mt的所有读数,但由于噪声波动,符号可能会改变。 在这种情况下,应在0和6.5536万之间有较大的步长。 相反,您看到的是6.5536万和3.2768万之间的较大步长。
建议将磁体水平移动到传感器上方,以帮助生成正负两个字段的输入,作为调试工作,帮助识别计算中可能出现的任何错误。
谢谢!
Scott