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.

[参考译文] AFE4404EVM:如何将 NJL5513R 传感器中的数据转换为波形 GUI 图

Guru**** 2538955 points
Other Parts Discussed in Thread: AFE4404

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/936497/afe4404evm-how-to-convert-data-from-njl5513r-sensor-to-the-waveform-gui-plot

器件型号:AFE4404EVM
主题中讨论的其他器件:AFE4404

我尝试复制 AFE4404 EVM GUI 并绘制波形。 下面是来自 GUI 的波形。

image.png

我知道从 NJL5513R 传感器读取的数据是一个3字节的数据、例如01BCE1 (十六进制)、但我不知道如何将此类数据转换为上面显示的图。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Kedi、

    欢迎来到 TI e2e 论坛!

    是否可以重新连接波形图? 您的帖子中未显示该帖子。

    有关将 ADC 代码转换为电压的信息、请参阅 AFE44xx 常见问题解答帖子中的 Q#15。

    https://e2e.ti.com/support/data-converters/f/73/t/369445

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢您的回复! 我附了这张图片。 是的、我只想使用数据绘制这样的图。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我查看了您共享的网页、常见问题解答15解决了我的问题。 我的后续问题是我从这样一个公式(ADC 数据(伏特)=(二进制补码格式的 ADC 代码* Vref)/(2^21))中获得的 ADC 数据显示在我附加的图片中,它们是负浮点数。 我是否需要获取绝对值?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Kedi、

    如果代码中的 ADC 数据为282143、则以伏特为单位的 ADC 将为+161.44mV、依此类推。

    您不应该得到负值。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我明白了。 是的、我实际上不知道 Arduino 代码有什么问题。 也就是说、161.44mV 仍低于预期值500mV、如波形图中所示。 您是否知道为什么会发生这种情况?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Kedi、

    遗憾的是、我不确定您为什么读数为~160mV 而不是~500mV。

    您可能应该检查读取 AFE 数据代码函数并检查字节序是否正确。

    如果您从 EVM 读取数据、则可以将原始数据以代码和电压形式保存。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不确定是从 EVM 还是 AFE4404读取数据。 读取 ADC 数据的 Arduino 脚本如下所示。 它首先将寄存器数据发送到 AFE4404、在本例中为0x2C。 然后、它将从 AFE 读取三个字节的数据。 这是原始数据还是来自 EVM 的数据?

    Wire.beginTransmission(slave_address);//->从器件地址为0x58
    Wire.write (reg_address);               //-> reg_address 为0x2C
    wire.endTransmission ();


    Wire.requestFrom (slave_address、3);
    while (Wire.Available ()&&(字节计数!= 0))

       *Read_Data++= Wire.Read();
       字节计数--;

    此外、最好是设置缩放呼叫或类似的呼叫、以便我们可以快速解决此问题。 请告诉我您的想法。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Kedi、

    是否能够读取已编程的其他寄存器而不会出现任何问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Praveen、

    我认为我的代码实际上是从寄存器读取数据。 它显示的值小得多的原因可能是由于收集的环境数据、无论如何、非常感谢您的帮助。