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.

[参考译文] AFE4404:AFE4404校准代码 initCalibrationRoutine()

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1202236/afe4404-afe4404-calibration-code-initcalibrationroutine

器件型号:AFE4404

大家好。

我在看代码 Calibration_AFE4404.c initCalibrationRoutine ()并留下了一个问题。

您能告诉我为什么下面的公式出来了吗?

为什么要使用迟滞百分比将其保存在四个变量中:LOW_THR_HYS_LOW、LOW_THR_HYS_HIGH 和 HIGH_THR_HYS_LOW、HIGH_THR_HYS_HIGH?

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

    您好!

    应用工程师是 OOO。 我们将在星期一回到您的身边。

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

    您好!

    我们将需要更多时间来调查此问题、希望于3月8日与您联系。

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

    您好!

    在迟滞百分比中设置高阈值和低阈值、以避免在直流代码更接近阈值时频繁调用校准例程。

    即、只要直流代码仍在容差范围/间隔内、它就为直流代码提供一定的缓冲区/范围/间隔、从而不会继续校准。

    谢谢

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

    感谢您的答复。

    此外、我能否知道为什么 CALIBRATION_MODE 始于 s 环境 DAC 而不是 sInitialize?

    如果您看一下图片、您已使用全局变量声明 CALIBRATION_MODES CALIBRATION_MODE = s AmbientDAC;。

    谢谢!

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

    您好!

    我会在3月10日左右回复您。

    谢谢

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

    您好!

    校准模式以环境 DAC 开始、因为当用户从 GUI 调用校准时、initCalibrationRoutine 是从 Main 调用的。

    在 initCalibrationRoutine 中、校准模式被设定为环境 DAC。

    -------------------------------------------------------

    请花点时间阅读-

    AFE4404固件源代码的文档文件夹中提供了校准例程文档、该文档位于 https://www.ti.com/tool/AFE4404EVM#tech-docs 上

    ----------------

    谢谢

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

    您好!

    感谢您的答复。

    我不理解下面的公式、所以我留下了一个问题。

    我不知道为什么他们分裂65000。

    谢谢你。

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

    您好!

    "那你打算怎么办?"

    谢谢

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

    如果您看一下图片、您可以看到公式 AMB_DAC_VALUE =((Meas_DC_s50K <<3)/ ADC_CODE_AMB_DAC_STEP)+ 0x4)>3;

    (MEAS_DC_s50K << 3)/ ADC_CODE_AMB_DAC_STEP)我将介绍这部分。

    此外、我是否可以知道为什么 ADC_CODE_AMB_DAC_STEP 为65000?

    谢谢你

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

    您好!

    我需要一些时间在内部讨论后再与您联系。

    谢谢

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

    在源代码中、ADC_CODE_AMB_DAC_STEP_Ideal 被设置为87381。

    此变量对应于50k 增益和0.5uA 偏移 DAC 电流的 ADC 代码。

    (2*50e3*0.5e-6)*2^21/1.2

    = 87381.333333333333333333

     

    ADC_CODE_AMB_DAC_STEP 设置为65000、以考虑偏移 DAC 电流的20%精度。

    (2*50e3*0.47e-6)*2^21/1.2*0.8.

    = 65710.76266666666666666667

    ~ 65000

     

    应该在开始时针对每个器件校准此 AMB DAC 阶跃代码、并且应该更新此变量 ADC_CODE_AMB_DAC_STEP。

     

    以上行用于计算环境 DAC 代码设置。

    我来解释一下理想情况。 例如:

    假设 PD 电流= 4uA

    Rf 增益= 50k

     

    MEAS_DC_s50k =((4e-6*2*50e3)* 2^21/1.2)= 699050

    ADC_CODE_AMB_DAC_STEP = 87381

    AMB_DAC_VALUE =(((699050<<3)/87381)+4)>>3 = 8

     

    对于4uA PD 电流、将 AMB DAC 代码设置为8以取消4uA。

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

    非常感谢您的答复。

    感谢您的讲解。 我仍然很好奇、所以我会问您更多问题。

    (2*50e3*0.5e-6)*2^21/1.2

    = 87381.333333333333333333

    • 我知道50*e3=50k、0.5e-6=0.5uA、但为什么要乘以2?
    • *2^21/1.2您能告诉我们这部分的来源吗?
    • 8.3.4模数转换器(ADC)您是指此器件吗? 如果是、我能明白你为什么会采取互惠行动吗?

    MEAS_DC_s50k =((4e-6*2*50e3)* 2^21/1.2)= 699050

    • 我在代码中找不到表达式。
    • 代码的用途是将8个 AMBVALUE 合并移3次。
    • 我可以知道该公式应用于何处吗?

    非常感谢您每次回复我。

    谢谢你

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

    您好!

    我需要与内部团队进行讨论、并在下星期一之前与您联系。

    谢谢

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

    您好!

    因数2源于数据表第14页

    "使用跨阻放大器(TIA)将来自光电二极管的信号电流转换为差分电压。"..."TIA 输入电流与输出差分电压之间的跨阻增益等于2×RF。"

    是的、8.3.4模数转换器(ADC)和表3显示了在 TIA 之后将 ADC 代码转换为电压的转换、即输入到 ADC。

    除以1.2的器件用于将电压转换为 ADC 值、其中 ADC 的基准电压为1.2V

    谢谢。

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

    感谢您的答复。

    • MEAS_DC_s50k =((4e-6*2*50e3)* 2^21/1.2)= 699050
    • ADC_CODE_AMB_DAC_STEP = 87381
    • AMB_DAC_VALUE =(((699050<<3)/87381)+4)>>3 = 8

    首先,Meas_DC_s50k =(4e-6*2*50e3)*2^21/1.2)=699050我不知道公式在校准代码中的位置。

    在代码中、只需添加 AMBVALUE 值、对其进行移位并用 RF_FACTOR 相乘或除。

    其次、在计算 AMB_DAC_VALUE 时、将其除以 ADC_CODE_AMB_DAC_STEP (65000)、而不是87381。

    为什么要除以87381?

    谢谢你。

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

    您好!

    请您澄清一下、当您提到"公式"时、您的意思是什么?

    谢谢

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

    大家好。

    您说的

    MEAS_DC_s50k =((4e-6*2*50e3)* 2^21/1.2)= 699050

    ADC_CODE_AMB_DAC_STEP = 87381

    AMB_DAC_VALUE =(((699050<<3)/87381)+4)>>3 = 8

    这意味着代码中没有此计算公式。

    谢谢你。

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

    您好!

    ADC_CODE_AMB_DAC_STEP = 87381

    AMB_DAC_VALUE =(((699050<<3)/87381)+4)>>3 = 8

    是否在您之前所附的屏幕截图中?

    谢谢

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

    您好!

    ADC_CODE_AMB_DAC_STEP = 87381

    AMB_DAC_VALUE =(((699050<<3)/87381)+4)>>3 = 8

    是否在您之前所附的屏幕截图中?

    谢谢

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

    另外, Meas_DC_s50k =((4e-6*2*50e3)*2^21/1.2)=699050是我们的理想情况  根据一些假设进行了说明示例、但代码中没有完全实现。

    "

    我来解释一下 理想情况 。 表示 添加了示例

    我们来吧 假定 PD 电流= 4uA

    Rf 增益= 50k

    MEAS_DC_s50k =((4e-6*2*50e3)* 2^21/1.2)= 699050

    "

    谢谢

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

    大家好。

    如果您看看代码、它是 ADC_CODE_AMB_DAC_STEP = 65000、而不是 ADC_CODE_AMB_DAC_STEP = 87381

    由于代码使用 ADC_CODE_AMB_DAC_STEP、AMB_DAC_VALUE=((699050<3)/87381)+4)>3=8而非 AMB_DAC_VALUE=((699050<3)/65000)+4)>3=8不正确?

    谢谢你。

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

    您好!

    87381是理想情况。

    请先查看回复。 它一开始就表示"理想"和"20%准确度"。

    您可以使用 Ctrl+F 搜索和查找此页面中的两个带引号的单词、您将看到它。

    谢谢