前言

本文完结后,关于RFSoC的配置的API函数部分就全部介绍完毕,后续有空将更新介绍简单的射频收发回环示例工程,不定时更新,敬请期待。

配置DAC相关工作状态

XRFdc_SetInterpolationFactor

函数原型

u32 XRFdc_SetInterpolationFactor(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u32 InterpolationFactor);

参数

  • *XRFdc InstancePtr:指向驱动程序实例的指针。
  • u32 Tile_Id:RF-DAC tile 编号。 有效值为 0-3。
  • u32 Block_Id:块内的RF-DAC 块编号。 有效值为 0-3。
  • u32 InterpolationFactor:要为RF-DAC 设置的插值因子。

带标注的只有GEN 3代的有该参数配置。

描述

此 API 函数为请求的 RF-DAC 设置插值因子,并根据插值因子更新 FIFO 读取宽度。插值的动态变化对块吞吐量有影响。 可以动态更改 AXI4-Stream 时钟速率以适应吞吐量的变化。 在非 MTS 模式下,推荐的程序是关闭 FIFO(Xrfdc_setupfifo),更改时钟速率(Xrfdc_SetfabClkOutDiv),清除 FIFO 中断,然后重新启动 FIFO(Xrfdc_SetupFifo)。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetFabWrVldWords

函数原型

u32 XRFdc_SetFabWrVldWords(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u32 FabricWrVldWords);

参数

  • *XRFdc InstancePtr:指向驱动程序实例的指针。
  • u32 Tile_Id:RF-DAC tile 编号。 有效值为 0-3。
  • u32 Block_Id:块内的RF-DAC 块编号。 有效值为 0-3。
  • u32 FabricWrVldWords :写入要为RF-DAC 设置的结构数据速率。

说明

此 API 函数通过写入相应的寄存器来设置请求的 RF-DAC 的写入结构数据速率。此 API 函数仅适用于 RF-DAC。

返回值

XRFDC_SUCCESS

XRFDC_FAILURE

XRFdc_SetDecoderMode

函数原型

u32 XRFdc_SetDecoderMode(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u32 DecoderMode);

参数

  • *XRFdc InstancePtr:指向驱动程序实例的指针。
  • u32 Tile_Id:RF-DAC tile 编号。 有效值为 0-3。
  • u32 Block_Id:块内的RF-DAC 块编号。 有效值为 0-3。
  • u32 DecoderMode:解码器模式设置。有效值为:
    • Maximum linearity:最大线性度,用于随机解码器
    • Maximum SNR:最大信噪比,用于非随机化解码器

说明

这个API函数将解码器模式写入相关的寄存器中。驱动器结构被用新的值进行更新。这个API函数只用于RF-DACs。

返回值

XRFDC_SUCCESS
XRFDC_FAILURE

XRFdc_SetInvSincFIR

函数原型

u32 XRFdc_SetInvSincFIR(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u16 Mode);

参数

  • u16 Mode:有效值为0(禁用),1(第一奈奎斯特区),2 (第二奈奎斯特区,仅对于第三代设备)。

说明

该API函数用于启用或禁用反Sinc滤波器。这个API函数只用于RF-DAC。模式2仅适用于第3代设备。

返回值

XRFDC_SUCCESS
XRFDC_FAILURE

XRFdc_SetDACVOP (Gen 3)

函数原型

u32 XRFdc_SetDACVOP(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u32 uACurrent);

参数

  • u32 uACurrent: 电流的单位是μA。对于ES1硅,范围是6425μA至32000μA(数值将被四舍五入到最近的增量)。对于生产型硅,范围是2250μA至40500μA(数值将被四舍五入到最近的增量)。

说明
VOP μA电流用于更新相应的块级寄存器。这是一个仅适用于RF-DAC的API功能。只适用于第三代设备。

返回值

XRFDC_SUCCESS
XRFDC_FAILURE

XRFdc_SetDACCompMode (Gen 3)

函数原型

u32 XRFdc_SetDACCompMode(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u32 Enable)

参数

  • u32 Enable : 启用传统的DAC输出模式。有效值为0(第三代行为)1(第二代行为)。

说明

该模式用于更新相应的块级寄存器。这是一个仅适用于RF-DAC的API功能。只适用于第三代设备。

返回值

XRFDC_SUCCESS
XRFDC_FAILURE

XRFdc_SetDataPathMode (Gen 3)

函数原型

u32 XRFdc_SetDataPathMode(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u32 Mode);

参数

  • u32 Mode:数据路径模式。有效值为1-4。
Macro Description
XRFDC_DATAPATH_MODE_DUC_0_FSDIVTWO Full Bandwidth FS 7GSPS
XRFDC_DATAPATH_MODE_DUC_0_FSDIVFOUR Half Bandwidth, Low Pass IMR, FS 10GSPS
XRFDC_DATAPATH_MODE_FSDIVFOUR_FSDIVTWO Half Bandwidth, High Pass IMR, FS 10GSPS
XRFDC_DATAPATH_MODE_NODUC_0_FSDIVTWO Full Bandwidth, Bypass Datapath

说明

该模式用于更新相应的块级寄存器。这是一个仅适用于RF-DAC的API功能。只适用于第三代设备。

返回值

XRFDC_SUCCESS
XRFDC_FAILURE

XRFdc_SetIMRPassMode (Gen 3)

函数原型

u32 XRFdc_SetIMRPassMode(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u32 Mode)

参数

  • u32 Mode : IMR过滤器模式。有效值是0(用于低通),1(用于高通)。
Macro Description
XRFDC_DAC_IMR_MODE_LOWPASS Low pass filter
XRFDC_DAC_IMR_MODE_HIGHPASS High pass filter

说明

该模式用于更新相应的块级寄存器。这是一个仅适用于RF-DAC的API功能。只适用于第三代设备。

返回值
XRFDC_SUCCESS
XRFDC_FAILURE

XRFdc_SetDACDataScaler

函数原型

u32 XRFdc_SetDACDataScaler(XRFdc *InstancePtr, u32 Tile_Id, u32 Block_Id, u32 Enable);

参数

  • u32 Enable: 禁用(0)或启用(1)数据缩放器。

说明

该API函数启用/禁用数据缩放器。如果数据缩放器被启用,数据路径的MSB被保留,以防止溢出,代价是SN值略有下降。
数据路径的MSB被保留,以防止溢出,代价是SNR略有下降。

返回值

XRFDC_SUCCESS
XRFDC_FAILURE

中断部分

所有的中断处理函数都在xrfdc_intr.c文件中实现。这些函数的原型是通过xrfdc.h提供的。

XRFdc_IntrEnable

函数原型

u32 XRFdc_IntrEnable(XRFdc *InstancePtr, u32 Type, u32 Tile_Id, u32 Block_Id, u32 IntrMask)

参数

  • *XRFdc InstancePtr: 指向驱动程序实例的指针。

  • u32 Type:RF-ADC或RF-DAC;0表示RF-ADC,1表示RF-DAC。

  • u32 Tile_Id:RF-ADC或RF-DAC的瓦片编号。有效值为0-3。

  • u32 Block_Id:RF-ADC或RF-DAC在瓦片中的编号。有效值为0-3。

  • u32 IntrMask: 要启用的中断。有效的掩码是:

    • XRFDC_IXR_FIFOUSRDAT_MASK 0x0000000FU

    • XRFDC_IXR_FIFOUSRDAT_OF_MASK 0x00000001U

    • XRFDC_IXR_FIFOUSRDAT_UF_MASK 0x00000002U

    • XRFDC_IXR_FIFOMRGNIND_OF_MASK 0x00000004U

    • XRFDC_IXR_FIFOMRGNIND_UF_MASK 0x00000008U

    • XRFDC_ADC_IXR_DATAPATH_MASK 0x00000FF0U

    • XRFDC_ADC_IXR_DMON_STG_MASK 0x000003F0U

    • XRFDC_DAC_IXR_DATAPATH_MASK 0x000FFFF0U (3代)

    • XRFDC_DAC_IXR_INTP_STG_MASK 0x000003F0U

    • XRFDC_DAC_IXR_INTP_I_STG0_MASK 0x00000010U

    • XRFDC_DAC_IXR_INTP_I_STG1_MASK 0x00000020U

    • XRFDC_DAC_IXR_INTP_I_STG2_MASK 0x00000040U

    • XRFDC_DAC_IXR_INTP_I_STG3_MASK 0x00010000U (第三代)

    • XRFDC_DAC_IXR_INTP_Q_STG0_MASK 0x00000080U

    • XRFDC_DAC_IXR_INTP_Q_STG1_MASK 0x00000100U

    • XRFDC_DAC_IXR_INTP_Q_STG2_MASK 0x00000200U

    • XRFDC_DAC_IXR_INTP_Q_STG3_MASK 0x00020000U (第三代)

    • XRFDC_ADC_IXR_DMON_I_STG0_MASK 0x00000010U

    • XRFDC_ADC_IXR_DMON_I_STG1_MASK 0x00000020U

    • XRFDC_ADC_IXR_DMON_I_STG2_MASK 0x00000040U

    • XRFDC_ADC_IXR_DMON_Q_STG0_MASK 0x00000080U

    • XRFDC_ADC_IXR_DMON_Q_STG1_MASK 0x00000100U

    • XRFDC_ADC_IXR_DMON_Q_STG2_MASK 0x00000200U

    • XRFDC_IXR_QMC_GAIN_PHASE_MASK 0x00000400U

    • XRFDC_IXR_QMC_OFFST_MASK 0x00000800U

    • XRFDC_DAC_IXR_INVSNC_OF_MASK 0x00001000U

    • XRFDC_SUBADC_IXR_DCDR_MASK 0x00FF0000U

    • XRFDC_SUBADC0_IXR_DCDR_OF_MASK 0x00010000U

    • XRFDC_SUBADC0_IXR_DCDR_UF_MASK 0x00020000U

    • XRFDC_SUBADC1_IXR_DCDR_OF_MASK 0x00040000U

    • XRFDC_SUBADC1_IXR_DCDR_UF_MASK 0x00080000U

    • XRFDC_SUBADC2_IXR_DCDR_OF_MASK 0x00100000U

    • XRFDC_SUBADC2_IXR_DCDR_UF_MASK 0x00200000U

    • XRFDC_SUBADC3_IXR_DCDR_OF_MASK 0x00400000U

    • XRFDC_SUBADC3_IXR_DCDR_UF_MASK 0x00800000U

    • XRFDC_ADC_OVR_VOLTAGE_MASK 0x04000000U

    • XRFDC_ADC_OVR_RANGE_MASK 0x08000000U

    • XRFDC_ADC_DAT_OVR_MASK 0x40000000U

    • XRFDC_ADC_FIFO_OVR_MASK 0x80000000U

    • XRFDC_COMMON_MASK 0x01000000U

    • XRFDC_DAC_IXR_FIFOUSRDAT_SUPP_MASK 0x30000000U (Gen 3)

    • XRFDC_DAC_IXR_FIFOUSRDAT_MASK 0x3000000FU (Gen 3)

    • XRFDC_DAC_IXR_FIFOACTIND_OF_MASK 0x20000000U (第3代)

    • XRFDC_DAC_IXR_FIFOACTIND_UF_MASK 0x10000000U (第3代)

    • XRFDC_DAC_IXR_MXR_HLF_I_MASK 0x00002000U (第3代)

    • XRFDC_DAC_IXR_MXR_HLF_Q_MASK 0x00004000U (第3代)

    • XRFDC_DAC_IXR_IMR_OV_MASK 0x00040000U (第3代)

    • XRFDC_DAC_IXR_INV_SINC_EVEN_NYQ_MASK 0x00080000U (第3代)

    • XRFDC_ADC_CMODE_OVR_MASK 0x10000000U (第3代)

    • XRFDC_ADC_CMODE_UNDR_MASK 0x20000000U (第3代)

    • XRFDC_IXR_FIFOUSRDAT_OBS_MASK 0x0000F000U (第3代)

说明

该API函数通过将IntrMask作为输入并写入相应的寄存器位来启用相应转换器的中断。

返回值

XRFDC_SUCCESS
XRFDC_FAILURE

XRFdc_IntrDisable

函数原型

u32 XRFdc_IntrDisable(XRFdc *InstancePtr, u32 Type, u32 Tile_Id, u32 Block_Id, u32 IntrMask)

参数

  • u32 IntrMask: 要禁用的中断。有效的掩码在XRFdc_IntrEnable的API中描述。

返回值

XRFDC_SUCCESS
XRFDC_FAILURE

XRFdc_Set StatatusHandler

函数原型

void XRFdc_SetStatusHandler(XRFdc *InstancePtr, void *CallBackRefPtr, XRFdc_StatusHandler FunctionPtr)

参数

  • XRFdc *InstancePtr: 指向驱动实例的指针。

  • void *CallBackRefPtr: 当回调函数被调用时传递回来的上层回调引用。

  • XRFdc_StatusHandler FunctionPtr。指向回调函数的指针。

说明
这个函数设置了状态回调函数,即状态处理程序,当驱动程序遇到必须报告给上层软件的情况时,会调用这个函数。处理程序在一个中断上下文中执行,以减少处理量。

XRFdc_IntrClr

函数原型

u32 XRFdc_IntrClr(XRFdc *InstancePtr, u32 Type, u32 Tile_Id, u32 Block_Id, u32 IntrMask);

参数

  • u32 IntrMask: 要禁用的中断。有效的掩码在XRFdc_IntrEnable的API中描述。

说明

该函数通过将IntrMask作为输入并写入相应的寄存器位来清除相应转换器的中断。

返回值

XRFDC_SUCCESS
XRFDC_FAILURE

XRFdc_GetIntrStatus

函数原型

u32 XRFdc_GetIntrStatus(XRFdc *InstancePtr, u32 Type, u32 Tile_Id, u32 Block_Id, u32 *IntrStsPtr)

参数

  • u32 IntrMask: 要禁用的中断。有效的掩码在XRFdc_IntrEnable的API中描述。

说明

这个函数通过掩码返回中断的状态。有效掩码的描述见XRFdc_IntrEnable的API中描述。

XRFdc_IntrHandler

函数原型

u32 XRFdc_IntrHandler(u32 Vector, void *XRFdcPtr)

参数

  • u32 Vector: 中断向量编号。
  • *void XRFdcPtr: 指向引起中断的驱动实例的指针。

说明

该函数由驱动器内部使用。这是Zynq® UltraScale+™射频数据转换器驱动器的主中断处理程序。这个例程必须使用OS/BSP特定的API连接到一个中断控制器。它清除了中断源并打印了中断的原因。

返回值

METAL_IRQ_HANDLED (通知Libmetal库,IRQ被处理)。

XRFdc_GetEnabledInterrupts

函数原型

u32 XRFdc_GetEnabledInterrupts(XRFdc *InstancePtr, u32 Type, u32 Tile_Id, u32 Block_Id, u32 *IntrMask)

参数

  • u32 *IntrMask: IntrMask是一个指向启用中断的掩码的指针。1表示一个启用的中断,而0表示禁用的中断。

描述

这个API函数用一个给定块的启用的中断来填充IntrMask。

返回值

XRFDC_SUCCESS
XRFDC_FAILURE

RFSoC应用笔记 - RF数据转换器 -22- API使用指南之配置DAC相关工作状态和中断相关函数使用相关推荐

  1. RFSoC应用笔记 - RF数据转换器 -21- API使用指南之配置ADC相关工作状态

    配置ADC相关工作状态 XRFdc_SetDecimationFactor 函数原型 u32 XRFdc_SetDecimationFactor(XRFdc *InstancePtr, u32 Til ...

  2. RFSoC应用笔记 - RF数据转换器 -10- RFSoC关键配置之其他功能(一)

    前言 RFSoC中最重要的部分是射频直采ADC和DAC的配置,除了前文介绍的DAC和ADC的基本功能以外,还有其他的相关功能和配置,可以用于配置射频数据转换器,本文参考官方手册,主要对正交调制器校正. ...

  3. RFSoC应用笔记 - RF数据转换器 -02- IP配置指南

    写在前面 承接前文,本文是射频数据转换器IP使用介绍的第二篇,参考PG269的第五章,完成对射频数据转换器(RF Data Converter)IP配置界面的相关参数进行详细的说明,以便于后续开发设计 ...

  4. RFSoC应用笔记 - RF数据转换器 -07- RFSoC关键配置之RF-DAC内部解析(一)

    前言 RFSoC中最重要的部分是射频直采ADC和DAC的配置,因此了解内部相关原理结构可以帮助我们更好理解相关功能配置参数含义.本文参考官方手册,主要对RF-DAC 模拟输出进行介绍. 文章目录 前言 ...

  5. RFSoC应用笔记 - RF数据转换器 -20- API使用指南之配置RFDC工作状态(ADC、DAC均适用)

    配置RFDC工作状态(ADC.DAC均适用) XRFdc_SetMixerSettings 函数原型 u32 XRFdc_SetMixerSettings(XRFdc *InstancePtr, u3 ...

  6. RFSoC应用笔记 - RF数据转换器 -04- RFSoC关键配置之RF-ADC内部解析(二)

    前言 RFSoC中最重要的部分是射频直采ADC和DAC的配置,因此了解内部相关原理结构可以帮助我们更好理解相关功能配置参数含义.本文参考官方手册,主要对RFSoC ADC的数字数据路径相关功能进行介绍 ...

  7. RFSoC应用笔记 - RF数据转换器 -01- 概述和IP接口介绍

    写在前面 本文对射频数据转换器(RFSoC RF Data Converter )进行了简要描述说明,参考了xilinx的PG269的手册第一二三章,用于快速了解RFSoC射频数据转换器的相关特性,接 ...

  8. RFSoC应用笔记 - RF数据转换器 -14- RFSoC自动增益控制与NCO跳频功能

    应用概述 本文概述了如何在系统中使用RFSoC 射频数据转换器的自动增益控制和NCO跳频功能. 文章目录 应用概述 自动增益控制系统 数字增益补偿 使用 QMC 增益进行补偿 使用 PL 增益进行补偿 ...

  9. RFSoC应用笔记 - RF数据转换器 -09- RFSoC关键配置之RF-DAC内部解析(三)

    前言 RFSoC中最重要的部分是射频直采ADC和DAC的配置,因此了解内部相关原理结构可以帮助我们更好理解相关功能配置参数含义.本文参考官方手册,主要对高采样率模式.多频带操作以及IP的数据接口进行介 ...

最新文章

  1. python语言学了有用吗-转行学习Python开发有什么优势
  2. 如何访问自定义键值的二维数组
  3. 关注Cortex-M处理器,M0、M3、M4简单对比
  4. Josephus问题的Java解决方法
  5. 2017.4.16 阶乘之和 思考记录
  6. Memcached 集群架构方面的问题
  7. LINUX上开发ffmpeg程序,查看链接的库
  8. Java基础知识面试题
  9. springboot+shiro中自定义session过期时间
  10. cdr X6 64位32位缩略图补丁包
  11. 陈怡暖:FED决议措辞偏鹰,黄金先扬后抑险守千二关
  12. (原创)制作一个采用 LCD1602 显示的电子钟,在 LCD 上显示当前的时间。显示格式为“时时:分分:秒秒”。设有 4 个功能键k1~k4,功能如下:(1)k1——进入时间修改。
  13. 苹果手机该如何拍摄证件照
  14. 解决USB无法安装驱动识别的问题
  15. 不做ui了 转行做什么_ui设计师是做什么的 想转行可以吗
  16. 理解RemoteViews——RemoteViews的内部机制
  17. 百度细雨算法2.0详解,规避细雨算法解决方法
  18. Java大作业-商品管理系统
  19. 安装Deb软件的方法
  20. Arduino编译Marlin1.1出现 fatal error: U8glib.h: No such file or directory如何解决

热门文章

  1. DATABASE SYSTEM CONCEPTS
  2. matlab第二章实训总结,matlab实训小结
  3. c语言中余数取整,C 逻辑运算, 移位运算 , 取整 , 取模(取余)
  4. 如何提高模型的泛化能力
  5. 信号与系统第三章复习
  6. ECPP——利用有限域上的椭圆曲线,精确判定素数的算法
  7. vue/react的hash模式下的锚点效果
  8. 如何将项目部署到服务器:从选择服务器到维护应用程序的全流程指南
  9. 服务器多开系统,服务器多开虚拟机操作系统
  10. PHP2019参考文献,2019论文参考文献格式