AD9361
AD9361框图

1、 Fir滤波器的阶数为64或128 而内插或抽取因子为:1、2或4。
HB1和HB2的内插或抽取因子为1或2而HB3的因子为1、2或3
BB_LPF为:三阶巴特沃斯低通滤波器,3dB点频率可编程,频率可编程范围为:Tx: 625Khz~32Mhz, Rx : 200Khz~39.2Mhz
2、 ND_LPF为:第二级低通滤波器的频率可编程范围为2.7~100Mhz
TIA_LPF为:第一级低通滤波器的频率可编程范围为1~70Mhz ADC_CLK = DAC_CLK或2*DAC_CLK <= 672Mhz
3、AD9361增益控制 发送功率控制:由一个程控衰减器决定,衰减范围为(0~89.75dB)步进为0.25dB。
接收增益控制:由模拟增益(由低噪放、混频器、跨阻放大器和低通滤波器等增益组成)和数字增益决定。
控制方式为 :自动控制和手动控制(SPI 控制和管脚控制)。
增益范围 :0~90dB,模拟增益最大为76dB,数字增益最大为31dB。
增益分配 :由查表决定,有单表模式和多表模式。
4、AD9361数字接口 SPI接口 : 分为3线模式和4线模式 控制字段由16bit组成,[15]为读写标志,高位读;[14:12]为读写的Byte数1~8Byte;[11:10]未使用;[9:0]为读写的起始字节地址; 上升沿发送,下降沿采样 SPI时钟最大为 50Mhz SPI操作在SPI_ENB为低时有效 LVDS或CMOS接口 :均可分为SDR或DDR接口。
LVDS接口: 传输速率:最大为122.88Mhz。 传输格式:可分为1R1T,2R2T。
COMS接口 传输速率:最大为122.88Mhz。 传输格式:可分为1R1T,2R2T,1R2T,2R1T。
接口形式:可分为单端口半双工,单端口全双工,双端口半双工,双端口全双工。
5、AD9361状态机 状态机控制方式: 通过SPI写寄存器控制 通过管脚控制(分为电平模式和脉冲模式) 状态机模式: FDD模式 TDD模式
6、AD9361辅助功能 GPO : 4bit通用输出,由SPI控制。
CTRL_IN : 4bit 控制输入,用于手动Rx增益和Tx衰减控制。
CTRL_OUT : 8bit控制输出,这些是多功能输出,具有可编程功能。可以用于指示AD9361的各种状态信息。
Aux DAC : 2个10bit的辅助DAC,参考电压分别可取1V、1.5V、2V和2.5V。
Aux ADC :1个12bit的辅助ADC,输入电压范围为0V~1.3V。 RSSI : 指示接收信号强度。
7、AD9361控制编程
1)SPI接口:通过AD9361的SPI接口对AD9361进行初始化配置,难点在于初始化寄存器,而初始化寄存器可以通过ADI的寄存器配置软件生成。
2)数据接口:接口形式为LVDS和COMS,难点在于速率较高的情况下,需要加合适的约束或者调解AD9361的时延调整寄存器0x06和0x07。
3)状态机:需要正确控制状态机,否则AD9361会工作你不知道的状态里,可以通过读取状态寄存器判断。
4)校准时间:注意AD9361的校准时间需要给足够,否则会影响性能,同时ADI的寄存器配置软件生成的配置能够满足基本功能,但是想要性能更好,需要自己去优化
1、AD9361的框架下图所示:
2、AD9361的信号路径
Fir滤波器的阶数为64或128 而内插或抽取因子为:1、2或4。
HB1和HB2的内插或抽取因子为1或2而HB3的因子为1、2或3
BB_LPF为:三阶巴特沃斯低通滤波器,3dB点频率可编程,频率可编程范围为:Tx: 625Khz~32Mhz, Rx : 200Khz~39.2Mhz
2ND_LPF为:第二级低通滤波器的频率可编程范围为2.7~100Mhz
TIA_LPF为:第一级低通滤波器的频率可编程范围为1~70Mhz
ADC_CLK = DAC_CLK或2*DAC_CLK <= 672Mhz
3、AD9361增益控制
发送功率控制:由一个程控衰减器决定,衰减范围为(0~89.75dB)步进为0.25dB。
接收增益控制:由模拟增益(由低噪放、混频器、跨阻放大器和低通滤波器等增益组成)和数字增益决定。
控制方式为 :自动控制和手动控制(SPI 控制和管脚控制)。
增益范围
:0~90dB,模拟增益最大为76dB,数字增益最大为31dB。
增益分配
:由查表决定,有单表模式和多表模式。
4、AD9361数字接口
SPI接口
:
分为3线模式和4线模式
控制字段由16bit组成,[15]为读写标志,高位读;[14:12]为读写的Byte数1~8Byte;[11:10]未使用;[9:0]为读写的起始字节地址;
上升沿发送,下降沿采样
SPI时钟最大为 50Mhz
SPI操作在SPI_ENB为低时有效
LVDS或CMOS接口
:均可分为SDR或DDR接口。
LVDS接口:
传输速率:最大为122.88Mhz。
传输格式:可分为1R1T,2R2T。
COMS接口
传输速率:最大为122.88Mhz。
传输格式:可分为1R1T,2R2T,1R2T,2R1T。
接口形式:可分为单端口半双工,单端口全双工,双端口半双工,双端口全双工。
5、AD9361状态机
状态机控制方式:
通过SPI写寄存器控制
通过管脚控制(分为电平模式和脉冲模式)
状态机模式:
FDD模式
TDD模式
6、AD9361辅助功能
GPO
: 4bit通用输出,由SPI控制。
CTRL_IN
: 4bit
控制输入,用于手动Rx增益和Tx衰减控制。
CTRL_OUT
: 8bit控制输出,这些是多功能输出,具有可编程功能。可以用于指示AD9361的各种状态信息。
Aux DAC
: 2个10bit的辅助DAC,参考电压分别可取1V、1.5V、2V和2.5V。
Aux ADC
:1个12bit的辅助ADC,输入电压范围为0V~1.3V。
RSSI
: 指示接收信号强度。
7、AD9361控制编程
1)SPI接口:通过AD9361的SPI接口对AD9361进行初始化配置,难点在于初始化寄存器,而初始化寄存器可以通过ADI的寄存器配置软件生成。
2)数据接口:接口形式为LVDS和COMS,难点在于速率较高的情况下,需要加合适的约束或者调解AD9361的时延调整寄存器0x06和0x07。
3)状态机:需要正确控制状态机,否则AD9361会工作你不知道的状态里,可以通过读取状态寄存器判断。
4)校准时间:注意AD9361的校准时间需要给足够,否则会影响性能,同时ADI的寄存器配置软件生成的配置能够满足基本功能,但是想要性能更好,需要自己去优化。8、做这方面的可以加我QQ进行交流: 1038736077
AD9361的更多相关文章
- ad9361自测试校准
#include "config.h" #include "CONFIG_FPGA_ALL.h" #include "xparameters.h&qu ...
- AD9361框图
1. Fir滤波器的阶数为64或128 而内插或抽取因子为:1.2或4. HB1和HB2的内插或抽取因子为1或2而HB3的因子为1.2或3 BB_LPF为:三阶巴特沃斯低通滤波器,3dB点频率可编程, ...
- AD9361寄存器配置顺序,循环模式,自收自发
:] cmd_data; :] index; begin case(index) 'h000,8'h00};//set spi -- 'h3df,8'h01};//set init -- 'h037, ...
- 基于XC7Z100+AD9361的双收双发无线电射频板卡
一.板卡概述 板卡基于Xilinx公司的SoC架构(ARM+FPGA)的ZYNQ7100芯片和ADI公司高集成度的捷变射频收发器AD9361,实现频谱范围70MHz~6GHz,模拟带宽200KHz~5 ...
- 三款SDR平台对比:HackRF,bladeRF和USRP
这篇文章是Taylor Killian今年8月发表在自己的博客上的.他对比了三款平价的SDR平台,认为这三款产品将是未来一年中最受欢迎的SDR平台.我觉得这篇文章很有参考价值,简单翻译一份转过来.原文 ...
- vivado自动化tcl实现(更新中)
ug1197-vivado-high-level-productivity vivado中如何使用自动化工具进行设计?用过的项目有AD9361提供的官方例子中,使用了自动化方式,可以借鉴.
- [转载]三款SDR平台对比:HackRF,bladeRF和USRP
这篇文章是 Taylor Killian 13年8月发表在自己的博客上的.他对比了三款平价的SDR平台,认为这三款产品将是未来一年中最受欢迎的SDR平台.我觉得这篇文章很有参考价值,简单翻译一份转过来 ...
- 367-基于zynq XC7Z100 FMC接口通用计算平台
基于zynq XC7Z100 FMC接口通用计算平台 一.板卡概述 本板卡基于Xilinx公司的FPGA XC7Z100 FFG 9000 芯片, 该平台为设计和验证应用程序提供了一个完整的开发平台. ...
- 基于zynq XC7Z100 FMC接口通用计算平台 XC7Z100
一.板卡概述 本板卡基于Xilinx公司的FPGA XC7Z100 FFG 9000 芯片, 该平台为设计和验证应用程序提供了一个完整的开发平台.该平台使设计师能够更加简单进行高性能的原型设计,并 ...
随机推荐
- jQuery设置内容和属性方
何问起 hovertree.com 设置内容 - text().html() 以及 val()text() - 设置或返回所选元素的文本内容html() - 设置或返回所选元素的内容(包括 HTML ...
- Navicat连接阿里云(centos7.3)的MySQL数据库遇到的问题及解决方法
注:本文涉及到的解决方案都是我遇到的问题的对应解决方案,不一定适用于每一个人,如果问题仍然存在,请继续百度查询其他解决方法 1. 首先是登录阿里云MySQL的一些必要信息(登录其他云主机的mysql ...
- 160429、nodejs--Socket.IO即时通讯
动态web 在html5以前,web的设计上并没有考虑过动态,他一直是围绕着文档设计的,我们看以前比较老的网站,基本上都是某一刻用来显示单一的文档的,用户请求一次web页面,获取一个页面,但是随着时间 ...
- R中基本命名(未完)
ls() #查看 rm(list=ls()) #清除内存变量 library() #载入库包 help() #查看帮助文档 head(iris) #查看数据集 class(iris) #查看数据集的类 ...
- 适配器模式(Adpater)
一.适配器模式介绍 适配器模式:将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的类可以一起工作. 例如: NBA中的球员来自不同国家,而世界标准语言 ...
- Elastic Load Balancing with Sticky Sessions
Elastic Load Balancing with Sticky Sessions — Shlomo Swidler https://shlomoswidler.com/2010/04/elast ...
- 苏宁易购微信端 全页通过background单图
w单图,绕开了显示的兼容性. http://res.m.suning.com/project/JoinGo/intro.html http://res.m.suning.com/project/Joi ...
- python学习笔记(二)— 元组(tuple)
Python 的元组与列表类似,不同之处在于元组的元素不能修改:元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可: tup1 = ('a', 'b', 19 ...
- python类可以任意添加属性
python类可以任意添加属性 class A(object): def __init__(self): self.name = "zhangsan" self.age = 18 ...
- 前端 javascript 数据类型 数组 列表
javascript数组相当于python的列表 创建列表 a = [1,2,3,4]; [1, 2, 3, 4] 获取列表长度 a = [1,2,3,4]; [1, 2, 3, 4] a.lengt ...