当前位置: 首页 > news >正文

AD9371 官方例程 NO-OS 主函数 headless 梳理

AD9371 系列快速入口

AD9371+ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发

ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射

AD9371 官方例程 时钟间的关系与生成 : AD9371 官方例程HDL详解之JESD204B TX侧时钟生成(一)

JESD204B相关IP端口信号 : AD9371 官方例程HDL JESD204B相关IP端口信号

裸机程序配置 AD9528、AD9371、FPGA IP: AD9371 官方例程裸机SW 和 HDL配置概述(一)

裸机程序配置 AD9528、AD9371、FPGA IP: AD9371 官方例程裸机SW 和 HDL配置概述(二)

裸机程序配置 AD9528、AD9371、FPGA IP: AD9371 官方例程裸机SW 和 HDL配置概述(三)

文章目录

  • 前言
  • 一、xilinx platform
  • 二、AD9528
  • 三、CLKGEN IP
  • 四、JESD 链路层初始化
  • 五、ADXCVR 物理层初始化


前言

官方例程主函数需要配置和初始化 AD9528、AD9371、FPGA IP,打开DDS 或者通过DMA 搬运发送和接收数据

一、xilinx platform

打开 指令和数据 Cache ,初始化 platform(包含 SPI 和 GPIO)

	Xil_ICacheEnable();/* Enable the instruction cache. */Xil_DCacheEnable();ret = platform_init();if (ret != 0) {printf("error: platform_init() failed\n");goto error_0;}

二、AD9528

通过AD9528复位引脚,复位 AD9528
通过 VCXO REFA outFrequency_Hz[1] ,得到 PLL1 PLL2 output 0-13 和 sysref 各个配置参数,存入 clockAD9528_device
通过 SPI 初始化 AD9528 的 PLL1 PLL2 output 和 sysref

	error = AD9528_resetDevice(clockAD9528_device);if (error != ADIERR_OK) {printf("AD9528_resetDevice() failed\n");error = ADIERR_FAILED;goto error_1;}error = AD9528_initDeviceDataStruct(clockAD9528_device,clockAD9528_device->pll1Settings->vcxo_Frequency_Hz,clockAD9528_device->pll1Settings->refA_Frequency_Hz,clockAD9528_device->outputSettings->outFrequency_Hz[1]);if (error != ADIERR_OK) {printf("AD9528_initDeviceDataStruct() failed\n");error = ADIERR_FAILED;goto error_1;}/* Initialize the AD9528 by writing all SPI registers */error = AD9528_initialize(clockAD9528_device);if (error != ADIERR_OK)printf("WARNING: AD9528_initialize() issues. Possible cause: REF_CLK not connected.\n");

三、CLKGEN IP

通过axi_clkgen_init 赋值给 rx_clkgen 等
通过参考时钟和需要生成目标时钟,得到配置参数,配置到 IP的MMCM中,利用 MMCM 得到所需时钟,详见第二部分

	status = axi_clkgen_init(&rx_clkgen, &rx_clkgen_init);status = axi_clkgen_init(&tx_clkgen, &tx_clkgen_init);status = axi_clkgen_init(&rx_os_clkgen, &rx_os_clkgen_init);status = axi_clkgen_set_rate(rx_clkgen, rx_div40_rate_hz);status = axi_clkgen_set_rate(tx_clkgen, tx_div40_rate_hz);status = axi_clkgen_set_rate(rx_os_clkgen, rx_os_div40_rate_hz);

利用axi_clkgen_calc_params(clkgen, clkgen->parent_rate, rate, &d, &m, &dout); 计算MMCM中的 M、 D、 O

将 dout ,也就是 O0 写入 MMCM_REG_CLKOUT0_1 和 MMCM_REG_CLKOUT0_2 (0x08 和 0x09,OUT0的DRP地址)
axi_clkgen_calc_clk_params(dout, &low, &high, &edge, &nocount);
axi_clkgen_mmcm_write(clkgen, MMCM_REG_CLKOUT0_1, (high << 6) | low, 0xefff);
axi_clkgen_mmcm_write(clkgen, MMCM_REG_CLKOUT0_2, (edge << 7) | (nocount << 6),0x03ff)

得到的 D 和 M 类似 O0,写入相应的寄存器中

在这里插入图片描述

在这里插入图片描述
参考 XAPP888

四、JESD 链路层初始化

初始化 tx_jesd 、rx_jesd 等,并把 octets_per_multiframe 和 octets_per_frame 配置给IP核,octets_per_multiframe 除以 4,得到 up_cfg_beats_per_multiframe ,在链路层的LMFC中使用

	status = axi_jesd204_rx_init(&rx_jesd, &rx_jesd_init);status = axi_jesd204_tx_init(&tx_jesd, &tx_jesd_init);status = axi_jesd204_rx_init(&rx_os_jesd, &rx_os_jesd_init);

五、ADXCVR 物理层初始化

初始化 tx_adxcvr、rx_adxcvr 等,配置物理层 sys_clk_sel、 out_clk_sel 、LPM_DFE_N 等参数,通过 adxcvr_clk_set_rate(xcvr, xcvr->lane_rate_khz, xcvr->ref_rate_khz) 计算并配置(通过DRP) QPLL 、CPLL、 t/rx_out_div 和 clk25M ,得到正确的 lane rate

	status = adxcvr_init(&rx_adxcvr, &rx_adxcvr_init);status = adxcvr_init(&tx_adxcvr, &tx_adxcvr_init);status = adxcvr_init(&rx_os_adxcvr, &rx_os_adxcvr_init);

相关文章:

AD9371 官方例程 NO-OS 主函数 headless 梳理

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 &#xff1a; AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射&#xff1a; AD9371 官方例程之 tx_jesd 与 xcvr接口映射 AD9371 官方例程 时钟间的关系与生成 &#xff1a; AD9371 官方…...

WSL 下载

可以使用单个命令安装运行 WSL 所需的一切内容。 在管理员模式下打开 PowerShell 或 Windows 命令提示符&#xff0c;方法是右键单击并选择“以管理员身份运行”&#xff0c;输入 wsl --install 命令&#xff0c;然后重启计算机。 首先查看可以下载的版本 最后再运行wsl --ins…...

虚拟dom及diff算法之 —— snabbdom

源码&#xff1a;https://github.com/snabbdom/snabbdom 测试环境搭建 npm i -S snabbdom 安装好的node_modules提供了js和ts的代码&#xff1a;build&#xff1a;js代码&#xff0c;src&#xff1a;ts代码 npm i -D webpack5 webpack-cli3 webpack-dev-server3 webpack&#x…...

毅速丨3D打印结合拓扑优化让轻量化制造更容易

轻量化可以减少产品的重量&#xff0c;提高产品的性能和效率&#xff0c;同时减少能源消耗和排放。尤其在航空航天、汽车制造造等行业对轻量化追求更高。当前&#xff0c;随着制造技术的发展&#xff0c;拓扑优化结合3D打印为轻量化制造带来的显著的优势正在逐渐凸显。 首先&am…...

CentOS 7使用RPM包安装MySQL5.7

目标 本文目标是简单介绍如何在CentOS 7上使用RPM包安装MySQL 5.7&#xff0c;然后描述如何调整存储路径datadir。 环境准备 操作系统 —— CentOS 7MySQL版本 —— MySQL 5.7.44 获取MySQL-rpm包 官网下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/5.7.htm…...

UI设计工具都哪些常用的,推荐这5款

对于UI设计师来说&#xff0c;日常工作无非是围绕“需求分析”→设计实施→“开发交付”这三个环节来进行。 然而&#xff0c;在每个环节中&#xff0c;设计师使用的工具却完全不同。在这里&#xff0c;我收集整理了UI设计师在日常工作中常用的五种工具&#xff0c;希望能为新…...

小饭店点餐系统,小餐馆点餐怎么方便,操作简单的酒店点单软件

小饭店点餐系统&#xff0c;小餐馆点餐怎么方便&#xff0c;操作简单的酒店点单软件 今天给大家分享是 佳易王酒店点餐管理系统软件V16.0版本&#xff0c;点餐界面如下图&#xff0c; 1、开台的桌子醒目显示&#xff0c;结账后或没有开台的桌子为灰色显示。 2、多种点餐方式…...

面试经典150题——Day31

文章目录 一、题目二、题解 一、题目 3. Longest Substring Without Repeating Characters Given a string s, find the length of the longest substring without repeating characters. Example 1: Input: s “abcabcbb” Output: 3 Explanation: The answer is “abc”…...

chinese_llama_aplaca训练和代码分析

训练细节 ymcui/Chinese-LLaMA-Alpaca Wiki GitHub中文LLaMA&Alpaca大语言模型本地CPU/GPU训练部署 (Chinese LLaMA & Alpaca LLMs) - 训练细节 ymcui/Chinese-LLaMA-Alpaca Wikihttps://github.com/ymcui/Chinese-LLaMA-Alpaca/wiki/%E8%AE%AD%E7%BB%83%E7%BB%86%E…...

大数据Doris(十七):关于 Partition 和 Bucket 的数量和数据量的建议

文章目录 关于 Partition 和 Bucket 的数量和数据量的建议 关于 Partition 和 Bucket 的数量和数据量的建议 一个表的 Tablet 总数量等于 (Partition num * Bucket num)。一个表的 Tablet 数量,在不考虑扩容的情况下,推荐略多于整个集群的磁盘数量。单个 Tablet 的数据量理论…...

进击的巨人 完结篇 后篇-中文下载

话不多说&#xff0c;直接上链接 【简中】[BeanSub][Shingeki_n…1080P][x264_AAC].mp4 https://www.aliyundrive.com/s/7V4jaN6s6rY 点击链接保存&#xff0c;或者复制本段内容&#xff0c;打开「阿里云盘」APP &#xff0c;无需下载极速在线查看&#xff0c;视频原画倍速播放…...

力扣刷题-二叉树-二叉树的非递归遍历

参考&#xff1a;https://www.programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E8%BF%AD%E4%BB%A3%E9%81%8D%E5%8E%86.html#%E6%80%9D%E8%B7%AF 思路 为什么可以用迭代法&#xff08;非递归的方式&#xff09;来实现二叉树的前后中序遍历呢&#xff1f; 我们在栈与…...

react_15

动态菜单 图标要独立安装依赖 npm install ant-design/icons 图标组件&#xff0c;用来将字符串图标转换为标签图标 import * as icons from "ant-design/icons"; interface Module {[p: string]: any; } const all: Module icons; export default function Ico…...

关于ROS的网络通讯方式TCP/UDP

一、TCP与UDP TCP/IP协议族为传输层指明了两个协议&#xff1a;TCP和UDP&#xff0c;它们都是作为应同程序和网络操作的中介物。 **TCP&#xff08;Transmission Control Protocol&#xff09;协议全称是传输控制协议&#xff0c;是一种面向连接的、可靠的、基于字节流的传输…...

Leetcode—421.数组中两个数的最大异或值【中等】明天写一下字典树做法!!!

2023每日刷题&#xff08;十九&#xff09; Leetcode—421.数组中两个数的最大异或值 算法思想 参考自灵茶山艾府 实现代码 class Solution { public:int findMaximumXOR(vector<int>& nums) {int maxValue *max_element(nums.begin(), nums.end());int highId…...

数智赋能!麒麟信安参展全球智慧城市大会

10月31日至11月2日&#xff0c;为期三天的2023全球智慧城市大会长沙在湖南国际会展中心举办&#xff0c;大会已连续举办12届&#xff0c;是目前全球规模最大、专注于城市和社会智慧化发展及转型的主题展会。长沙市委常委、常务副市长彭华松宣布开幕&#xff0c;全球智慧城市大会…...

基础课21——知识库管理

1.知识库的概念、特点与功能 智能客服中的知识库是一个以知识为基础的系统&#xff0c;可以明确地表达与实际问题相对应的知识&#xff0c;并构成相对独立的程序行为主体&#xff0c;有利于有效、准确地解决实际问题。它储存着机器人对所有信息的认知概念和理解&#xff0c;这…...

网络运维Day01

文章目录 环境准备OSI七层参考模型什么是协议&#xff1f;协议数据单元(PDU)设备与层的对应关系什么是IP地址&#xff1f;IP地址分类IP的网络位和主机位IP地址默认网络位与主机位子网掩码默认子网掩码查看IP地址安装CISCO汉化CISCO(可选操作) CISCO之PC机器验证通信 CISCSO之交…...

从零配置一台linux主机

1. Linux软件安装方式 软件安装教程 设置国内源 因为 linux 本身自带的下载源资源有限&#xff0c;所以在使用 apt 命令下载的时候&#xff0c;有些包可能找不到&#xff0c;所以要添加国内源。方法如下&#xff1a; 打开文件 /etc/apt/sources.list sudo gedit /etc/apt/s…...

【蓝桥每日一题]-倍增(保姆级教程 篇1)

今天讲一下倍增 目录 题目&#xff1a;忠诚 思路&#xff1a; 题目&#xff1a;国旗计划 思路&#xff1a; 查询迭代类倍增&#xff1a; 本质是一个一个选区间使总长度达到 M,类似凑一个数。而我们会经常用不大于它最大的二的次幂&#xff0c;减去之后&#xff0c;再重复这…...

番茄小说下载器:打造个人数字书库的终极解决方案

番茄小说下载器&#xff1a;打造个人数字书库的终极解决方案 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 在数字阅读时代&#xff0c;你是否曾因网络不稳定而中断阅读&#xff1f;是否想…...

抢先李飞飞!世界模型能多人联机玩FPS游戏了

Jay 发自 凹非寺量子位 | 公众号 QbitAI我被AI杀了&#xff1f;有视频为证&#xff0c;我被一个不知道是人还是AI的东西&#xff0c;一枪崩了。还是在一个世界模型创造的世界里。嗯&#xff0c;就是这个画质糊成马赛克的网页版FPS。背后没有游戏引擎&#xff0c;没有物理规则&a…...

保姆级教程:用Qt Designer和stackedWidget快速搭建一个多页面配置工具(Windows/Linux通用)

保姆级教程&#xff1a;用Qt Designer和stackedWidget快速搭建多页面配置工具 每次打开系统设置或安装新软件时&#xff0c;那些整洁的多页面配置界面总让人眼前一亮。作为开发者&#xff0c;你是否想过自己也能轻松打造这样的界面&#xff1f;今天我们就用Qt的stackedWidget控…...

从零打造专属显示器:面板、驱动板与外壳的实战选型指南

1. 为什么选择DIY显示器&#xff1f; 最近两年&#xff0c;显示器市场出现了不少高性价比的产品&#xff0c;但作为一个喜欢折腾的极客&#xff0c;我总觉得市面上的显示器少了点什么。要么是接口不够用&#xff0c;要么是外观太普通&#xff0c;要么就是某些参数达不到我的要求…...

CrapFixer深度解析:为什么这个7年老工具依然是Windows优化的首选

CrapFixer深度解析&#xff1a;为什么这个7年老工具依然是Windows优化的首选 【免费下载链接】Crapfixer Cr*ap Fixer 项目地址: https://gitcode.com/gh_mirrors/cr/Crapfixer 在Windows 11和Windows 10系统中&#xff0c;你是否厌倦了无处不在的广告、烦人的数据收集和…...

cstore_fdw迁移指南:从传统表到列式存储的无缝切换

cstore_fdw迁移指南&#xff1a;从传统表到列式存储的无缝切换 【免费下载链接】cstore_fdw Columnar storage extension for Postgres built as a foreign data wrapper. Check out https://github.com/citusdata/citus for a modernized columnar storage implementation bui…...

CANN Ascend C矩阵乘法特殊配置

GetSpecialMDLConfig 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://gi…...

Taotoken的用量分析与账单追溯功能让财务对账更轻松

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken的用量分析与账单追溯功能让财务对账更轻松 对于依赖大模型API进行开发的企业或项目团队而言&#xff0c;成本核算与费用分…...

前端转行网络安全靠谱吗?靠挖漏洞变现可行吗

前言 最近&#xff0c;一个做运维的朋友跟我说他在学渗透测试。他说&#xff0c;公司请别人做渗透测试的费用是 2千/人天&#xff0c;一共2周。2周 2w 的收入&#xff0c;好香~ 于是&#xff0c;我也对渗透测试产生了兴趣。开始了探索之路~ 什么是渗透测试 渗透测试这名字听…...

终极微信小程序逆向解析指南:wxappUnpacker专业实战解析

终极微信小程序逆向解析指南&#xff1a;wxappUnpacker专业实战解析 【免费下载链接】wxappUnpacker forked from https://github.com/qwerty472123/wxappUnpacker 项目地址: https://gitcode.com/gh_mirrors/wxappu/wxappUnpacker 微信小程序逆向解析是开发者深入理解小…...