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.

[参考译文] AFE7903:LNA 旁路增益/ ALC LNA 增益补偿问题

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

https://e2e.ti.com/support/rf-microwave-group/rf-microwave/f/rf-microwave-forum/1360886/afe7903-lna-bypass-gain-alc-lna-gain-compensation-issue

器件型号:AFE7903

大家好、AFE7903有一些关于 LNA 旁路、ALC 和 Floatmode 的问题

问题1:启用旁路时、ALC 不补偿 LNA 增益。 绕过 LNA 时、这会导致信号电平跳变。

ALC 是否能够在旁路时完全补偿 LNA 增益、以使 Rx 增益保持恒定?

问题2:带有 LNA 旁路的 AGC 行为是反直觉的、lnagain0对释放时间没有任何影响。
绕过 LNA 时 AGC 的预期行为是将 DSA 衰减减少到衰减阈值附近的点。 我们可以通过将 lnaGainMargin 设置为 lnagain 值-裕度(在本例中为27-4 dB)来实现该目标。
数据表中的公式"Current_DSA_GAIN < lnagain - lnagainmargin"似乎是错误的。

实现此行为的正确方法是什么?

附件为两份文件。
第一个"AGC_ONLY_measurement"显示零跨度模式下频谱分析仪的六个图、以及 AFE 配置为整数 JESD 接口且仅激活 AGC。 下面给出了一般的 Latte 参数。

我们执行了从-INF 到图参考中指定值的六个级别跳变。 AGC 会增大 DSA 衰减、以使电平低于-10 dBm 的起音阈值。
借助足够高的跳转至-15dBm 的输入功率(LNA 增益为27dB)、AGC 绕过 LNA (请参阅图4)并在接下来的八个释放阶段减少 DSA 衰减、直到达到-20dBm 的衰减阈值。 (图4、5、6)

这会导致10dB 的稳态增益差。


当我们也打开 ALC 并重复之前的测量时、预计10 dB 的输入功率会比-15 dB 高出10 dB 的电平跳变。

关于附件"alc_measurement_report"、我们在图1-2中看到了正确的输出电平。 在图3 - 5中、预期输出功率为-25 dBm 和-10 dBm、并测得-43 dBm 和-27 dBm。 此跃变对应于 LNA 增益、而不是裕度差异。 因此、我们得出结论、当绕过 LNA 时、ALC 实际上不会再次对信号应用 lnagain。


您能在这里帮助我们吗?
我们的目标是实现恒定的 Rx 增益!

Latte 配置
如果启用 AGC:
对于 I IN 范围(4):
##内部 AGC 模式
#### RXA/B 配置
sysParams.agcParams[i].agcMode = 1 #内部 AGC 模式
sysParams.agcParams[i].rfdeten = 0 #射频模拟检测器已启用。
sysParams.agcParams[i].atken =[1、1、0]#攻击峰值检测器以大阶跃启用。
sysParams.agcParams[i].decayen =[1、1、0]#衰减功率检测器已启用。
sysParams.agcParams[i].atkthreshold =[-8、-10、-25]#该值是应用的攻击检测器阈值
sysParams.agcParams[i].decaythreshold =[-14-8、-12-8、-28]#该值是应用的衰减检测器阈值
sysParams.agcParams[i].atkwinlength =[60,000,40000000]#攻击检测器时间常数、以绝对时间为单位(以 ns 为单位)。 最大值为40ms
sysParams.agcParams[i].decaywinlength = 40000000 #衰减检测器时间常数、以绝对时间(以 ns 为单位)。 最大值为40ms
#sysParams.agcParams[i].atkNumHitsAbs =[200,200]#信号超过阈值的绝对次数。
#sysParams.agcParams[i].deacyNumHitsAbs =[200,200]#信号超过阈值的绝对次数。
sysParams.agcParams[i].atkNumHitsRel =[75、2]
sysParams.agcParams[i].decayNumHitsRel =[90、80]
sysParams.agcParams[i].custRfMode = 1 #使用射频模拟检测器作为内部 AGC 中非常大的阶跃攻击。
sysParams.agcParams[i].atksize =[6、1]#只要检测器触发 DSA 变化、就会产生0.5dB*值、即 BIG 步长2dB、小步长和功率检测器变化0.5dB
sysParams.agcParams[i].decaysize =[4、1]#每当检测器触发 DSA 变化0.5dB*值时、即大步长2dB、小步长和功率检测器0.5dB
sysParams.agcParams[i].minDsaAttn = 0 # AGC 使用的最小 DSA 衰减、0.5dB*值
sysParams.agcParams[i].maxDsaAttn = 50 # AGC 使用的最大 DSA 衰减、0.5dB*值
sysParams.agcParams[i].totalGainRange = 52 # ALC 用于增益补偿的总增益范围、1dB *值。 64dB (最大值)。 内部四舍五入为2 -> n*6.02dB 的倍数
# LNA +最大 DSA => 52dB ->舍入为54.182dB。 这是数字 ADC 增益。
sysParams.agcParams[i].rfdetnumhits = 10信号超过阈值的绝对次数。
每当射频检测器触发 DSA 更改0.5dB*值(即25dB)时、sysParams.agcParams[i].rfdetsteepsize = 50 #。
sysParams.agcParams[i].rfdetThreshold =-4 #或3?

##外部 LNA 控制
sysParams.agcParams[i].lnaEn = True # Intolal RXA LNA control
sysParams.agcParams[i].extLnaTempModel = 0 #使用温度模型来实现 LNA 增益
sysParams.agcParams[i].singleDualBandMode = 0 # RXA 为单频带
sysParams.agcParams[i].lnagain0 = 27 #用于 AGC 要补偿的外部 RXA LNA 的增益是0.03125dB 864或27.0?
sysParams.agcParams[i].lnaphase0 = 0 #对于 AGC、要在带宽0中补偿的外部 RXA LNA 的相位
sysParams.agcParams[i].lnaGainMargin = 46 #打开 LNA 时的迟滞值[0.5dB/单位]
sysParams.agcParams[i].blank_time_extcomp = 2550 FadcRx/8的时钟数(最大值为65535)

如果启用 ALC:
对于 I IN 范围(4):
# ALC 和浮点模式
sysParams.agcParams[i].alcEn = True # RXA ALC enabled.
sysParams.agcParams[i].alcMode = 0 # RXA 浮点模式0悬空
sysParams.agcParams[i].fltPtMode = 1 # RXA 始终在浮点模式下发送尾数的 MSB
sysParams.agcParams[i].fltPtFmt = 2 # RXA 4位指数、11位尾数和1位符号

/cfs-file/__key/communityserver-discussions-components-files/220/agc_5F00_only_5F00_measurement_5F00_report.pdf

/cfs-file/__key/communityserver-discussions-components-files/220/alc_5F00_measurement_5F00_report.pdf

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

    大家好、Christian、Matthias、

    正如我们在今天的会议上讨论的那样、我将重点讨论如何确定这一问题的优先级。  我将尝试在达拉斯的设置中重现此问题、希望下周能分享一些最新消息。

    谢谢!

    Aman

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

    Matthias、您好!

    我们今天上午会议的后续行动。

    下面是我今天早上分享的图、显示了使用 AGC/ALC 设置打开 ALC 时捕获的功耗的"跳跃"行为。 我通过扫描信号发生器的通电情况、并观察当前 RX DSA 设置(红线)和捕获功率(蓝线)来执行此实验。 我认为仅 AGC 的数据是合理的、其中捕获的功率通过我们的内部 AGC DSA 保持在-10至-20dBFS 之间。 启用 ALC 的数据显示了一些奇数行为、其中捕获功率似乎只是以大约6dB 的步长下降。 请查看是否可以在电路板上复制这些结果。

    我们将浏览 Christian 在上面共享的 AGC/ALC/LNA 设置、看看我们是否可以了解启用 ALC 后出现这种情况的原因。  

    我还将继续探究您在数据中分享的原始问题;我相信我们可以调整一些 DGC 延迟参数、这些参数可能是我们在 ALC 中看到的延迟的原因。  

    仅 AGC (enableAlc = False)

    ALC 已启用

    谢谢!

    Aman

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

    Matthias、您好!

    我做了更多的测试、发现我上次发现的这种跳跃行为是由于我在设置中使用了粗略精密 ALC 模式以便可以读取功率级别- 6dB 的跳跃是由于粗略精密 ALC 模式使用了6dB 的粗略步进导致的。 我不希望你看到这在你的终端,这实际上看起来不是问题.

    现在、我已经能够在使用浮点模式时读取功耗等级、因此我已经切换到该模式、并将运行更多实验、但我还无法重现您看到的问题。 我还在研究我在上面的文章中提到的 DGC 延迟。

    谢谢!

    Aman

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

    Matthias、您好!

    我 有一个关于 DGC 延迟寄存器的未决问题、正在等待相关响应、然后才能共享-对此造成延迟、很抱歉。 我会  在一周结束前通过电子邮件将这些寄存器和一些修改后的 AGC 参数发送给您。

    谢谢!

    Aman

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

    Matthias、您好!

    我还尝试了一些 AGC 参数、但仍然无法重现 ALC 无法补偿 LNA 旁路的问题。  您是否可以使用一些新的 AGC/LNA 参数在设置上运行一些实验、以查看是否仍然出现此问题?

    我在 AGC 参数中注意到的一点是 LNA 增益裕度、将此设置为46意味着当 DSA 设置= 2dB、比最大 DSA 衰减25低23 dB (46/2)时、LNA 将停止被旁路。 根据我在 Christian 的上述博文中的理解、 我相信您的意图是将此设置为使 LNA 在 DSA 达到23dB 时停止被旁路、DSA 比最大衰减25dB 低2dB。 为了获得这种行为、我已更改了 LNA 增益裕度= 4。

    我还将其他一些参数更改为标准值、因此我们可以进一步排查这个问题。

    您可以尝试以下 AGC 参数吗?

    ##############		AGC			##############
    for i in range(4):
    	## Internal AGC mode
    	#### RXA/B config
    	sysParams.agcParams[i].agcMode = 1 												# Internal AGC mode
    	sysParams.agcParams[i].rfdeten = 0 												# RF analog detector is enabled.
    	sysParams.agcParams[i].atken = [0,1,0] 											# attack peak detector is enabled with big step. # big step, small step, pow det
    	sysParams.agcParams[i].decayen = [0,1,0] 										# decay power detector is enabled. # big step, small step, pow det
    	
    	sysParams.agcParams[i].atkthreshold = [-8,-10,-14] 								# This value is the applied threshold of attack detector # big step=-8, small step=-10, pow det
    	sysParams.agcParams[i].decaythreshold = [-22,-20,-20] 							# This value is the applied threshold of decay detector # big step=-22, small step=-20, pow det
    	
    	sysParams.agcParams[i].atkwinlength = [170,170] 								# Attack detector Time Constant in absolute time in ns. Max is 40ms
    	sysParams.agcParams[i].decaywinlength = 87380 									# Decay detector Time Constant in absolute time in ns. Max is 40ms
    	sysParams.agcParams[i].atkNumHitsAbs = [8,8]									# Absolute Number of times signal crosses threshold.
    	sysParams.agcParams[i].decayNumHitsAbs = [8,8]									# Absolute Number of times signal crosses threshold.
    	
    	sysParams.agcParams[i].custRfMode = 1 											# Use RF analog detector as very big step attack in internal AGC.
    	sysParams.agcParams[i].atksize = [6,2]											# Whenever detector triggers the DSA change 0.5dB* value
    	sysParams.agcParams[i].decaysize = [6,2] 										# Whenever detector triggers the DSA change 0.5dB* value
    	sysParams.agcParams[i].minDsaAttn = 0 											# Minimum DSA attenuation used by AGC, 0.5dB* value
    	sysParams.agcParams[i].maxDsaAttn = 50 # 60 # 23								# Maximal DSA attenuation used by AGC, 0.5dB* value
    	sysParams.agcParams[i].totalGainRange = 52 # 57 # 50							# Total gain range used by ALC for gain compensation
    	
    	sysParams.agcParams[i].rfdetnumhits = 8 										# Absolute Number of times signal crosses threshold.
    	sysParams.agcParams[i].rfdetstepsize = 8 										# Whenever RF detector triggers the DSA change 0.5dB* value, i.e.25 dB.
    	
    	# # external LNA control
    	sysParams.agcParams[i].lnaEn = True 											# Enternal RXA LNA control
    	sysParams.agcParams[i].extLnaTempModel = 0										# Use a temperature model for the lna gain
    	sysParams.agcParams[i].singleDualBandMode = 0 									# RXA is single band
    	sysParams.agcParams[i].lnagain0 = 27 										    # The gain of external RXA LNA for AGC to compensate, the resolution is 0.03125 dB 864 or 27.0?
    	sysParams.agcParams[i].lnaphase0 = 0 											# The phase of external RXA LNA for AGC to compensate in Band0
    	sysParams.agcParams[i].lnaGainMargin = 4 								        # hysteresis value when to turn on lna
    	sysParams.agcParams[i].blank_time_extcomp = 255 								# number of clocks of FadcRx/8 max 65535
    
    for i in range(4):
    	# ALC and floating point mode
    	sysParams.agcParams[i].alcEn = 1 												# RXA ALC enabled
    	sysParams.agcParams[i].alcMode = 0 												# RXA Floating point mode 0 float
    	sysParams.agcParams[i].fltPtMode = 1 											# RXA Always send MSB of mantissa in floating point mode
    	sysParams.agcParams[i].fltPtFmt = 2 											# RXA 4 bit exponent, 11 bit mantissa and 1 bit sign

    如果您仍然看到相同的问题、是否仍可以 对以下两项更改进行实验?

    1. 设置 maxDsaAttn = 60和 totalGainRange = 57
    2. 设置 maxDsaAttn = 23和 totalGainRange = 50

    请告诉我这些新的 AGC 设置是否显示出任何不同的行为、如果更改这些 AGC 参数不可能或在您结束时非常困难、请告诉我、我们可以考虑其他情况。

    谢谢!

    Aman