stm32cubeMX:基于stm32的高速DAC—AD5440

本文介绍了如何使用STM32F103RCT6和STM32CubeMX配置,结合AD5440实现高速DAC功能。详细讲解了AD5440的特性,硬件电路设计,以及软件部分的计算和时序控制。通过示例代码展示如何写入数据到AD5440,实现了单极性模式下10位二进制数到模拟电压的转换。
摘要由CSDN通过智能技术生成

平台:stm32f103rct6,stm32cubemx,keil5


1.概述

AD5428/AD5440/AD54471分别是CMOS、8/10/12位、双通道、电流输出数模转换器(DAC),这些器件均采用2.5 V至5.5 V电源供电。带宽最高可达10M,且具有回读功能,即用户可以通过DB引脚读取DAC寄存器的内容。满量程输出电流由所施加的外部基准输入电压(VREF)决定,与外部电流至电压精密放大器(本例使用的是AD8065)配合使用时,集成的反馈电阻(RFB)可提供温度跟踪和满量程电压输出。

1.1 AD5440

在这里插入图片描述
供电电源:2.5—5.5V
参考电压:±10V (本例给的是10V)

AD5440是一个10位的ADC, R_FB B与R_FB A接反馈电阻,DACA/B端口则根据接入电平的高低来进行A/B两个通道的选择,CS是控制端口,低电平有效,R/W是写入和回读的控制线。

利用控制线CS和R/W,可以写入或读取DAC寄存器。拉低CS和R/W时,发生写事件,数据线上的数据填入移位寄存器,CS上升沿锁存数据,并将锁存的数据字传输到DAC寄存器。DAC锁存器不是透明的,因此写序列必须包含CS的下降沿和上升沿,确保数据载入DAC寄存器,且其模拟等效内容反映在DAC输出端。

R/W为高电平而CS为低电平时,发生回读事件。数据从DAC寄存器加载,返回输入寄存器,输出到数据线上,控制器可回读以用于验证或诊断目的。这些器件的输入和DAC寄存器不是透明的,因此,加载各数据字需要CS的下降沿和上升沿。

2 硬件电路

根据数据手册上的参考电路,本例选择的是单极性模式
在这里插入图片描述
  其中,电流至电压放大器使用的是AD8065,C1和C2选择容值在1pF到2pF之间的电容,R1,R2,R3,R4用来调节增益的,本例中直接将电阻短接,即只进行电流—电压转换,不进行放大。
在这里插入图片描述

3 软件部分

3.1 计算

单极性模式输出电压的换算公式:
               
其中,Vout为10V,n为10,D则是输入的10位二进制数。
  例如:DB输入:1111111111,则Vout即为-10V

3.2 时序

在这里插入图片描述
  本例中只需要从stm32中向AD5440写入数据,无需回读,因此只使用了写模式,即R/W置低,CS置低。传输完成则将CS置高,时序图中,时间间隔为纳秒级别的,在stm32F1的环境中,基本忽略。
下面是关键代码:

void DataOutStage_2(uint16_t value)
{
   
	value=value&0X03FF;           //value is data of 10bit

	if(value&0X0001)           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值