我们需要从300MHz以200MHz的步长跳频至6GHz,在跳频的过程中出现
“######## Error Code = 471, comment:[TALISE_setFhmHop : nextFhmRfPllFrequency is out of scan range”
或者
“######## Error Code = 467, comment:[TALISE_setFhmMode : Out of range fhmInitFreq requested”
的错误。
请问出现这个问题的原因可能是什么?
nowfreq = 300 ,change per time is[102]ms nowfreq = 500 ,change per time is[102]ms nowfreq = 700 ,change per time is[102]ms nowfreq = 900 ,change per time is[102]ms nowfreq = 1100 ,change per time is[102]ms nowfreq = 1300 ,change per time is[102]ms nowfreq = 1500 ,change per time is[102]ms nowfreq = 1700 ,change per time is[102]ms nowfreq = 1900 ,change per time is[102]ms nowfreq = 2100 ,change per time is[102]ms ######## Error Code = 471, comment:[TALISE_setFhmHop : nextFhmRfPllFrequency is out of scan range ] nowfreq = 2300 ,change per time is[8]ms ######## Error Code = 471, comment:[TALISE_setFhmHop : nextFhmRfPllFrequency is out of scan range ] nowfreq = 2500 ,change per time is[8]ms ######## Error Code = 471, comment:[TALISE_setFhmHop : nextFhmRfPllFrequency is out of scan range ] nowfreq = 2700 ,change per time is[8]ms ######## Error Code = 471, comment:[TALISE_setFhmHop : nextFhmRfPllFrequency is out of scan range ] nowfreq = 2900 ,change per time is[8]ms ######## Error Code = 471, comment:[TALISE_setFhmHop : nextFhmRfPllFrequency is out of scan range ] nowfreq = 3100 ,change per time is[8]ms ######## Error Code = 471, comment:[TALISE_setFhmHop : nextFhmRfPllFrequency is out of scan range ] nowfreq = 3300 ,change per time is[8]ms ######## Error Code = 471, comment:[TALISE_setFhmHop : nextFhmRfPllFrequency is out of scan range ] nowfreq = 3500 ,change per time is[8]ms ######## Error Code = 471, comment:[TALISE_setFhmHop : nextFhmRfPllFrequency is out of scan range ] nowfreq = 3700 ,change per time is[8]ms ######## Error Code = 471, comment:[TALISE_setFhmHop : nextFhmRfPllFrequency is out of scan range ] nowfreq = 3900 ,change per time is[8]ms ######## Error Code = 471, comment:[TALISE_setFhmHop : nextFhmRfPllFrequency is out of scan range ] nowfreq = 4100 ,change per time is[8]ms ######## Error Code = 471, comment:[TALISE_setFhmHop : nextFhmRfPllFrequency is out of scan range ] nowfreq = 4300 ,change per time is[8]ms ######## Error Code = 471, comment:[TALISE_setFhmHop : nextFhmRfPllFrequency is out of scan range ] nowfreq = 4500 ,change per time is[8]ms nowfreq = 4700 ,change per time is[102]ms nowfreq = 4900 ,change per time is[102]ms nowfreq = 5100 ,change per time is[102]ms nowfreq = 5300 ,change per time is[102]ms nowfreq = 5500 ,change per time is[102]ms nowfreq = 5700 ,change per time is[102]ms nowfreq = 5900 ,change per time is[102]ms
您必须使用以下结构来设置跳频模式的频率范围:

设置范围后,调用如下 API 函数设置跳频频率。为确保在设置每个跳频频率之后,RF PLL 有足够的时间稳定到新的频率上(即PLL正常锁定),建议每次跳转后添加延迟(2~5s):

你可以参考随附的 IronPython:
########################
#ADI Demo Python Script
########################
#Import Reference to the DLL
import clr
import System
import time
clr.AddReferenceToFileAndPath("C:\\Program Files (x86)\\Analog Devices\\ADRV9009 Transceiver Evaluation Software\\AdiCmdServerClient.dll")
from AdiCmdServerClient import AdiCommandServerClient
from AdiCmdServerClient import Talise
from AdiCmdServerClient import FpgaTalise
from AdiCmdServerClient import Enums
from System import Array
import AdiCmdServerClient
#Create an Instance of the Class
Link = AdiCommandServerClient.Instance
#Connect to the Zynq Platform
if(Link.hw.Connected == 1):
Connect = 0
else:
Connect = 1
Link.hw.Connect("192.168.1.10", 55555)
print Link.Version()
#####################################################################
#Frequency hopping config, this can be set in radio off state only
####################################################################
Link.Talise.RadioOff()
Fhm_Config = Link.Talise.FhmConfig()
Fhm_Config.FhmGpioPin = AdiCmdServerClient.GpioSel.TAL_GPIO_INVALID #TAL_GPIO_04 #TAL_GPIO_INVALID
Fhm_Config.FhmMinFreq_MHz = 300
Fhm_Config.FhmMaxFreq_MHz = 6000
Link.Talise.SetFhmConfig(Fhm_Config)
Link.Talise.RadioOn()
#####################################################################
#Frequency hopping mode setup, this can be called in radio on state
####################################################################
Fhm_Mode = Link.Talise.FhmMode()
Fhm_Mode.FhmEnable = 1
Fhm_Mode.EnableMcsSync = 1
Fhm_Mode.FhmTriggerMode = Talise.FhmTriggerMode.FhmNonGpioMode #FhmGpioMode, FhmNonGpioMode
Fhm_Mode.FhmExitMode = Talise.FhmExitMode.FhmFullExit #FhmQuickExit, FhmFullExit
Fhm_Mode.FhmInitFrequency_Hz = 300000000
Link.Talise.SetFhmMode(Fhm_Mode)
####################################################################
#Read back the service frequency before starting frequency hopping
####################################################################
init_freq = 0
init_freq = Link.Talise.GetRfPllFrequency(Link.Talise.PllName.RfPll , 0)
#####################################################################
#Frequency hopping frequency set and can call any nymber of hopps
####################################################################
'''
#Link.Talise.SetFhmHop(300000000)
time.sleep(5)
print Link.Talise.GetFhmRfPllFrequency(0)
Link.Talise.SetFhmHop(500000000)
time.sleep(5)
print Link.Talise.GetFhmRfPllFrequency(0)
Link.Talise.SetFhmHop(700000000)
time.sleep(5)
print Link.Talise.GetFhmRfPllFrequency(0)
Link.Talise.SetFhmHop(900000000)
time.sleep(5)
print Link.Talise.GetFhmRfPllFrequency(0)
Link.Talise.SetFhmHop(1100000000)
time.sleep(5)
print Link.Talise.GetFhmRfPllFrequency(0)
Link.Talise.SetFhmHop(130000000)
time.sleep(5)
print Link.Talise.GetFhmRfPllFrequency(0)
'''
for i in range(0,100,1):
Link.Talise.SetFhmHop(300000000)
Link.Talise.SetFhmHop(6000000000)
Link.Talise.SetFhmHop(300000000)
###################################################################################################################
#Frequency hopping mode disable, make sure to disable after FHM as the RFPLL loop filter BW is restored to default.
###################################################################################################################
Fhm_Mode.FhmEnable = 0
Link.Talise.SetFhmMode(Fhm_Mode)
########################################
#configure back the service frequency
########################################
Link.Talise.RadioOff()
Link.Talise.SetRfPllFrequency(Link.Talise.PllName.RfPll , init_freq )
Link.Talise.RadioOn()
#Disconnect from the Zynq Platform
if(Connect == 1):
Link.hw.Disconnect()
taliseFhmConfig_t fhmConfig = {
TAL_GPIO_INVALID,
// 230, //450MHz TX rf Bandwidth
113, //225MHZ TX rf Bandwidth
6000
};
请问每次跳转都必须延时(2~5s)吗?因为我们需要一个全频段的实时扫描,从300MHz-6GHz,以每次200MHz的步长需要跳转29次。或者有什么别的方法可以达到实时的全频段扫描吗?
如上所述,延迟是必须的,在不出现故障的前提下可以进一步减小延迟。请问您最开始的问题是否得到了解决。
nowfreq = 100 ,change per time is[0]ms nowfreq = 300 ,change per time is[102]ms nowfreq = 500 ,change per time is[102]ms nowfreq = 700 ,change per time is[102]ms nowfreq = 900 ,change per time is[104]ms nowfreq = 1100 ,change per time is[104]ms nowfreq = 1300 ,change per time is[102]ms nowfreq = 1500 ,change per time is[102]ms nowfreq = 1700 ,change per time is[102]ms nowfreq = 1900 ,change per time is[104]ms nowfreq = 2100 ,change per time is[102]ms nowfreq = 2300 ,change per time is[102]ms nowfreq = 2500 ,change per time is[102]ms nowfreq = 2700 ,change per time is[102]ms nowfreq = 2900 ,change per time is[102]ms nowfreq = 3100 ,change per time is[102]ms nowfreq = 3300 ,change per time is[102]ms nowfreq = 3500 ,change per time is[102]ms nowfreq = 3700 ,change per time is[102]ms nowfreq = 3900 ,change per time is[102]ms nowfreq = 4100 ,change per time is[102]ms nowfreq = 4300 ,change per time is[102]ms nowfreq = 4500 ,change per time is[102]ms nowfreq = 4700 ,change per time is[102]ms nowfreq = 4900 ,change per time is[102]ms nowfreq = 5100 ,change per time is[102]ms nowfreq = 5300 ,change per time is[102]ms nowfreq = 5500 ,change per time is[102]ms nowfreq = 5700 ,change per time is[102]ms nowfreq = 5900 ,change per time is[102]ms最开始的问题已解决,非常感谢
已解决,非常感谢
你好,请问下,你后面跳频模式下,没切换一个跳频点,延迟多久才采集数据?