STM32驱动AD5676R

AD5676R是低功耗、8通道、16位缓冲电压输出数模转换器(DAC)。
它包括一个2.5 V、2 ppm/°C内部基准电压源(默认使能)和一个增益选择引脚,提供2.5 V(增益= 1)或5 V(增益= 2)的满量程输出。

功能框图

在这里插入图片描述

引脚

SYNC低电平有效控制输入。这是输入数据的帧同步信号。当同步开始时低,数据在接下来 24 个时钟的下降沿传输

SCLK串行时钟输入。数据在串行时钟输入的下降沿被记录到输入移位寄存器中。数据传输速率高达 50 MHz。

SDI串行数据输入。该器件有一个 24 位输入移位寄存器。数据被记录到寄存器上串行时钟输入的下降沿。

GAIN跨度设置销。当该引脚连接至 GND 时,所有八个 DAC 输出的跨度为 0 V 至 VREF。如果该引脚是与 VLOGIC 相连,所有八个 DAC 均输出范围为 0 V 至 2 × VREF。

RSTSEL上电复位引脚。将此引脚连接至 GND,将所有八个 DAC 通电至零电平。将此引脚连接至 VLOGIC将所有八个 DAC 通电至中档

LDAC加载 DAC。 LDAC 以异步和同步两种模式运行。将该引脚脉冲拉低允许任何或全部的DAC寄存器被更新,如果输入寄存器有新数据,这允许同时地更新所有 DAC 输出。该引脚也可以永久拉低

SDO串行数据输出。该引脚可用于将多个设备以菊花链方式连接在一起,也可用于回过头再读。串行数据在SCLK上升沿传输,下降沿有效

RESET异步复位输入。 RESET 输入对下降沿敏感。当RESET为低电平时,所有LDAC脉冲都是被忽略。当 RESET 被激活时,输入寄存器和 DAC 寄存器将更新为零刻度或中刻度,取决于 RSTSEL 引脚的状态。

时序

在这里插入图片描述

框架

AD5676R 实现分段串 DAC具有内部输出缓冲器的架构
在这里插入图片描述

写寄存器

AD5676R的输入移位寄存器为24位宽。数据首先装入MSB (DB23),前四位是命令位,C3到C0,其次是4位DAC地址位,A3到A0,最后是16位数据字。这些数据位被传输到SCLK的24个下降沿上的输入寄存器,并在SYNC的上升沿上更新。
在这里插入图片描述

命令

常用到的是0011,写入并更新寄存器
在这里插入图片描述

寄存器地址

在这里插入图片描述

DAC更新

AD5676R DAC具有双缓冲接口,由两组寄存器组成:输入寄存器和DAC寄存器。用户可以写入输入寄存器的任意组合。对DAC寄存器的更新由LDAC引脚控制。
当使用命令0001将数据时钟输入寄存器时,LDAC保持低电平。寻址输入寄存器和DAC寄存器都在同步的上升沿上更新,输出开始改变。
在这里插入图片描述

写命令和LDAC引脚真值表

在这里插入图片描述

下电模式

AD5676R包含两种独立的下电模式。命令0100被指定为下电功能。通过在输入移位寄存器中设置16位,位DB15到位DB0,这些断电模式是软件可编程的。每个DAC通道都有两个比特。下表显示了这两位的状态如何对应于设备的操作模式。
在这里插入图片描述
在这里插入图片描述
注:使用DAC之前要设置AD5676R的通道为Normal模式。

代码

.h文件

#ifndef AD5676R_H
#define AD5676R_H

#include <stdio.h>
#include "main.h"

/**********************************************************************************************************
*控制位
**********************************************************************************************************/
#define AD5676_CTRL_NOP          0
#define AD5676_CTRL_WRITE        1
#define AD5676_CTRL_UPDATE       2
#define AD5676_CTRL_WRITEUPDATE  3
#define AD5676_CTRL_PWR          4
#define AD5676_CTRL_LDAC_MASK    5
#define AD5676_CTRL_SWRESET      6
#define AD5676_CTRL_IREF_REG     7
#define AD5676_CTRL_DCEN         8
#define AD5676_CTRL_RB_REG       9
/**********************************************************************************************************
*关电操作模式掩码
**********************************************************************************************************/
#define AD5676_PWRM_NORMAL       0
#define AD5676_PWRM_1K           1
#define AD5676_PWRM_100K         2
#define AD5676_PWRM_THREESTATE   3

#define AD5676_PWRM_MASK         3

/* Enable/disable defines */
#define AD5676_INTREF_EN        
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值