ADF4002【分频器】(康威)

这篇具有很好参考价值的文章主要介绍了ADF4002【分频器】(康威)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 adf4002怎么用,单片机,stm32,嵌入式硬件

 

 adf4002.c


/**********************************************************
                       康威科技
更多电子需求,请到淘宝店,康威电子竭诚为您服务 ^_^
https://kvdz.taobao.com/
**********************************************************/

#include "adf4002.h"
#include "sys_zdyz.h"

long int ReadData;

//long int Reg0x00 = 0x001F40;//r
//long int Reg0x01 = 0x0DAC01;//n

long int functionReg0x02R = 0x0D80C2; //function FUNCTION  0000 1101 1000 0000 1100 0010 //function寄存器 设置R DIVIDER OUTPUT
long int initReg0x03R = 0x0D80C3;//init  0000 1101 1000 0000 1100 0011  //INITIALIZATION 寄存器 设置R DIVIDER OUTPUT

long int functionReg0x02N = 0x0D80A2; //function 0000 1101 1000 0000 1010 0010 //function寄存器 设置N DIVIDER OUTPUT
long int initReg0x03N = 0x0D80A3;//init  0000 1101 1000 0000 1010 0011   //INITIALIZATION寄存器 设置N DIVIDER OUTPUT

long int Reg0x02_LEDON  = 0x0D80B2; //MUXOUT CONTROL : DVDD 0000 1101 1000 0000 1011 0010   functionlatch
long int Reg0x02_LEDOFF = 0x0D80F2; //MUXOUT CONTROL: DGND 0000 1101 1000 0000 1111 0010     functionlatch


void Delay(unsigned int z)
{
  unsigned int i,j;
  
  for(i = z; i > 0; i--)
    for(j = 10; j > 0; j--) ;
}

void DelayMs(void)
{
  unsigned int i, j;
  
  for(i = 0; i < 1000; i++)
  {
    for(j = 0; j < 1000; j++)
    {
      Delay(1000);
    }
  }
}
//adf4002 IO口初始化
void InitADF4002(void)
{
//	GPIO_InitTypeDef  GPIO_InitStructure;
//
//	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);	 //使能PC端口时钟
//
//	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;				 //
//	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
//	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//	GPIO_Init(GPIOC, &GPIO_InitStructure);

	PLL_SCK_0;
	PLL_SDI_0;
	PLL_SEN_0;
	SendDataPll(initReg0x03R); //INIT
  //  SendDataPll(functionReg0x02R); //funtion(执行功能锁存加载)
	SendDataPll(Reg0x02_LEDOFF); //INIT
	//RDivideTest(1);

}

void SendDataPll(unsigned long int Data)          //传送的数据
{
  unsigned char i;

	PLL_SCK_0;
  PLL_SEN_0;

  for(i = 0; i < 24; i++)
  {
    if(Data & 0x800000)
    {
      PLL_SDI_1;
    }
    else
    {
       PLL_SDI_0;
    }
    Data <<= 1;     
    PLL_SCK_1;
    
    Delay(100);
    
    PLL_SCK_0;
    Delay(100);
  }
  PLL_SDI_0;

  PLL_SEN_0;
  Delay(100);
  PLL_SEN_1;
}

void RDivideTest(u16 RData)
{
	u32 S_R = 0;
	
  S_R = Pre_R + (RData<<2) + R_Address;
  SendDataPll(functionReg0x02R); //funtion
  SendDataPll(0X000001);
  SendDataPll(S_R);
  SendDataPll(0X000001);
}
void NDivideTest(u16 NData)
{
	u32 S_N = 0;
	
  S_N = Pre_N + (NData<<8) + N_Address;
  SendDataPll(functionReg0x02N); //funtion
	SendDataPll(0X000000);
  SendDataPll(S_N);

}














adf4002.h

(cubemx配置了三个gpio output)


/**********************************************************
                       康威科技
更多电子需求,请到淘宝店,康威电子竭诚为您服务 ^_^
https://kvdz.taobao.com/
**********************************************************/

#ifndef _adf4002_h_
#define _adf4002_h_

#include "sys_zdyz.h"
#include "main.h"
#define R_Address 0X000000
#define N_Address 0X000001
#define F_Address 0X000002
#define I_Address 0X000003
#define Pre_R 0X000000          //X000,0000,DAT(14),00
#define Pre_N 0X000000          //XX0,DAT(13),XXXXXX,01

//管脚声明
//GND
//#define PLL_SCK PCout(9)// PC9
//#define PLL_SDI PCout(10)// PC10
//#define PLL_SEN PCout(11)// PC11
//
//#define PLL_SCK_0 PLL_SCK = 0
//#define PLL_SCK_1 PLL_SCK = 1
//
//#define PLL_SDI_0 PLL_SDI = 0
//#define PLL_SDI_1 PLL_SDI = 1
//
//#define PLL_SEN_0 PLL_SEN = 0
//#define PLL_SEN_1 PLL_SEN = 1


#define PLL_SCK_0 (HAL_GPIO_WritePin(PLL_SCK_GPIO_Port, PLL_SCK_Pin, GPIO_PIN_RESET))
#define PLL_SCK_1 (HAL_GPIO_WritePin(PLL_SCK_GPIO_Port, PLL_SCK_Pin, GPIO_PIN_SET))
#define PLL_SDI_0 (HAL_GPIO_WritePin(PLL_SDI_GPIO_Port, PLL_SDI_Pin, GPIO_PIN_RESET))
#define PLL_SDI_1 (HAL_GPIO_WritePin(PLL_SDI_GPIO_Port, PLL_SDI_Pin, GPIO_PIN_SET))
#define PLL_SEN_0 (HAL_GPIO_WritePin(PLL_SEN_GPIO_Port, PLL_SEN_Pin, GPIO_PIN_RESET))
#define PLL_SEN_1 (HAL_GPIO_WritePin(PLL_SEN_GPIO_Port, PLL_SEN_Pin, GPIO_PIN_SET))

void InitADF4002(void);
void Delay(unsigned int z);
void DelayMs(void);
void SendDataPll(unsigned long int Data);

void RDivideTest(u16 RData);
void NDivideTest(u16 NData);


#endif

main.c文章来源地址https://www.toymoban.com/news/detail-637514.html

InitADF4002();
	NDivideTest(10);//RF-IN输入时 值为1-8191
	//RDivideTest(10);//REF-IN输入时  值为1-16383

到了这里,关于ADF4002【分频器】(康威)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • verilog---分频器设计

    //设计分频器 将50MHZ信号分频产生1HZ的秒脉冲,输出信号占空比为50%。 //设计思路:用计数器设计,N分频:当计数到(N/2)-1个数时,输出时钟翻转一次 //50*10^6次分频:计数到24 999 999(需要25bit)时,输出信号翻转。 //无法用vmf仿真,因为endtime最大为10us,实际最少需要1000000u

    2024年02月04日
    浏览(11)
  • 06 分频器设计

    06 分频器设计

    实现分频一般有两种方法,一种方法是直接使用 PLL 进行分频,比如在 FPGA 或者 ASIC 设计中,都可以直接使用 PLL 进行分频。但是这种分频有时候受限于 PLL 本身的特性,无法得到频率很低的时钟信号,比如输入 100Mhz 时钟,很多PLL 都无法得到 1Mhz 以下的时钟信号。另外一种方

    2024年02月19日
    浏览(30)
  • VHDL实现分频器

    VHDL实现分频器

    目录 设计要求: 实现代码: 生成元件图形: 模拟仿真结果:​ 整体项目资源在:VHDL分频器-占空比50%-将FPGA板上的50Mhz的信号分频为1hz时钟信号-嵌入式文档类资源-CSDN文库 设计要求:                 将系统时钟50MHz 分频为1Hz 的时钟信号                 占

    2024年02月12日
    浏览(9)
  • FPGA——分频器

    FPGA——分频器

    野火学习备忘录——FPAG分频 时钟对于 FPGA 是非常重要的,但板载晶振提供的时钟信号频率是固定的,不一定满 足工程需求,所以分频和倍频还是很有必要的。这里通过计数的方式来实现分频。 1.通过计数器来实现6分频。两种方式。第一种直接通过计数方式直接获取获取。输

    2024年02月10日
    浏览(14)
  • 数字分频器设计(偶数分频、奇数分频、小数分频、半整数分频、状态机分频|verilog代码|Testbench|仿真结果)

    数字分频器设计(偶数分频、奇数分频、小数分频、半整数分频、状态机分频|verilog代码|Testbench|仿真结果)

    目录 一、前言 二、偶数分频 2.1 触发器级联法 2.2 计数器法 2.3 verilog代码 2.4 Testbench 2.5 仿真结果 三、奇数分频 3.1 占空比非50%奇数分频 3.2 占空比50%奇数分频 3.3 Verilog代码 3.4 Testbench 3.5 仿真结果 四、小数分频 4.1 双模前置分频法 4.2 Verilog代码 4.3 Testbench 4.4 仿真结果 五、半整

    2024年02月04日
    浏览(16)
  • 数字分频器设计(偶数分频、奇数分频、小数分频、半整数分频、状态机分频|verilog代码|Testbench|仿真结果)

    数字分频器设计(偶数分频、奇数分频、小数分频、半整数分频、状态机分频|verilog代码|Testbench|仿真结果)

    数字IC经典电路设计 经典电路设计是数字IC设计里基础中的基础,盖大房子的第一部是打造结实可靠的地基,每一篇笔者都会分门别类给出设计原理、设计方法、verilog代码、Testbench、仿真波形。然而实际的数字IC设计过程中考虑的问题远多于此,通过本系列希望大家对数字I

    2024年02月08日
    浏览(11)
  • 任意分频器电路设计

    任意分频器电路设计

    目录 任意分频器电路设计 1、任意偶数分频器电路设计 1.2、实验任务 1.3、程序设计 1.3.1、代码如下: 1.3.2、编写仿真 TB 文件 2、任意奇数分频器电路设计 2.1、实验任务 2.2、程序设计 2.2.1、奇数分频电路代码 2.2.2、编写仿真 TB 文件 2.2.3、仿真验证        偶数分频实现比较

    2024年02月16日
    浏览(10)
  • FPGA【Verilog分频器】

    FPGA【Verilog分频器】

            在数字系统的设计中经常会碰到需要使用多个时钟的情况。时钟信号的产生通常具有两种方法,一种是使用PLL(Phase Locked Loop,锁相环),可生成倍频、分频信号;另一种则是使用硬件描述语言构建一个分频电路。         分频器的设计通常分为以下三类:奇

    2024年02月20日
    浏览(19)
  • FPGA 多路分频器实验

    FPGA 多路分频器实验

    1 概述         在 FPGA 中,时钟分频是经常用到的。本节课讲解 2 分频、3 分频、4 分频和 8 分频的 Verilog 实现并且学习 generate 语法功能的应。 2 程序设计思路         1)整数倍分频,为 2、4、8,这种 2^n 次方倍数倍数关系的分频最容易实现,所以我们可以把这 3 种分

    2024年01月19日
    浏览(15)
  • 偶数分频器电路设计

    偶数分频器电路设计

    目录 偶数分频器电路设计 1、偶数分频器电路简介 2、实验任务 3、程序设计 方法1: 3.1、8分频电路代码如下: 3.2、仿真验证 3.2.1、编写 TB 文件 3.2.2、仿真验证 方法2: 4、计数器进行分频 4.1、仿真测试        分频器在逻辑设计中一直都担任着很重要的角色,分频器一般包

    2024年02月09日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包