【ADF4351】使用FPGA进行SPI寄存器配置、使用FPGA计算各个频率的频点,ADF4351配置程序

news2024/10/5 20:23:03

简介

特性

输出频率范围:35 MHz至4,400 MHz
小数N分频频率合成器和整数N分频频率合成器
具有低相位噪声的VCO
可编程的1/2/4/8/16/32/64分频输出
典型抖动:0.3 ps rms
EVM(典型值,2.1 GHz): 0.4%
电源:3.0 V至3.6 V
逻辑兼容性: 1.8 V
可编程双模预分频器:4/5或8/9
可编程的输出功率
RF输出静音功能
三线式串行接口
模拟和数字锁定检测
在宽带宽内快速锁定模式
周跳减少

应用

无线基础设施(W-CDMA、TD-SCDMA、WiMAX、GSM、
PCS、DCS、DECT)
测试设备
无线局域网(LAN)、有线电视设备
时钟产生

简介

ADF4351结合外部环路滤波器和外部参考频率使用时,可实现小数N分频或整数N分频锁相环(PLL)频率合成器。

ADF4351具有一个集成电压控制振荡器(VCO),其基波输出频率范围为2200 MHz至4400 MHz。此外,利用1/2/4/8/ 16/32/64分频电路,用户可以产生低至35 MHz的RF输出频率。对于要求隔离的应用,RF输出级可以实现静音。静音功能既可以通过引脚控制,也可以通过软件控制。同时提供辅助RF输出,且不用时可以关断。

所有片内寄存器均通过简单的三线式接口进行控制。该器件采用3.0 V至3.6 V电源供电,不用时可以关断。

功能图

在这里插入图片描述

芯片引脚说明

芯片引脚图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SPI 时序配置寄存器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

module spi_adf4351(
    input wire clk,  // 主时钟信号
    input wire reset,  // 复位信号
    input wire [31:0] data_in,  // 要发送的数据
    input wire start,  // 开始发送信号
    output reg sclk,  // SPI时钟
    output reg sdata,  // SPI数据
    output reg enx,  // SPI片选
    output reg done  // 数据发送完成信号
);

// 状态定义
localparam IDLE = 3'b000,
           START = 3'b001,
           SHIFT = 3'b010,
           WAIT = 3'b011,
           STOP = 3'b100;

reg [2:0] state = IDLE;  // 当前状态
reg [2:0] next_state;  // 下一个状态
reg [31:0] shift_reg;  // 移位寄存器
reg [5:0] bit_cnt;  // 位计数器
reg [7:0] wait_cnt;  // 等待计数器,用于产生延时

always @(posedge clk or posedge reset) begin
    if (reset) begin
        state <= IDLE;
    end else begin
        state <= next_state;
    end
end

always @(state or start or bit_cnt or wait_cnt) begin
    case (state)
        IDLE: begin
            if (start) next_state = START;
            else next_state = IDLE;
        end
        START: begin
            next_state = SHIFT;
        end
        SHIFT: begin
            if (bit_cnt == 32) next_state = STOP;
            else next_state = WAIT;
        end
        WAIT: begin
            if (wait_cnt == 100) next_state = SHIFT;
            else next_state = WAIT;
        end
        STOP: begin
            next_state = IDLE;
        end
        default: next_state = IDLE;
    endcase
end

always @(posedge clk) begin
    case (state)
        IDLE: begin
            sclk <= 0;
            enx <= 1;
            done <= 0;
            bit_cnt <= 0;
            wait_cnt <= 0;
        end
        START: begin
            shift_reg <= data_in;
            enx <= 0;
        end
        SHIFT: begin
            sdata <= shift_reg[31];
            shift_reg <= shift_reg << 1;
            sclk <= 1;
            bit_cnt <= bit_cnt + 1;
            wait_cnt <= 0;
        end
        WAIT: begin
            wait_cnt <= wait_cnt + 1;
            sclk <= 0;
        end
        STOP: begin
            enx <= 1;
            done <= 1;
        end
    endcase
end

endmodule

测试

`timescale 1ns / 1ns

module spi_adf4351_tb;

reg clk_tb;
reg reset_tb;
reg start_tb;
reg [31:0] data_in_tb;
wire sclk_tb;
wire sdata_tb;
wire enx_tb;
wire done_tb;

// 实例化spi_adf4351模块
spi_adf4351 DUT (
    .clk(clk_tb),
    .reset(reset_tb),
    .data_in(data_in_tb),
    .start(start_tb),
    .sclk(sclk_tb),
    .sdata(sdata_tb),
    .enx(enx_tb),
    .done(done_tb)
);

// 生成时钟信号
initial begin
    clk_tb=0;
    forever #5 clk_tb=~clk_tb;// 假设系统时钟为100MHz
end

initial begin
    data_in_tb = 32'hA5A5A5A5; // 测试数据,可以根据需要修改
    reset_tb = 1;
    start_tb = 0;
    #20 reset_tb=0;
    #35 start_tb=1;
    #10 start_tb=0;
end




endmodule

频率FPGA 计算

原理

在这里插入图片描述

INT、FRAC、MOD与R分频器的关系

利用INT、FRAC和MOD的值以及R分频器,可以产生间隔为PFD频率的分数的输出频率。
在这里插入图片描述
在这里插入图片描述

R分频器

利用10位R分频器,可以细分输入参考频率(REFIN)以产生PFD的参考时钟。分频比可以为1至1023。

寄存器映射

REGISTER 0

在这里插入图片描述
在这里插入图片描述

REGISTER 1

在这里插入图片描述
在这里插入图片描述

REGISTER 2

在这里插入图片描述
在这里插入图片描述

REGISTER 3

在这里插入图片描述
在这里插入图片描述

REGISTER 4

在这里插入图片描述
在这里插入图片描述

REGISTER 5

在这里插入图片描述
在这里插入图片描述

寄存器初始化序列

初始上电时,对电源引脚施加正确的电压后,ADF4351寄存器应按以下顺序启动:

  1. 寄存器5
  2. 寄存器4
  3. 寄存器3
  4. 寄存器2
  5. 寄存器1
  6. 寄存器0

FPGA 根据频率计算寄存器数值

输入频率:4400M到35M

module adf4351_LUT_freq(

    );
reg ad9361_l_clk,rst;   

initial begin
    ad9361_l_clk=0;
    forever #12.5 ad9361_l_clk=~ad9361_l_clk;
end
initial begin
    rst=1;
    #25 rst=0;
end

reg [15:0] freq;

always @ (posedge ad9361_l_clk or posedge rst)
begin
    if(rst)
    begin
    freq <= 16'd130;
    end
    
    else if(freq < 16'd4400)
    begin
    freq <= freq + 1'b1;
    end
    
    else 
    begin
    freq <= freq;
    end
end

wire [31:0] reg0,reg1,reg2,reg3,reg4,reg5;

adf4351_reg_lut LUT(
    .clk_40(ad9361_l_clk),
    .rst(rst),
    .frequency(freq),
    
    .reg0(reg0),
    .reg1(reg1),
    .reg2(reg2),
    .reg3(reg3),
    .reg4(reg4),
    .reg5(reg5)
);

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1528341.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于spring boot框架的发艺美发店管理系统

摘 要 系统根据现有的管理模块进行开发和扩展&#xff0c;采用面向对象的开发的思想和结构化的开发方法对发艺美发店管理的现状进行系统调查。采用结构化的分析设计&#xff0c;该方法要求结合一定的图表&#xff0c;在模块化的基础上进行系统的开发工作。在设计中采用“自下而…

算法详解——选择排序和冒泡排序

一、选择排序 选择排序算法的执行过程是这样的&#xff1a;首先&#xff0c;算法遍历整个列表以确定最小的元素&#xff0c;接着&#xff0c;这个最小的元素被置换到列表的开头&#xff0c;确保它被放置在其应有的有序位置上。接下来&#xff0c;从列表的第二个元素开始&#x…

Java进阶 Maven基础

资料格式 配置文件 com.itheima Java代码 Statement stat con.createStatement(); 示例 com.itheima 命令 mvn test - Maven简介 传统项目管理状态分析 Maven 是什么 Maven的本质是一个项目管理工具&#xff0c;将项目开发过程抽象成一个项目对象模型&#xff08;POM&…

如何使用phpStudy在Windows系统部署静态站点并实现无公网IP远程访问

文章目录 使用工具1. 本地搭建web网站1.1 下载phpstudy后解压并安装1.2 打开默认站点&#xff0c;测试1.3 下载静态演示站点1.4 打开站点根目录1.5 复制演示站点到站网根目录1.6 在浏览器中&#xff0c;查看演示效果。 2. 将本地web网站发布到公网2.1 安装cpolar内网穿透2.2 映…

文献速递:深度学习乳腺癌诊断---使用深度学习改善乳腺癌组织学分级

Title 题目 Improved breast cancer histological grading using deep learning 使用深度学习改善乳腺癌组织学分级 01 文献速递介绍 乳腺癌组织学分级是乳腺癌中一个确立的临床变量&#xff0c;它包括来自三个方面的信息&#xff0c;即小管形成程度、核多态性和有丝分裂计…

java数据结构与算法刷题-----LeetCode1005. K 次取反后最大化的数组和(这就不是简单题)

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 卷来卷去&#xff0c;把简单题都卷成中等题了 文章目录 1. 排序后从小到大…

免费录屏软件无水印推荐,录制视频更轻松(3款)

随着互联网技术的快速发展&#xff0c;录制屏幕成为人们日常生活中日益重要的需求。无论是制作教学视频、直播分享&#xff0c;还是录制游戏过程&#xff0c;一款好用且免费的录屏软件都是不可或缺的。然而&#xff0c;许多录屏软件在录制过程中会添加水印&#xff0c;影响了录…

电脑如何直接压缩图片?这几个方法帮你解决

在许多社交媒体平台上&#xff0c;上传照片时经常需要进行大小调整&#xff0c;这是因为较大的照片文件可能会占用更多的存储空间&#xff0c;并且在传输过程中需要更长的时间。通过图片压缩可以减小文件大小&#xff0c;提高上传速度&#xff0c;并节省存储空间&#xff0c;那…

大学老师不会告诉你的网安证书?

前言 在大学中&#xff0c;有很多安全专业的师傅们&#xff0c;一直有问&#xff1a; “计算机xxx级有用吗&#xff1f;” “软考初级有用吗&#xff1f;” “xxx资格证有用吗&#xff1f;” 甚至有一些来讲这些整数的&#xff0c;以“我们这个专业以后就业需要的证书....…

SpringCloud-注册中心

一、注册中心简介 1、服务治理 服务治理中的三个角色&#xff1a; 服务提供者&#xff1a;负责提供服务的实现和运行。服务提供者将服务注册到服务注册中心&#xff0c;并根据需要处理来自消费者的请求。&#xff08;暴露服务接口&#xff0c;供其他服务调用&#xff09;。 …

【Python】flask框架请求体数据,文件上传,请求头信息获取方式案例汇总

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

新媒体代运营是什么意思?CloudNEO:新媒体代运营的领先之选

新媒体代运营是什么意思&#xff1f; 随着互联网的迅速发展和普及&#xff0c;新媒体已经成为了企业推广和营销的重要工具。在这个背景下&#xff0c;新媒体代运营应运而生&#xff0c;成为了企业实现品牌曝光、粉丝增长和内容传播的重要方式。那么&#xff0c;新媒体代运营到…

经纬恒润推出新一代快速控制原型产品 ControlBase_S

近年来&#xff0c;软件定义汽车的发展趋势在行业内已经达成共识&#xff0c;与此同时&#xff0c;产品越来越复杂&#xff0c;开发周期越来越短&#xff0c;给软件开发带来了极大的挑战。在软硬件解耦的背景下&#xff0c;如何提前进行软件架构、算法开发及验证&#xff0c;成…

LeetCode 热题 100 | 回溯(三)

目录 1 131. 分割回文串 2 51. N 皇后 菜鸟做题&#xff0c;语言是 C&#xff0c;感冒好了 ver. 1 131. 分割回文串 题眼&#xff1a;给你一个字符串 s&#xff0c;请你将 s 分割 成一些子串。 根据题眼可知&#xff0c;我们需要做的是将字符串 s 连续分割 为几段&#…

深度观察2024中国系统架构师大会(SACC)

今年的中国系统架构师大会&#xff08;SACC&#xff09;在我所在的城市广州举办&#xff0c;很荣幸受邀参加。这次能接触到国内最优秀的架构师&#xff0c;学习他们的架构思想和行业经验。对我而言非常有意义。 大会分为上下午共4场&#xff0c;我参加了上午的多云多活架构设计…

Altair® Activate® 多学科系统仿真

Altair Activate 多学科系统仿真 Altair Activate 是一个开放且灵活的集成平台&#xff0c;用于系统仿真综合系统。Altair Activate 基于针对信号块、面向对象的物理组件、电气和电子系统的混合框图建模环境&#xff0c;支持在整个开发周期中进行多物理场分析。 全面支持 数学…

目标检测——PP-YOLOE算法解读

PP-YOLO系列&#xff0c;均是基于百度自研PaddlePaddle深度学习框架发布的算法&#xff0c;2020年基于YOLOv3改进发布PP-YOLO&#xff0c;2021年发布PP-YOLOv2和移动端检测算法PP-PicoDet&#xff0c;2022年发布PP-YOLOE和PP-YOLOE-R。由于均是一个系列&#xff0c;所以放一起解…

针对元宇宙概念的兴起,普通人能不能参与?

元宇宙是一种虚拟现实空间&#xff0c;由数字技术构建&#xff0c;让人们可以在其中进行交互和沟通。通俗点说&#xff0c;元宇宙就像是一个类似于《黑镜》剧集中的“星空游乐园”的虚拟世界&#xff0c;我们可以在其中自由探索、玩乐、交互、创造。 在元宇宙中&#xff0c;我们…

【虚拟化简介】

文章目录 虚拟化简介什么是虚拟化&#xff1f;Hypervisor概念Hypervisor模型 虚拟化技术的分类软件虚拟化和硬件虚拟化软件虚拟化技术硬件虚拟化技术 参考资料 虚拟化简介 什么是虚拟化&#xff1f; CPU处理能力的飞速提升。 它的另一面也就意味着&#xff0c; 个人单独拥有一…

没有在中国境内注册,但是在境内开展业务,或向境内提供产品或服务的,是否属于境内运营?

没有在中国境内注册&#xff0c;但是在境内开展业务&#xff0c;或向境内提供产品或服务的&#xff0c;是否属于境内运营&#xff1f; 判断是否属于“境内运营”&#xff0c;不以是否在境内注册为判断依据&#xff0c;如果没有在我国境内注册的网络运营者&#xff0c;但在我国境…