zoukankan      html  css  js  c++  java
  • 电赛总结(四)——波形发生芯片总结之AD9851

    一、特性参数

    1、180 MHz时钟速率参考时钟具有6倍倍乘器。芯片具有高性能10位DAC和高速滞后比较器

    2、+2.7 V至+5.25 V单电源工作

    3、正常输出工作频率范围为 0~72MHz ;

    4、具有6倍频,所以只要30MHz的时钟供给即可。

    二、功能管脚图

    image

    三、管脚说明

    管脚名称 功能
    D0–D7 8位数据输入. 数据端口,用于装载32位的频率控制字和8位相位控制字。 D7为最高位,D0=最低位
    D7, 25引脚, 也作为40位控制字串行输入引脚
    PGND

    6倍参考时钟倍乘器地

    PVcc

    6倍参考时钟倍乘器电源

    W-CLK 字装入信号,上升沿有效

    FQ-UD

    频率更新控制信号,时钟上升沿确认输入数据有效
    FREFCLOCK 外部参考时钟输入,脉冲序列可直接或间接地加到6倍参考时钟倍乘器上。在直接方式中,输入频率即是系统时钟;在6倍参考时钟倍乘器方式,系统时钟为倍乘器输出
    AGND 模拟地

    AVDD

    模拟电源(+5V)

    DGND

    数字地
    DVDD

    数字电源(+5V)

    RSET

    DAC外部参考电阻连接端

    VOUTN 内部比较器负向输出端
    VOUTP 内部比较器正向输出端
    VINN 内部比较器的负向输入端

    VINP

    内部比较器的正向输入端
    DACBP

    DAC旁路连接端

    IOUTB

    “互补”DAC输出

    IOUT

    内部DAC输出端

    RESET

    复位端。低电平清除DDS累加器和相位延迟器为0Hz和0 相位,同时置数据输入为串行模式以及禁止6倍参考时钟倍乘器工作

    四、外围电路PCB原理图

    image

    五、STM32F103驱动程序

    #ifndef __AD9851_H
    #define    __AD9851_H
    
    
    #include "stm32f10x.h"
    #include "gpio.h"
    
    #define ad9851_Clk        Pin10
    #define ad9851_FQ_UD      Pin11
    #define ad9851_Rst        Pin12
    #define ad9851_D0         Pin2
    #define ad9851_D1         Pin3
    #define ad9851_D2         Pin4
    #define ad9851_D3         Pin5
    #define ad9851_D4         Pin6
    #define ad9851_D5         Pin7
    #define ad9851_D6         Pin8
    #define ad9851_D7         Pin9
    
    void ad9851_write_dds(unsigned long dds);
    
    void ad9851_init(void);
    
    void ad9851_writefrq(unsigned long freq);
    
    #endif /* __DAC_H */
    #include "ad9851.h"
    #include "pbdata.h"
    #include "math.h"
    
    unsigned char phase_word = 0x00;   //相位控制字,使用低五位
    unsigned char power_down = 0x00;   //低功耗模式
    unsigned char mult = 0x01;         //六倍频开关
    unsigned char ww[5] = {0x09,0x0E,0x38,0xE3,0xBE};
    unsigned long freq,set_value;
    
    void ad9851_init(void)
    { 
        set_out(GPIOG,ad9851_Clk | ad9851_FQ_UD | ad9851_Rst | ad9851_D0 | ad9851_D1 | ad9851_D2 | ad9851_D3 | ad9851_D4 | ad9851_D5 |ad9851_D6 | ad9851_D7 );
      set_outH(GPIOG,ad9851_Rst);
        delay_ms(10);
        set_outL(GPIOG,ad9851_Rst);
      delay_ms(10);
    }
    
    void ad9851_write_dds(unsigned long dds)
    {
        unsigned char i;
        ww[0] = (phase_word << 3) | power_down << 2 | mult;
        ww[1] = (dds >> 24) & 0xff;
        ww[2] = (dds >> 16) & 0xff;
        ww[3] = (dds >> 8)  & 0xff;
        ww[4] =  dds & 0xff;
        
        set_outL(GPIOG,ad9851_FQ_UD);
        
        for(i=0;i<5;i++)
        {
            set_outL(GPIOG,ad9851_Clk);
            
            set_outH(GPIOG,ww[i] << 2);
            set_outL(GPIOG,((~ww[i]) << 2) & 0x3fc);
            delay_us(10);
            set_outH(GPIOG,ad9851_Clk);
            delay_us(10);
        }
        
        set_outH(GPIOG,ad9851_FQ_UD);
        delay_us(10);
        set_outL(GPIOG,ad9851_FQ_UD);
    }
    
    void ad9851_writefrq(unsigned long freq)
    {
        unsigned long dds;
        dds = freq;
        ad9851_write_dds(dds);
    }
  • 相关阅读:
    windows下python访问ipv6报错
    windows下python的包管理器pip安装
    python添加windows域验证
    Java系列笔记(1)
    JVM调优总结 -Xms -Xmx -Xmn -Xss
    5种调优Java NIO和NIO.2的方式
    Java之美[从菜鸟到高手演变]之JVM内存管理及垃圾回收
    jmap,jhat分析内存
    JVM 垃圾回收算法
    JVM 类加载过程
  • 原文地址:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/4748265.html
Copyright © 2011-2022 走看看