logo资料库

锁相环ADF5355的使用经验.docx

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
锁相环 ADF5355 的使用经验 ADF5355 结合外部环路滤波器和外部参考频率使用时,可实 现小数 N 分频或整数 N 分频锁相环(PLL)频率合成器。该微波宽 带 VCO 设计允许在一个 RF 输出实现 7 MHz 至 14 GHz 的工作频 率。其他频率输出的一系列分频器可实现 55 MHz 至 7000 MHz 的工作频率。ADF5355 具有一个集成电压控制振荡器(VCO),其 基波输出频率范围为 3.5 GHz 至 7 GHz。此外,VCO 频率可进行 2 分频。利用 1/2/4/8/16/32/64 分频电路,用户可以产生低至 55 MHz 的 RF 输出频率。对于要求隔离的应用,RF 输出级可以实现 静音。静音功能既可以通过引脚控制,也可以通过软件控制。 这个芯片是一个很好的信号发生器的应用,频率范围宽,外 围电路少,体积小等优点,但使用起来技术难度也比较大,因为 带宽比较宽,外围电路处理不好相噪就很差,还有就是采用分频, 倍频处理方式,多次谐波也比较多。我开发这个芯片花了 2 个月 的时间才处理好这些问题,其中碰到很多意想不到的问题,比如 芯片发热、相噪差、输出幅度、谐波分量等。下面我把我碰到的 关键问题,和解决办法阐述如下,看了一定有意想不到的收获:
1. ADF5355 功耗还是有 200mA 左右,芯片有点热,排 版注意散热问题,中心接地多打过孔,接地面积要 尽可能大。 2. 电源供电一定要选择噪声系数小的稳压芯片,5V 选 用 ADM7150ACPZ-5.0,3.3V 选用 ADP150AUJZ-3.3-R7, 3.3V 电源要分两部分供电,射频输出和其他供电, 同电压供电分别要用电感电容进行隔离,时钟部分 电压和地都要用电感隔离。 3. 印制板布局:高频走线要尽量短,滤波电容要多点, 大小要并用如电源 104、102、10P 并用。
4. 寄存器配置,我是如图:记住环路电流一定要用 0.9mA。 5. 环 路 滤 波 我 用 的 是 ADISIMPLL 3.5 软 件 , 选 择 ADF4350 芯片,设置如下图:
6. 编程:我用的是 51 汇编程序 #include "ADF5355.h" #define SET_LE() GPIO_SetBits(GPIOD, GPIO_Pin_8)//LE #define CLR_LE() GPIO_ResetBits(GPIOD, GPIO_Pin_8) #define SET_SCL() GPIO_SetBits(GPIOD, GPIO_Pin_10) //CLK #define CLR_SCL() GPIO_ResetBits(GPIOD, GPIO_Pin_10) #define SET_DATA() GPIO_SetBits(GPIOD, GPIO_Pin_11) //DAT #define CLR_DATA() GPIO_ResetBits(GPIOD, GPIO_Pin_11) #define SET_CE() GPIO_SetBits(GPIOD, GPIO_Pin_9)//CE #define CLR_CE() GPIO_ResetBits(GPIOD, GPIO_Pin_9)
u8 buf[4]; void delay (int length) { } int i; i = length * 200 ; while (i >0) i--; void ADF5355_Initiate(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOD, ENABLE); ; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | 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(GPIOD, &GPIO_InitStructure); SET_CE(); } //--------------------------------- //void WriteToADF5355(unsigned char count,unsigned char *buf); //--------------------------------- //Function that writes to the ADF5355 via the SPI port. //-------------------------------------------------------------------------------- void WriteToADF5355(unsigned char count, unsigned char *buf) { unsigned char ValueToWrite = 0;
分享到:
收藏