AD5758单通道16位电流和电压输出DAC的软件应用特性

2024-04-14 05:36

本文主要是介绍AD5758单通道16位电流和电压输出DAC的软件应用特性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

概述

1 AD5758的软件流程图

1.1 软件流程框图

1.2 编程顺序使输出

1.3 一个范例:改变量程

2 输出FAULT pin

3 ADC_IP_SELECT 

4 AD5758的寄存器

4.1 寄存器列表

4.2 寄存器参数介绍

4.2.1 NOP Register

4.2.2 DAC Input Register

 4.2.3 DAC Output Register

 4.2.4  Clear Code Register

 4.2.5 User Gain Register

 4.2.6  User Offset Register

 4.2.7 DAC Configuration Register

 4.2.9 Key Register

 4.2.10 General-Purpose Configuration 1 Register

 4.2.11 General-Purpose Configuration 2 Register

 4.2.12  DC-to-DC Configuration 1 Register

 4.2.13  DC-to-DC Configuration 2 Register

 4.2.14  Watchdog Timer (WDT) Configuration Register

 4.2.15  Digital Diagnostic Configuration Register

 4.2.16 ADC Configuration Register

  4.2.17 FAULT Pin Configuration Register

  4.2.18 Two Stage Readback Select Register

 4.2.19 Digital Diagnostic Results Register

 4.2.20 Analog Diagnostic Results Register

 4.2.21 Status Register


概述

本文主要介绍AD5758的软件控制流程,包括各个寄存器功能和每个bit位的含义。AD5758是一款单通道、电压和电流输出数模转换器(DAC),采用AVSS ?33 V(最小值)至AVDD1 +33 V(最大值)电源供电,两个供电轨之间的最大工作电压为60 V。片内动态功率控制(DPC)利用一个针对最小片内功耗而优化的降压型DC-DC转换器,在5 V至27 V范围内将输出驱动器电路的电源电压(VDPC+)调节至VIOUT,使封装功耗较小。CHART引脚可将HART?信号耦合到电流输出上。

该器件采用多功能四线式串行外设接口(SPI),能够以最高50 MHz的时钟速率工作,并与标准SPI、QSPI、MICROWIRE、DSP和微控制器接口标准兼容。该接口还具有可选SPI循环冗余校验(CRC)和看门狗定时器(WDT)。与前款产品相比,AD5758改善了诊断功能,如输出电流监控和集成12位诊断模数转换器(ADC)。通过在VIOUT、+VSENSE和VSENSE引脚上集成故障保护开关,提供额外的鲁棒性。

1 AD5758的软件流程图

1.1 软件流程框图

1.2 编程顺序使输出

 要在开机或复位状态下对设备进行写入和设置,请使用以下步骤:

Step -1:执行硬件或软件复位,等待100µs

Step -2: 通过将0xFCBA写入密钥寄存器来执行校准内存刷新。在进入步骤3之前,等待至少500µs,以便时间完成内部校准。作为等待500µs刷新周期完成的替代方案,轮询的CAL_MEM_UNREFRESHED位DIGITAL_DIAG_RESULTS寄存器,直到它为0。

Step -3: 将1写入DIGITAL_DIAG_RESULTS寄存器中的D13位,以清除RESET_OCCURRED标志

Step -4: 如果需要CLKOUT,请通过GP_CONFIG1寄存器配置并启用该特性。在启用dc- dc转换器之前配置此功能非常重要。

Step -5:  写入DCDC_CONFIG2寄存器设置dc- dc电流限制。等待300µs,让3线接口通信完成。作为等待的替代选择300µs用于3线接口通信完成,轮询BUSY_3WI位DCDC_CONFIG2寄存器,直到它为0。

Step -6:  写入DCDC_CONFIG1寄存器以设置dc- dc转换器模式(从而启用dc- dc转换器)。等待300µs,让3线接口通信完成。作为等待的替代选择300µs到3线接口通信完成,轮询DCDC_CONFIG2寄存器中的BUSY_3WI位,直到它为0

Step -7:  写入DAC_CONFIG寄存器来设置INT_EN位(在未使能的情况下上电DAC和内部放大器输出)和配置输出范围,内部/外部复位和回转率。此时请禁用OUT_EN位点。等待至少500µs,然后继续执行步骤8留出时间完成内部校准。作为一个除了等待500µs刷新周期完成之外,还可以轮询CAL_MEM_ unrefresh位DIGITAL_DIAG_RESULTS寄存器,直到它为0。

Step -8: 将零标度DAC代码写入DAC_INPUT寄存器。(如果在步骤7中选择了双极范围,则必须将表示0 mA/0 V输出的DAC代码写入DAC_INPUT注册)。即使DAC_INPUT寄存器的内容没有改变,完成这个步骤也是很重要的。

Step -9:  如果正在使用LDAC功能,请执行软件或硬件LDAC命令。

Step -10:  将相同的单词重写到DAC_CONFIG寄存器中,如第7步,除了这一次启用了OUT_EN位。在步骤6和步骤9之间允许至少1.25 ms;这是从dc-to-dc启用到使能VIOUT输出

Step -11:  将所需的DAC代码写入DAC_INPUT寄存器。‘

1.3 一个范例:改变量程

开启输出功能后,更改输出范围时,请参考以下步骤:

step - 1:  DAC_INPUT 寄存器. 设置 output  的值 0 mA或0 V.

step - 2: 写入到DAC_CONFIG寄存器。禁用输出(OUT_EN = 0),并设置新的输出范围。保持
INT_EN位设置。在进行步骤3之前,等待至少500µs,以便有时间完成内部校准。

step - 3:  写代码0x0000(双极范围时,写代码0x8000)到DAC_INPUT寄存器。重要的是,这一步必须完成,即使内容DAC_INPUT寄存器没有改变。

step - 4: 重新加载步骤2中的DAC_CONFIG寄存器字,但这次将OUT_EN位设置为1以启用输出。

step - 5: 将所需的DAC代码写入DAC_INPUT寄存器。

2 输出FAULT pin

AD5758配有FAULT引脚。该引脚是一个有源低漏开输出,允许多个AD5758器件连接到一个上拉电阻上,用于全局故障检测。当没有检测到故障时,该引脚具有高阻抗,当检测到某些故障时,例如电流模式下的开路、电压模式下的短路、CRC错误或过温错误时,该引脚被断言为低阻抗。表17显示了自动强制fault引脚激活的故障条件,并突出显示了通过FAULT_PIN_CONFIG注册表可用的用户可屏蔽故障位。

DIG_DIAG_STATUS, ANA_DIAG_STATUS和WDT_状态寄存器的STATUS位与FAULT引脚和FAULT_PIN_STATUS位一起使用,以通知用户哪个故障条件导致FAULT引脚或FAULT_PIN_STATUS位被激活。

3 ADC_IP_SELECT 

AD5758集成了一个12位ADC,为用户可选择的输入提供诊断信息,如电源、接地、内部芯片温度、参考和外部信号。看到表18给出了可选输入的完整列表。用于ADC的参考来自REFOUT,如有必要,提供了一种独立于DAC参考(REFIN)的方法。ADC_CONFIG寄存器通过ADC_IP_SELECT位配置多路复用ADC输入通道的选择

ADC的输入范围为0 V至2.5 V,可用于数字化各种不同的节点。ADC的输入集包括单极和双极范围,从高电压值到低电压值不等。因此,为了能够数字化它们,必须将0 V至2.5 V ADC输入范围之外的电压范围进行细分。ADC传递函数方程取决于所选择的ADC输入节点(所有传递函数方程的总结见下表)

4 AD5758的寄存器

4.1 寄存器列表

AD5758内部共有29个寄存器,可供用户使用,其具体定义如下:

4.2 寄存器参数介绍

4.2.1 NOP Register

Address: 0x00, Reset: 0x000000, Name: NOP
将0x0000写入该地址的Bits[D15:D0]以执行NOP (no operation)命令。这个寄存器的位[15:0]总是读回0x0000。

4.2.2 DAC Input Register

Address: 0x01, Reset: 0x010000, Name: DAC_INPUT
Bits[D15:D0]由写入DAC的16位数据组成。如果LDAC引脚处于低位(即活动),则将DAC_INPUT寄存器的内容直接写入DAC_OUTPUT寄存器,而不依赖于任何LDAC功能。如果LDAC引脚处于高位,那么当LDAC引脚处于低位或编写软件LDAC命令时,将DAC_INPUT寄存器的内容写入DAC_OUTPUT寄存器。

 4.2.3 DAC Output Register

Address: 0x02, Reset: 0x020000, Name: DAC_OUTPUT
DAC_OUTPUT是一个只读寄存器,包含最新校准的16位DAC输出值。如果由于WDT故障而发生清除事件,则该寄存器包含清除代码,直到DAC更新为另一个代码。

 4.2.4  Clear Code Register

Address: 0x03, Reset: 0x030000, Name: CLEAR_CODE
当写入CLEAR_CODE寄存器时,位[D15:D0]由清除代码组成,当发生清除事件(例如,WDT故障)时,DAC将清除该代码。在清除事件之后,必须用要写入DAC的16位数据重写DAC_INPUT寄存器,即使它与之前在清除事件之前写入的数据相同。执行LDAC写入操作(无论是硬件还是软件)不会将DAC_OUTPUT寄存器更新为新的代码,直到DAC_INPUT寄存器被首次写入。

 4.2.5 User Gain Register

Address: 0x04, Reset: 0x04FFFF, Name: USER_GAIN
16位USER_GAIN寄存器允许用户以1 LSB的步骤调整DAC通道的增益。USER_GAIN寄存器编码是直接二进制的。默认为0xFFFF。理论上,增益可以在整个输出范围内进行调谐。在实践中,最大推荐增益修剪约为编程范围的50%,以保持精度。

 4.2.6  User Offset Register

Address: 0x05, Reset: 0x058000, Name: USER_OFFSET
16位的USER_OFFSET寄存器允许用户将DAC通道的偏移量调整为−32,768 LSB至+32,768 LSB,每步调整1 LSB。USER_OFFSET寄存器编码是直接二进制的。默认代码是0x8000,这导致输出中编程的零偏移量。

 4.2.7 DAC Configuration Register

Address: 0x06, Reset: 0x060C00, Name: DAC_CONFIG
该寄存器配置DAC(范围,内部/外部RSET和输出使能),启用输出级电路,并配置压摆率控制功能。

 2.2.8 Software LDAC Register
Address: 0x07, Reset: 0x070000, Name: SW_LDAC
将0x1DAC写入该寄存器,在SPI帧内匹配ADDRESS位的设备上执行软件LDAC更新。如果设置了GP_CONFIG2寄存器中的GLOBAL_SW_LDAC位,则忽略AD0和AD1位,并且通过SW_LDAC命令更新共享相同SPI总线的所有设备。这个寄存器的位[15:0]总是读回0x0000。

 4.2.9 Key Register

Address: 0x08, Reset: 0x080000, Name: Key
这个寄存器接受特定的关键代码来执行任务,如校准存储器刷新和软件复位。这个寄存器的位[15:0]总是读回0x0000。保留所有未列出的键代码。

 4.2.10 General-Purpose Configuration 1 Register

Address: 0x09, Reset: 0x090204, Name: GP_CONFIG1
该寄存器用于配置温度比较器阈值和CLKOUT等功能,以及启用其他杂项功能。


 

 4.2.11 General-Purpose Configuration 2 Register

Address: 0x0A, Reset: 0x0A0200, Name: GP_CONFIG2
该寄存器用于配置和启用诸如电压比较器和全局软件LDAC之类的功能。

 4.2.12  DC-to-DC Configuration 1 Register

Address: 0x0B, Reset: 0x0B0000, Name: DCDC_CONFIG1
该寄存器用于配置dc-to-dc控制器模式。

 4.2.13  DC-to-DC Configuration 2 Register

Address: 0x0C, Reset: 0x0C0100, Name: DCDC_CONFIG2

该寄存器配置各种dc- dc模块特性,例如dc- dc转换器电流限制和dc- dc模块节点,以便复用到ADC。



 

 4.2.14  Watchdog Timer (WDT) Configuration Register

Address: 0x0F, Reset: 0x0D0009, Name: WDT_CONFIG
这个寄存器配置WDT超时值。该寄存器还根据可接受的重置和对WDT故障的响应(例如,清除输出或重置设备)来配置WDT设置。

 4.2.15  Digital Diagnostic Configuration Register

Address: 0x10, Reset: 0x10005D, Name: DIGITAL_DIAG_CONFIG
此寄存器为特定应用程序配置各种感兴趣的数字诊断特性

 4.2.16 ADC Configuration Register

Address: 0x11, Reset: 0x110000, Name: ADC_CONFIG
该寄存器将ADC配置为四种操作模式之一:键排序、自动排序、当前选择的ADC_IP_SELECT节点的单次立即转换或单键转换。

  4.2.17 FAULT Pin Configuration Register

Address: 0x12, Reset: 0x120000, Name: FAULT_PIN_CONFIG
如果需要,这个寄存器用于屏蔽fault引脚的特定故障位。

  4.2.18 Two Stage Readback Select Register

Address: 0x13, Reset: 0x130000, Name: TWO_STAGE_READBACK_SELECT
该寄存器选择两阶段读回操作所需的寄存器的地址。所选读回寄存器的地址存储在Bits[D4:D0]中。

 

 4.2.19 Digital Diagnostic Results Register

Address: 0x14, Reset: 0x14A000, Name: DIGITAL_DIAG_RESULTS
该寄存器包含片上数字诊断功能的错误标志,其中大多数可以使用数字诊断配置寄存器进行配置。这个寄存器还包含一个标志来指示重置发生,以及一个标志来指示校准存储器没有刷新或无效的SPI访问尝试。除了CAL_MEM_UNREFRESHED和SLEW_BUSY标志外,所有这些标志都需要写入1才能将它们更新为当前值。cal_mem_unrefresh_和SLEW_BUSY标志在校准备忘时自动清除。

 

 4.2.20 Analog Diagnostic Results Register

Address: 0x15, Reset: 0x150000, Name: ANALOG_DIAG_RESULTS
这个寄存器包含一个错误标志,对应于四个电压节点(VLDO, INT_AVCC, REFIN和REFOUT)背景由比较器,以及每个模具温度的标志,这也是由比较器监测。电压输出短电路,电流输出开路和直流到直流的错误标志也包含在这个寄存器中。比如DIGITAL_DIAG_RESULTS寄存器中包含的所有标志都需要向它们写入1来更新或清除它们。当相应的未启用诊断功能,则相应的错误标志被读取为零。

 4.2.21 Status Register

Address: 0x16, Reset: 0x100000, Name: Status
该寄存器包含ADC数据和状态位,以及WDT、OR模拟和数字诊断以及FAULT引脚状态位

这篇关于AD5758单通道16位电流和电压输出DAC的软件应用特性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/902200

相关文章

顺序表之创建,判满,插入,输出

文章目录 🍊自我介绍🍊创建一个空的顺序表,为结构体在堆区分配空间🍊插入数据🍊输出数据🍊判断顺序表是否满了,满了返回值1,否则返回0🍊main函数 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~ 🍊自我介绍   Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

ActiveMQ—消息特性(延迟和定时消息投递)

ActiveMQ消息特性:延迟和定时消息投递(Delay and Schedule Message Delivery) 转自:http://blog.csdn.net/kimmking/article/details/8443872 有时候我们不希望消息马上被broker投递出去,而是想要消息60秒以后发给消费者,或者我们想让消息没隔一定时间投递一次,一共投递指定的次数。。。 类似

PostgreSQL核心功能特性与使用领域及场景分析

PostgreSQL有什么优点? 开源和免费 PostgreSQL是一个开源的数据库管理系统,可以免费使用和修改。这降低了企业的成本,并为开发者提供了一个活跃的社区和丰富的资源。 高度兼容 PostgreSQL支持多种操作系统(如Linux、Windows、macOS等)和编程语言(如C、C++、Java、Python、Ruby等),并提供了多种接口(如JDBC、ODBC、ADO.NET等

【JavaScript】LeetCode:16-20

文章目录 16 无重复字符的最长字串17 找到字符串中所有字母异位词18 和为K的子数组19 滑动窗口最大值20 最小覆盖字串 16 无重复字符的最长字串 滑动窗口 + 哈希表这里用哈希集合Set()实现。左指针i,右指针j,从头遍历数组,若j指针指向的元素不在set中,则加入该元素,否则更新结果res,删除集合中i指针指向的元素,进入下一轮循环。 /*** @param

详解Tomcat 7的七大新特性和新增功能(1)

http://developer.51cto.com/art/201009/228537.htm http://tomcat.apache.org/tomcat-7.0-doc/index.html  Apache发布首个Tomcat 7版本已经发布了有一段时间了,Tomcat 7引入了许多新功能,并对现有功能进行了增强。很多文章列出了Tomcat 7的新功能,但大多数并没有详细解释它们

如何掌握面向对象编程的四大特性、Lambda 表达式及 I/O 流:全面指南

这里写目录标题 OOP语言的四大特性lambda输入/输出流(I/O流) OOP语言的四大特性 面向对象编程(OOP)是一种编程范式,它通过使用“对象”来组织代码。OOP 的四大特性是封装、继承、多态和抽象。这些特性帮助程序员更好地管理复杂的代码,使程序更易于理解和维护。 类-》实体的抽象类型 实体(属性,行为) -》 ADT(abstract data type) 属性-》成

如何将一个文件里不包含某个字符的行输出到另一个文件?

第一种: grep -v 'string' filename > newfilenamegrep -v 'string' filename >> newfilename 第二种: sed -n '/string/!'p filename > newfilenamesed -n '/string/!'p filename >> newfilename

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录 在深度学习项目中,目标检测是一项重要的任务。本文将详细介绍如何使用Detectron2进行目标检测模型的复现训练,涵盖训练数据准备、训练命令、训练日志分析、训练指标以及训练输出目录的各个文件及其作用。特别地,我们将演示在训练过程中出现中断后,如何使用 resume 功能继续训练,并将我们复现的模型与Model Zoo中的

第六章习题11.输出以下图形

🌏个人博客:尹蓝锐的博客 希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏支持一下笔者吧~ 1、题目要求: 输出以下图形