精华内容
下载资源
问答
  • ADI 锁相环基本原理

    2018-11-18 18:59:27
    ADI 锁相环基本原理,非常好的PLL资料。。
  • ADI 锁相环常见问题解答
  • ADIsimPLL ADI 锁相环设计 仿真软件 win10*64亲测可用 无需官网注册下载
  • 该资源主要介绍了锁相环的工作原理及主要技术指标,而且还总结了在使用过程中,对应用常见问题的解答,最后还提供了PLL的调试步骤
  • adi公司关于pll的相关解答,非常详细,学习和使用这块内容的必须参考
  • ADI的芯片SPI的配置方式都基本相同,对于不同类型的片子,有可能时序会存在少许差异,需要留心手册的详细说明。 查阅LTC6946的手册时,找到SPI读写的时序图如下所示: ![在这里插入图片描述]...

    上一章讲了环路滤波器的设计,本章主要对SPI如何实现进行讲解。SPI作为一种常用的控制总线,在嵌入式应用中很常见。ADI的芯片SPI的配置方式都基本相同,对于不同类型的片子,有可能时序会存在少许差异,需要留心手册的详细说明。
    查阅LTC6946的手册时,找到SPI读写的时序图如下所示:
    在这里插入图片描述
    在这里插入图片描述
    从图中可以看到SPI的读写都是以CS管脚拉低开始的,都是在时钟的上升沿进行数据采样的,可能其他片子会出现读取的时候是在时钟的下降沿,这点需要特别关注。在做控制时,管脚在各个状态下的控制时长需要参考electrical characteristics中的约束:
    在这里插入图片描述
    SPI写的过程参考下图,首先写入需要配置寄存器的地址,之后再写入寄存器的配置值:
    在这里插入图片描述
    读寄存器也是类似,先写入所要读取的寄存器的地址,之后给出时钟(master模式),再读取SDO的状态:
    在这里插入图片描述
    注:我们只以1Byte模式做示例,如果对于多Byte模式有兴趣可以自行学习,或者留言交流。
    从图中可以看到,地址位占7bits,功能位占1bit,由功能位指示当前的操作是读寄存器还是写寄存器,也就是说第一个Byte写入便告知了设备,当前的操作是读操作还是写操作,以及操作的寄存器是哪个,之后下一Byte即为读或写的值。读写SPI的C语言程序我这里做了简单的封装,可以参考实现,对SPI读写速率有要求的朋友可以自行设置程序中的延迟,但必须遵循手册里的最小时序要求。本示例程序是在松翰科技的SN8F5702单片机上实现,若需要在其它MCU上实现,则需要修改相应的控制管脚和时延函数。

    /**
    *  函 数:  SetSckPinValue()
    *  功 能:  控制时钟管脚的电平
    *  作 者:
    *  日 志:  函数创建
    */
    void SetSckPinValue(uint8_t val)
    {
    	if (val > 0)
    	{
    		P13 = 1; /*管脚拉高*/
    	}
    	else
    	{
    		P13 = 0; /*管脚拉低*/
    	}
    }
    
    /**
    *  函 数:  SetMosiPinValue()
    *  功 能:  设置SDI管脚的状态
    *  作 者:
    *  日 志:  函数创建
    */
    void SetMosiPinValue(uint8_t val)
    {
    	if (val > 0)
    	{
    		P14 = 1; /*管脚拉高*/
    	}
    	else
    	{
    		P14 = 0; /*管脚拉低*/
    	}
    }
    
    /**
    *  函 数:  SetCePinValue()
    *  功 能:  设置CS管脚的状态
    *  作 者:
    *  日 志:  函数创建
    */
    void SetCePinValue(uint8_t val)
    {
    	if (val > 0)
    	{
    		P16 = 1; /*管脚拉高*/
    	}
    	else
    	{
    		P16 = 0; /*管脚拉低*/
    	}
    }
    
    /**
    *  函 数:  GetMisoPinValue()
    *  功 能:  读取SDO管脚的状态
    *  作 者:
    *  日 志:  函数创建
    */
    uint8_t GetMisoPinValue(void)
    {
    	uint8_t val = 0xff;
    	
    	val = P15;
    	return val;
    }
    
    /**
    *  函 数:  Delay10us()
    *  功 能:  以10us为单位进行阻塞性延迟
    *  作 者:
    *  日 志:  函数创建
    */
    void Delay10us(uint16_t n)
    {
    	uint16_t i;
    	unsigned char j;
    	for (i=0; i<n; i++) {
    		for (j=0; j<6; j++) {}
    		}
    }
    
    /**
    *  函 数:  SpiWriteD()
    *  功 能:  以SPI的方式写入数据
    *  作 者:
    *  日 志:  函数创建
    */
    void SpiWriteD(uint8_t *pRegisterData, uint8_t N)
    {
    	unsigned char i,j;
    	uint8_t value = 0;
    
    	//Write out the data 
    	for(j=0;j<N;j++)
    	{
    		value = pRegisterData[j];
    		for(i=0; i<8; i++)
    		{	
    			SetSckPinValue(0);
    			Delay10us(5);
    	
    			if(0x80 == (value & 0x80))
    			{
    				SetMosiPinValue(1);	  //Send one to SDIN pin
    				Delay10us(5);
    			}
    			else
    			{
    				SetMosiPinValue(0);	  //Send zero to SDIN pin
    				Delay10us(5);
    			}
    			
    			SetSckPinValue(1);
    			Delay10us(5);
    		
    			value <<= 1;	//Rotate data
    		}
    		
    		Delay10us(5);
    		SetSckPinValue(0);
    	}
    	
    	Delay10us(10);
    }
    
    /**
    *  函 数:  ReadRegist()
    *  功 能:  读取锁相环寄存器
    *  作 者:
    *  日 志:  函数创建
    */
    uint8_t SpiReadRegist(uint8_t addr)
    {
    	uint8_t	i= 0;
    	uint8_t val = 0;
    	uint8_t	iTemp = 0;
    	
    	SetCePinValue(0); /*将CS管脚拉低*/
        
    	val = (addr << 1) | DAT_READ;
        SpiWriteD(&val, 1); /*写入需要读取的地址*/
    	
    	// SPI读取
    	for(i=0; i<8; i++)
    	{
    		SetSckPinValue(0);
    		Delay10us(5);
    
    		SetSckPinValue(1);
    		Delay10us(5);
    		
    		iTemp<<=1;
    		iTemp |= GetMisoPinValue();			// P4.4->SDout
    	}
    	
    	SetCePinValue(1); /*将CS管脚拉高*/
    	Delay10us(10);
    	
    	return (iTemp);
    }
    
    /**
    *  函 数:  SpiUpdataRegist()
    *  功 能:  配置锁相环寄存器
    *  作 者:
    *  日 志:  函数创建
    */
    void SpiUpdateRegist(uint8_t addr, uint8_t value)
    {
    	uint8_t val = 0;
    	
    	SetCePinValue(0); /*将CS管脚拉低*/
    	
    	val = (addr << 1) | DAT_WRIRE;
    	SpiWriteD(&val, 1); /*写入需要配置的寄存器地址*/
    	
    	SpiWriteD(&value, 1); /*更新寄存器*/
    	
    	SetCePinValue(1); /*将CS管脚拉高*/
    	Delay10us(10);
    	SetCePinValue(0); /*将CS管脚拉低*/
    	Delay10us(10);
    	SetCePinValue(1); /*将CS管脚拉高*/
    	Delay10us(10);
    }
    

    在进行SPI控制的时候,我这里没有直接使用单片的SPI功能,而是直接使用GPIO管脚模拟SPI读写时序完成SPI读写,目的是为了更好的兼容其它芯片,本示例程序已经验证通过,可以直接使用,另外需要注意的是在SPI写的时候,CS的控制要严格按照时序图进行操作,在数据写入完成之后,CS拉高,保持tCSH时长之后必须拉低,PLL芯片才认为该次写入结束。写入数据和读取数据都是MSB的方式。在调试的时候可以使用示波器同时抓取各个管脚上的信号,配合查看读写的情况。
    本章SPI的读写就差不多是这样了,有时间了下一章我再补上LTC6946-2的寄存器配置。

    展开全文
  • 要完成锁相环的寄存器配置,需要对照协议将锁相环的每一个寄存器所要实现的功能分析清除。从大的方面来讲,寄存器分为系统信息及状态查询型寄存器、功能型寄存器、性能型寄存器,其中第一种寄存器多为只读寄存器,后...

    要完成锁相环的寄存器配置,需要对照协议将锁相环的每一个寄存器所要实现的功能分析清除。从大的方面来讲,寄存器分为系统信息及状态查询型寄存器、功能型寄存器、性能型寄存器,其中第一种寄存器多为只读寄存器,后两种多为读写型寄存器。三种寄存器中功能型寄存器最为重要,功能型寄存器配置正确了,系统的输出就基本上没有什么大的问题了,性能型寄存器只是在当前功能上实现性能的优化,而系统状态寄存器通常用于判断当前锁相环的工作状态。
    首先从LTC6946手册中找到寄存器介绍的章节,详细阅读每一个寄存器的介绍后发现,真正需要配置的只有寄存器2~A,寄存器0是锁相环状态寄存器,寄存器1是用来对寄存器0的状态进行掩码处理,可以不用关心,而寄存器B是系统信息寄存器,也可以忽略。
    在这里插入图片描述
    在这里插入图片描述

    这里我不再详细分析每一个寄存器的每一个bit的作用,我只根据程序配置对我们实际用到的bit位做重点介绍,配置程序如下,其中调用的函数可以在上一章的SPI讲解中找到:

    /**
    *  函 数:  LTC6946FreqConfig()
    *  功 能:  锁相环输出时钟频率和功率配置
    *  作 者:
    *  日 志:  函数创建
    */
    void LTC6946FreqConfig(uint8_t freq)
    {
    	uint8_t val = 0;
    	uint8_t reg = 0;
    	uint8_t valBuf[] = {0x58, 0x5A, 0x5C};
    	
    	/*配置寄存器2, PDREFO-1 OMUTE-1*/
    	reg = 0x0A;
    	SpiUpdateRegist(SPI_REG_2_ADDR, reg);	
    	val = SpiReadRegist(SPI_REG_2_ADDR);
    	if (val != reg)
    	{
    		printf("< register 2 config error!\n");
    	}
    	
    	/*配置寄存器2, PDREFO-1 OMUTE-1*/
    	reg = 0x24;
    	SpiUpdateRegist(SPI_REG_1_ADDR, reg);	
    	val = SpiReadRegist(SPI_REG_1_ADDR);
    	if (val != reg)
    	{
    		printf("< register 1 config error!\n");
    	}
    	
    	/*配置寄存器3*/
    	reg = 0x00;
    	SpiUpdateRegist(SPI_REG_3_ADDR, reg);
    	val = SpiReadRegist(SPI_REG_3_ADDR);
    	if (val != reg)
    	{
    		printf("< register 3 config error!\n");
    	}
    	
    	/*配置寄存器4 R-25*/
    	reg = 0x19;
    	SpiUpdateRegist(SPI_REG_4_ADDR, reg);
    	val = SpiReadRegist(SPI_REG_4_ADDR);
    	if (val != reg)
    	{
    		printf("< register 4 config error!\n");
    	}
    	
    	/*配置寄存器5 N-H07*/
    	reg = 0x07;
    	SpiUpdateRegist(SPI_REG_5_ADDR, reg);
    	val = SpiReadRegist(SPI_REG_5_ADDR);
    	if (val != reg)
    	{
    		printf("< register 5 config error!\n");
    	}
    	
    	/*配置寄存器6 N-L8bit*/
    	reg = valBuf[freq];
    	SpiUpdateRegist(SPI_REG_6_ADDR, reg);
    	val = SpiReadRegist(SPI_REG_6_ADDR);
    	if (val != reg)
    	{
    		printf("< register 6 config error!\n");
    	}
    	
    	/*配置寄存器7,开始输出校准*/
    	reg = 0x03;//0x63;
    	SpiUpdateRegist(SPI_REG_7_ADDR, reg);
    	val = SpiReadRegist(SPI_REG_7_ADDR);
    	if (val != (reg & 0xFD))
    	{
    		printf("< register 7 config error!\n");
    	}
    	
    	/*配置寄存器8,BST-1 FILT-1 OD-1*/
    	reg = 0xA9; 
    	SpiUpdateRegist(SPI_REG_8_ADDR, reg);
    	val = SpiReadRegist(SPI_REG_8_ADDR);
    	if (val != reg)
    	{
    		printf("< register 8 config error!\n");
    	}
    	
    	/*配置寄存器9,LKWIN-1(2MHz) LKCNT-1(128)采用1/15的步长因子, CP-B(5.6mA)*/
    	reg = 0x59; 
    	SpiUpdateRegist(SPI_REG_9_ADDR, reg);
    	val = SpiReadRegist(SPI_REG_9_ADDR);
    	if (val != reg)
    	{
    		printf("< register 9 config error!\n");
    	}
    	
    	/*配置寄存器A,CPCHI-1 CPCLO-1*/
    	reg = 0xC0; 
    	SpiUpdateRegist(SPI_REG_A_ADDR, reg);
    	val = SpiReadRegist(SPI_REG_A_ADDR);
    	if (val != reg)
    	{
    		printf("< register A config error!\n");
    	}
    	
    	/*配置寄存器2, OMUTE = 0*/
    	reg = 0x08;
    	SpiUpdateRegist(SPI_REG_2_ADDR, reg);	
    	val = SpiReadRegist(SPI_REG_2_ADDR);
    	if (val != reg)
    	{
    		printf("< register 2 config error!\n");
    	}
    	
    	printf("< LTC6946-2 register config complete, wait for locked!\r\n");
    	
    	val = 0;
    	while (!val)
    	{
    		val = SpiReadRegist(SPI_REG_0_ADDR);
    		val = (val >> 2) & 0x01;
    	}
    	
    	gRfLocked = 1; /*指示频点已经配置完成*/
    	
    	printf("< LTC6946-2 PLL locked!\r\n");
    }
    

    寄存器的配置顺序是2-3-4-5-6-7-8-9-A-2,每一个寄存器的配置值为:

    寄存器VALUE
    0124
    020A
    0300
    0419
    0507
    0658/5A/5C
    0703
    08A9
    0959
    0ACD
    0208

    我们想要输出的目标频率有3个,分别是3760MHz/3764MHz/3768MHz,现在以这几个目标频率为例讲解各个寄存器的配置情况。

    02寄存器: 配置为0A主要目的是想关闭RF输出并打开REFO,手册里有以下描述:
    For correct PLL operation all internal blocks should be
    enabled, but PDREFO should be set if the REFO pin is
    not being used. OMUTE may remain asserted (or the
    MUTE pin held low) until programming is complete
    我们硬件设计里REFO没有使用,所以按照厂家要求需要将REFO位置1.

    03寄存器: 该寄存器的高4位是B,低2位是R,B是数字校准环路的分频器,计算方法如下:
    在这里插入图片描述
    其中fpfd为鉴相器频率,是有参考频率和分频系数决定的,我们实际使用的参考频是50MHz,分频系数(即R,前文环路滤波器有提到)为25,故fpfd为2MHz,fCAL_MAX由使用的芯片型号决定,可根据表7获得,计算出B之后需要查表获取寄存器配置的索引:

    在这里插入图片描述
    在这里插入图片描述
    B = 2 / 1.33 = 1.5 根据表8查得BD为0000(2进制),因为R为25,故RD[9]和RD[8]都为0,所以03寄存器配置为0x00;

    04寄存器: 该寄存器是分频系数R的低8位,我们计算的R为25,可以直接转换为十六进制为0x19;

    05寄存器: 倍频系数N的高8位,根据前章我们知道N为1880,故此处值为0x07;

    06寄存器: 倍频系数N的低8位,此处为0x58或0x5A或0x5C;

    07寄存器: 当寄存器6配置完之后,就可以开始VCO校准了,使能ALC功能项(ALCMON = 1, ALCCAL = 1),同时使能LKEN,这个bit位主要是用于使能PLL的锁定指示,方便后边对锁相环的状态查询;

    08寄存器: 该寄存器中的BST和FILT是用来改善参考频率的性能,也就是前文所提到的性能寄存器,它是由参考频率本身特性决定的,可由查表获得:
    在这里插入图片描述
    根据实际测量,我们的参考频率Vpp小于2.0V,故BST配置为1,我们的参考频率为50MHz,故FILT为1,FRO为配置的输出功率,这个可根据自己的实际需求来选择,我们这里选择了-3dBm,所以RFO为1,OD为最终输出分频比(此值改动不需要重新进行VCO校准),我们这里配置的是1。综上,该寄存器配置为0xA9;

    09寄存器: 该寄存器主要是VCO校准的一些参数和环路滤波器的电荷泵电流配置,其中LKWIN可以根据输入的参考频率查表3获得,LKCNT这里我们选择128,原因是我们在计算BW时采用了官方推荐的因子15,电荷泵选择了5.8mA,原因可以参考前章环路滤波器设计。

    在这里插入图片描述

    在这里插入图片描述

    综上,寄存器09的配置值为0x59;

    寄存器0A: 该寄存器主要是用于电荷泵的错误状态监测,我们采用了官方推荐的配置值0xC0;

    寄存器02: 最后再配置一次寄存器02,将RF打开,REFO关闭即可,配置值为0x08.

    至此,所有的寄存器就配置完成了,回到配置程序,我们可以看到在每次配置完成之后,我都对寄存器进行了一次读取,这样做的好处是可以及时确认当前寄存器配置是否成功,另外需要注意的是LKEN在置为1后,系统在启动校准后会自动清零,所以寄存器07在配置后读取的值和配置值会略有不同。在程序的最后,我们使用while查询PLL的锁频状态,只有当寄存器01的LOCK位被置为1时才说明系统配置正确,PLL锁频完成。

    展开全文
  • ADI的LTC6946-2锁相环是一款低噪声、整数分频比和整数VCO的PLL,可以达到-226dBc/Hz的常规带内相噪浮动,-157dBc/Hz的输出相位造成浮动。具有1~6的Divider可选。CP电流范围从250μA到11.2mA,可以通过SPI对芯片的...

    ADI的LTC6946-2锁相环是一款低噪声、整数分频比和整数VCO的PLL,可以达到-226dBc/Hz的常规带内相噪浮动,-157dBc/Hz的输出相位造成浮动。具有1~6的Divider可选。CP电流范围从250μA到11.2mA,可以通过SPI对芯片的寄存器进行配置,以达到满足用户需求的系统输出。可以使用官方的PLLWizard软件进行参数设计。
    本文以3760MHz的射频输出为例进行讲解,如何做硬件上的环路滤波器设计和SPI时序控制,以及寄存器参数计算和配置。
    为了能够对芯片有足够的了解,首先我们需要认真的浏览该款芯片的官方SPEC,提取出对我们有用的信息。在设计中我们需要关注的点有以下几个方面:

    1. 硬件参考设计

    2. SPI读写时序要求

    3. 寄存器详细说明

      搞清楚以上3点,对于锁相环的使用你将变得如鱼得水,本章先从硬件参考设计入手,分析如何获得一个合理的环路滤波器。
      硬件参考设计如图所示:
      在这里插入图片描述
      其中红色方框内即为环路滤波器硬件设计,我们需要做的就是根据自己的实际输出需求,计算相应的阻容值。在计算阻容值时,为了方便可以直接使用官方的PLLWizard软件来完成,此软件需要安装,完成安装之后双击打开,可以看到一些启动提示,根据实际情况选择,之后进入到配置界面,如下图所示:
      在这里插入图片描述
      首先,我们需要选择我们使用的芯片型号(方框1),若芯片型号不对,则后续的所有配置都将无效,型号选择完成之后,切换到Loop Design界面(方框2):

      在LOOP DESIGN界面开始进行环路滤波器设计,在环路滤波器设计之前,需要对系统硬件有一定的了解,如输入的参考频率,目标输出频率等。按照步骤配置完成之后效果如下图所示:
      在这里插入图片描述

    第一步:参数配置:
    (1)、fref为系统参考时钟,我们这里使用到的是50MHz,这个需要根据实际硬件设计来填写;
    (2)、fstep = fref / R 其中R为分频系数,我们使用到的是25;
    (3)、frf = (fref / R) * N 其中R为分频系数,N为倍频系数,需要指出的是f_out = frf / O 其中O为输出分频系数;
    (4)、Loop BandWidth = fstep / factor 其中factor需要小于等于10,我们当前使用的是手册推荐的15。
    参数计算中使用到的N、R和O可以根据输入参考频率和输出的目标频率通过编写简单的matlab程序获取,如有需求可留言索要。

    第二步:配置part param
    根据计算的N、R、O填写相应选项,其中FILT、LKWIN、B cnt可以根据参考频率fREF和鉴相频率fPFD查表获得,fPFD = fREF / R,配置完之后,点击compute params进行参数合理性验证。

    第三步:选择Icp后,点击Design Filter获取阻容值,Icp的选择可以根据获得的阻容值跟实际可以获得的阻容值的匹配度来选取。理论值和真实值之间误差越小越好,同时Icp越大越能获取良好的带内噪声,所以这也是个平衡的问题。

    本范例计算的阻容值分别是:
    Rz = 1304Ω
    Ci = 3.2nF
    Cp =0.26nF

    实际使用的阻容值为:
    Rz = 1300Ω
    Ci = 3.3nF
    Cp = 0.24nF

    实测输出可以看到滤波效果还是比较好的,比选用8.0mA要好很多。

    展开全文
  • ADI 公司锁相环产品概述以及锁相环产品的常见问题解答。
  • 2019年从官网下载的ADI锁相环PLL仿真工具ADIsimPLL5.10及使用手册,可用于ADI公司的锁相环,频率源器件仿真。
  • ADF4351原理图个人觉得很有参考价值,新手小白可以借鉴参考一下还是有点作用的
  • ADI锁相环PLL仿真工具及使用手册 2011版,版本号3.4.06 使用ADF4360等系列pll芯片的仿真和设计软件,帮你进行芯片频率设定后的周边参数确定工作。
  • 锁相环(PLL)电路是由压控振荡器(VCO)和鉴相器组成的反馈系统,振荡器信号跟踪施加的频率或相位调制信号是否具有正确的频率和相位。需要从固定低频率信号生成稳定的高输出频率时,或者需要频率快速变化时,都可以使用...
  • 锁相环(PLL)电路是由压控振荡器(VCO)和鉴相器组成的反馈系统,振荡器信号跟踪施加的频率或相位调制信号是否具有正确的频率和相位。需要从固定低频率信号生成稳定的高输出频率时,或者需要频率快速变化时,都可以...
  • 锁相环ADI视频里记录

    2021-07-09 19:02:46
    锁相环电路具有锁定时无剩余频差、具有良好的载波跟踪性能、具有良好的宽带调制跟踪性能,门限性能好、易于集成等优良特性,通信系统中的应用是锁相解调、载波提取、频率合成。 上图所示为,锁相环作为频率综合器...

    在这里插入图片描述
    参考R分频器
    双模预分频器
    小数N综合器

    在这里插入图片描述
    锁相环电路具有锁定时无剩余频差、具有良好的载波跟踪性能、具有良好的宽带调制跟踪性能,门限性能好、易于集成等优良特性,通信系统中的应用是锁相解调、载波提取、频率合成。
    上图所示为,锁相环作为频率综合器产生本振信号在通信系统的应用,也是最典型的应用。
    在这里插入图片描述

    展开全文
  • ADI_如何设计并调试锁相环(PLL)电路
  • ADI PLL 设计操作视频

    2020-04-30 21:49:07
    简短视频展示了ADI 锁相环软件的操作,选择ADI器件、设计环路滤波器、选择滤波器类型、修改环路带宽、仿真观察各种输出,锁定时间、频差估计、相位噪声估计,生成锁相环电路。
  • 近日发布三款全新的锁相环(PLL)器件ADF5355/ADF4355-2/ADF4155.  其中一款具有业界宽的频率覆盖范围和的压控振荡器(VCO)相位噪声,且在单个器件中实现这些性能。ADF5355 PLL具有同类宽的55 MHz至14 GHz频谱...
  • 新版本的ADI锁相环设计软件ADIsimPLL 4.3.6官网安装包,在WIN10系统下也能正常安装使用。本版本支持更多主流芯片,专业的环路滤波器的设计功能,使用本程序能够帮助你设计出所需要的电路。能够产品开发周期,减少...
  • 锁相环常见问题解答

    2018-08-03 20:43:32
    常见的锁相环问题解答,适合射频初学者做参考,主要为ADI 公司锁相环产品概述
  • ADF4371中文版.pdf

    2021-03-25 20:21:04
    ADI 锁相环PLL-ADF4371中文版
  • 锁相环资料

    2015-11-15 20:53:35
    非常详细的PLL资料,ADI资深工程师提供
  • 锁相环仿真软件

    2014-07-11 15:43:01
    针对锁相环设计中的相位噪声和环路滤波器仿真设计,自带ADI芯片
  • PLL 锁相环基本原理

    2018-10-10 11:42:44
    PLL 锁相环基本原理,ADI官方MT-086锁相环(PLL)基本原理,中文版,写的非常详细,有利于理解相关理论。
  • ADIsimPLL-V4-3-06安装包

    2018-03-25 14:39:48
    ADIsimPLL4.3.6 官网安装包 WIN10亲测可用 ADI锁相环设计软件
  • 锁相环(PLL)基本原理,ADI的重要技术文档。结构清晰,内容很经典。
  • PLL锁相环相关基础知识

    万次阅读 多人点赞 2018-07-25 14:04:14
    趁着自己还有点时间和精力,把锁相环的一些知识记录一下,基础功不扎实,有误之处还请大佬拍错。   1. PLL的工作原理 锁相环一般由PD(鉴相器),LPF(环路滤波器),VCO组成。 有的同学可能要问了:“既然VCO在...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 201
精华内容 80
关键字:

adi锁相环