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.
工具与软件:
使用 REFP/N 作为基准时、我可以看到输出时钟和输入基准之间的相位看起来取决于基准频率。
我想我已经正确地对 PLL 进行了编程;我已将 ip_rdiv 设置为1;我正在设置 pll_ndiv 和 pll_psfb 以获得允许范围内的 f_vco。 我的输入频率在1和100 MHz 之间。 我设置了 SYNC_EN 位。
当我更改输入频率时、我根据需要应用新的 PLL 参数并进行重新同步。 我观察到的是、基准时钟和输出时钟之间的相对相位在很大程度上取决于频率。
为了说明、当输入时钟为5 MHz 时、我得到:
如果是30 MHz、我会得到以下消息:
顶部(黑色)是输入基准、底部(蓝色)是 PLL 输出时钟。 在本例中、输出频率=输入频率、但这只是为了更好地说明该问题;在我的应用中、情况并非总是如此。
当我增加基准频率时、相位偏移以非常规律的单调方式移动。
PLL 已锁定(声称是、似乎是)、并且这是100%可重现的(对于给定的频率、我始终获得相同的相位)。
这是预期行为吗? 我可以做什么来获得固定相位关系吗?
我知道可以使用输出 SYNC_DELAY 功能、但我认为这不是完整的解决方案、因为调节非常粗略并且范围有限。
Jean-Pierre,
如果您希望输入和输出之间具有固定相位关系、则需要所谓的零延迟模式(ZDM)。
我还将注意到、不推荐在新设计中使用 CDCI6214、我们推荐与引脚兼容(并提供 ZDM)的 CDCE6214。
谢谢!
Kadeem
谢谢你。 我尝试过 ZDM、但无法从它获得适当的时钟输出。 我需要使用内部反馈选项。 我已经按照表1设置了所有内容、PLL 声称被锁定、但是输出时钟运行速度比基准时钟快:基准为5.00 MHz、输出为5.06 MHz (PLL 被编程为生成输出=输入)。
我对 ZDM 应该如何工作感到困惑-根据表1、我必须设置 zdm_auto、这意味着自动计算 PLL_ndiv 和 PLL_psfb。 不过、表1还说明了我必须将 pll_psa 设置为 pll_psfb、并将 ch2_iod_div 设置为 pll_ndiv;用于此操作的过程是什么? 我不清楚其中哪些由用户设置、哪些由 PLL 本身设置、以及必须遵循什么顺序。 您能解释一下吗?
Jean-Pierre,
您能否从 TICS Pro 或寄存器转储中提供配置文件? 我可以在 EVM 上评估此结果、并让您知道我是否发现任何问题。
谢谢!
Kadeem
当然、这里是寄存器转储:
GENERIC0 (0x00):0x3100
GENERIC1 (0x01):0x6b82
GENERIC2 (0x02):0x0050
GENERIC3 (0x03):0x0000
POWER0 (0x04):0x005d
POWER1 (0x05):0x0008
STATUS0 (0x06):0x152c
STATUS1 (0x07):0x0c0f
STATUS2 (0x08):0x0001
STATUS3 (0x09):0x0000
EEPROM0 (0x0a):0x0000
EEPROM1 (0x0B):0x0000
EEPROM2 (0x0c):0x0000
EEPROM3 (0x0d):0x0000
EEPROM4 (0x0E):0x0000
STARTUP0 (0x0F):0xa137
STARTUP1 (0x10):0x921f
STARTUP2 (0x11):0x26c4
未知 (0x12):0xa001
未知 (0x13):0x0000
未知 (0x14):0x0001
未知 (0x15):0x0000
未知 (0x16):0x0000
未知 (0x17):0x0505
REV0 (0x18):0x0601
未知 (0x19):0x0406
INPUT0 (0x1a):0x8b1a
Input1 (0x1b):0x0001
INPUT_DBG0 (0x1c):0x0000
PLL0 (0x1d):0x0078
PLL1 (0x1E):0x5140
PLL2 (0x1F):0x1E72
未知 (0x20):0x0000
PLL4 (0x21):0x0007
未知 (0x22):0x0050
CH1_CTRL0 (0x23):0x8000
CH1_CTRL1 (0x24):0x0000
CH1_CTRL2 (0x25):0x0078
CH1_CTRL3 (0x26):0x0405
CH1_CTRL4 (0x27):0x0a65
CH1_CTRL5 (0x28):0x0008
CH2_CTRL0 (0x29):0x8000
CH2_CTRL1 (0x2A):0x0000
CH2_CTRL2 (0x2b):0x0078
CH2_CTRL3 (0x2C):0x0401
CH2_CTRL4 (0x2D):0x0a65
CH2_CTRL5 (0x2e):0x0008
CH3_CTRL0 (0x2F):0x8000
CH3_CTRL1 (0x30):0x0000
CH3_CTRL2 (0x31):0x0078
CH3_CTRL3 (0x32):0x0405
CH3_CTRL4 (0x33):0x0a65
CH3_CTRL5 (0x34):0x0008
CH4_CTRL0 (0x35):0x8000
CH4_CTRL1 (0x36):0x0000
CH4_CTRL2 (0x37):0x0004
CH4_CTRL3 (0x38):0x0481
CH4_CTRL4 (0x39):0x0a65
CH4_CTRL5 (0x3a):0x0008
CHx_CTRL0 (0x3b):0x0009
CHx_CTRL1 (0x3c):0x0010
CHx_CTRL2 (0x3D):0x1000
CHx_CTRL3 (0x3e):0x4210
CHx_CTRL4 (0x3f):0x0210
未知 (0x40):0x000d
未知 (0x41):0x0f34
未知 (0x42):0x0000
未知 (0x43):0x0020
未知 (0x44):0x0000
未知 (0x45):0x0000
未知 (0x46):0x0000
这里是测量的基准和输出时钟:基准为5 MHz、输出为5.063 MHz。
谢谢你。 我们将查看工作台上的内容、并在本周结束时回复您。
此致!
CRIS
Jean-Pierre,
PDN_CH2位设置为0。 禁用通道2后、ZDM 将不工作。 将此位设置为1、不进行其他更改、可在我的末端解决该问题
谢谢!
Kadeem
谢谢观看! 这可以解决我遇到的原始问题(可变相位)。
我仍然不理解 zdm_auto 位。 根据表1、需要将其设置为零延迟模式。 不过、无论我是否设置或清除它、我都具有相同的行为(输出时钟相同)。 在这两种情况下、我都手动设置 pll_ndiv 和 pll_pssfb。
可以保留 zdm_auto=0吗?
Jean-Pierre,
zdm_auto 位用于 在零延迟模式下自动控制 PLL_ndiv 和 PLL_psfb 的值。
然而、大多数配置已经为零延迟模式正确设置了这些位-在这种情况下、该位可保留为0或1。
谢谢!
Kadeem