jjzjj

HMC7044芯片配置总结

海盐nnn 2024-06-14 原文

HMC7044时钟芯片配置总结

项目背景

因为项目有多地同步的需求,对时钟准确性要求很 高。市面上常见的高精度晶振的误差在0.1ppm左右,在100M的工作频率下会有10HZ的误差,并不能满足项目需求,于是需要通过GPS信号获取信号为系统提供高精度时钟。

HMC7044芯片简介

3.2 GHz HMC7044时钟抖动衰减器内置可以支持和增强该接口标准特性的独特功能。HMC7044提供50 fs抖动性能,可改善高速数据转换器的信噪比和动态范围。HMC7044可以器件提供14路低噪声且可配置的输出,可以灵活地与许多不同的器件接口。HMC7044还具有各种时钟管理和分配特性,使得基站设计人员利用单个器件就能构建完整的时钟设计。基站应用中有许多串行JESD204B数据转换器通道需要将其数据帧与FPGA对齐。HMC7044时钟抖动衰减器可在数据转换器系统中产生源同步且可调的样本和帧对齐(SYSREF)时钟,使JESD204B系统设计得以简化。该器件具有两个锁相环(PLL)和重叠的片内压控振荡器(VCO)。

锁相环简介

锁相环是一个能够比较输出与输入相位差的反馈系统,利用外部输入的参考信号控制环路内部振荡信号的频率和相位,使振荡信号同步至参考信号。

内部结构有鉴相器PD、环路滤波器LPF、压控振荡器VCO,当输出信号频率和输入一致时,PLL电路进入锁定状态。

PLL的主要应用还有倍频,原理是通过控制分频系数,使fout=(N/M)fref,HMC7044内置了两个PLL锁相环,其功能也各不相同。第一个PLL针对低带宽配置设计,锁定外部VCXO,为第二个高性能PLL环路提供始终保持功能和参考频率。PLL1的功能是将干净的VCXO锁定至参考信号平均频率的其中之一,然后馈入PLL2,生成高质量时钟供本地使用。

第二个PLL环路具有两个可通过SPI选择的交叠片内VCO,中心频率分别为2.5GHZ和3GHZ。PLL2是一个极低噪声整数PLL,设计用来将VCXO频率倍频至VCO频率。

寄存器配置

上位机通过发送ADDR+DATA的方式,通过SPI协议向时钟芯片发送读写信息

具体各项配置请参考数据手册

遇到的问题

PLL1不锁定

PLL2不锁定

PLL1、PLL2锁定,但是分频系数、VCO频率与理论值有偏差

解决方式

调试平台:HMC7044评估开发板+HMC704x_GUI

PLL1不锁定的原因通常是分频系数设置的不对,要注意OSCIN的实测频率与输入CLKIN的时钟频率的比例关系正确配置PLL1,在调试时可以通过配置GPIO观察PLL1锁定情况,同时要注意输入时钟的优先级配置是否正确。

PLL2在实测中相对PLL1更难锁定,原因是之前并没有开启自动调谐模式(0x0001寄存器),虽然VCO设置为LOW模式也就是2.5GHZ,但是当其锁定时频率与理论值偏差很大(20%左右),之后增加了自动调谐后一切正常,输出频率与理论值完美吻合。

有关HMC7044芯片配置总结的更多相关文章

  1. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  2. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  3. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  4. SPI接收数据异常问题总结 - 2

    SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手

  5. 神州数码无线产品(AC+AP)配置 - 2

    注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配

  6. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  7. Ruby 默认将 IRB 配置为 Pretty_Inspect - 2

    我是ruby​​的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽

  8. ruby - 是否可以将 IRB 提示配置为动态更改? - 2

    我想在IRB中浏览文件系统并让提示更改以反射(reflect)当前工作目录,但我不知道如何在每个命令后进行提示更新。最终,我想在日常工作中更多地使用IRB,让bash溜走。我在我的.irbrc中试过这个:require'fileutils'includeFileUtilsIRB.conf[:PROMPT][:CUSTOM]={:PROMPT_N=>"\e[1m:\e[m",:PROMPT_I=>"\e[1m#{pwd}>\e[m",:PROMPT_S=>"FOO",:PROMPT_C=>"\e[1m#{pwd}>\e[m",:RETURN=>""}IRB.conf[:PROMPT_MO

  9. ruby - 如何配置 Ruby Mechanize 代理以通过 Charles Web 代理工作? - 2

    我正在使用Ruby/Mechanize编写一个“自动填写表格”应用程序。它几乎可以工作。我可以使用精彩CharlesWeb代理以查看服务器和我的Firefox浏览器之间的交换。现在我想使用Charles查看服务器和我的应用程序之间的交换。Charles在端口8888上代理。假设服务器位于https://my.host.com。.一件不起作用的事情是:@agent||=Mechanize.newdo|agent|agent.set_proxy("my.host.com",8888)end这会导致Net::HTTP::Persistent::Error:...lib/net/http/pe

  10. ruby-on-rails - 如果特定语言环境中缺少翻译,如何配置 i18n 以使用 en 语言环境? - 2

    如果特定语言环境中缺少翻译,如何配置i18n以使用en语言环境翻译?当前已插入翻译缺失消息。我正在使用RoR3.1。 最佳答案 找到相似的question这里是答案:#application.rb#railswillfallbacktoconfig.i18n.default_localetranslationconfig.i18n.fallbacks=true#railswillfallbacktoen,nomatterwhatissetasconfig.i18n.default_localeconfig.i18n.fallback

随机推荐