首页 » 通讯 » 数模转换芯片 AD5544 具体解读SPI软件接口有个陷阱要避开_电压_量程

数模转换芯片 AD5544 具体解读SPI软件接口有个陷阱要避开_电压_量程

少女玫瑰心 2024-12-26 11:29:58 0

扫一扫用手机浏览

文章目录 [+]

因此我们在这个芯片上研究不少韶光,文档和开拓板都很大略,但是自写软件总是掌握不了,走了很大的弯路,直到后面实测创造才创造这个文档有留了一个坑。

这款芯片一大特点便是用一个4线的SPI总线来输入一个分外指令来掌握输出电流的变革,相对付用IO脚来掌握方法,大大节约了硬件管脚数量。

数模转换芯片 AD5544 具体解读SPI软件接口有个陷阱要避开_电压_量程 数模转换芯片 AD5544 具体解读SPI软件接口有个陷阱要避开_电压_量程 通讯

它的事理便是在有一个稳定的输入参考电压(VREFX),通过软件发送SPI指定参数可以动态在在输出端输出 仿照电压,跨度在0-7.5V 电压. 这个特性常用于硬件乘法器,旗子暗记发器等设计.

数模转换芯片 AD5544 具体解读SPI软件接口有个陷阱要避开_电压_量程 数模转换芯片 AD5544 具体解读SPI软件接口有个陷阱要避开_电压_量程 通讯
(图片来自网络侵删)

   个中输入电压与输出电压的换算关系知足如下公式​

这个公式中,-Vref 是输入电压,一样平常是桓定的5V, Vout为输出电压, 65536是一个常量,这个D就SPI输入换算系数. 65536即2的16次方,可以限定D的最大值不能超过16bit ,这便是由芯片硬件精度限定.

在这个公式里,开头-号表示输入和输出电压极性恰好相反.即输入一个正电压,出来是负电压.

这里顺便是提一下ADI另一颗DAC芯片AD5554是14bit精度,这样公式就换算成

这里16384便是 2的14次方.

硬件解读

这是硬件框图,

在面向上位机 ,有7个管脚,个中CS/SCLK/SCIN/SDO 这是SPI四个标准脚,但这里只须要软件输出即可,SCIN用于多块AD5544串连利用.因此ADI把这个又称为3 wire spi.

其余一个3个功能脚是 MSB 用于设定输出量程, 零代码状态(MSB = 0) 接地

或半量程状态(MSB = 1), MSB脚为0表示全量程,为1表示输出半量程,即参考电压一半(比如即5V输入, -2.5v输出​)。
这是输出是硬件实行,不须要软件干预,以是可以用于测试芯片硬件是否正常事情。
在实际运行直接设为MSB=0

对RS复位管脚,低电平有效置0表示软件复位​​,相称于软件重启

LDAC管脚,低电平有效,功能加载DAC寄存器选通​.相称于spi数据生效.

也便是说最低须要 ldac,cs,sclk,sdo 四个管脚就可以事情了。

为了验证这一过程,ADI供应发板 EVAL-AD5544为例来先容如何掌握AD5544,

按文档先容,专门先容两个实例

翻译过来便是

当输入电压为10v,输入数据为0x4000时,输入地址为0,即产生1/4量程电压,即在 VoutA上产生 -2.5v电压输出

当输入电压为10v,输入数据为0xC000时,输入地址为0,即在 VoutA上产生 -7.5v电压输出

​测试下来,的确如此。

软件掌握接口

参考基功能框图,在其SDO端,软件要发来18bit的SPI掌握数据

个中 18bit 的数据中,高2位是地址,低16bit 掌握数据D

地址对应关系如下​,用来指明向哪个通道输出电压

但是我们知道,无论单片机还是x86,arm 软件用下传输数据都是基于8对齐,也便是说我们通过spi发送18bit数据,必须要补齐至少24bit,也便是3个byte数据,软件才能操作。

  那这多出来6bit补哪里呢?这里文档写明是按msb优先。
我们理解成在SPI MSB模式下,​首先传输bit17,bit16,自然多出位要补数字低位.但是测试下来芯片如终不为所动.

  末了溘然反应过来是否补错了?ADI公布很多芯片的驱动代码,但偏偏就少这款芯片的,后面反应过来,实际上补在数字高位也便是第一个byte低两位便是地址,高位没用。

然后再传输16bit的掌握数据,恰好2byte,至此所有代码一通百通。
希望后来的兄弟少走弯路

void US_SPI_Write2Byte(u8 addr_TD, u16 ad5544_data){ u8 tempdata = 0; AD5544_CS_HIGH(); if(addr_TD == 0)//通道0 { AD5544_CS_LOW(); AD5544_ReadWriteByte(0); } else if(addr_TD == 1)//通道1 { AD5544_CS_LOW(); AD5544_ReadWriteByte(1); } else if(addr_TD == 2)//通道2 { AD5544_CS_LOW(); AD5544_ReadWriteByte(2); } else//通道3 { AD5544_CS_LOW(); AD5544_ReadWriteByte(3); } tempdata = (ad5544_data >> 8); //发送高8位 AD5544_ReadWriteByte(tempdata); tempdata = ad5544_data;//发送低8位 AD5544_ReadWriteByte(tempdata); AD5544_CS_HIGH();}

标签:

相关文章

泉州IT就业,产业崛起下的职业新机遇

近年来,随着互联网、大数据、人工智能等新兴技术的飞速发展,我国IT产业迎来了前所未有的黄金时代。泉州,这座历史文化名城,也凭借其独...

通讯 2024-12-28 阅读0 评论0

洗衣机DLL,智能家电的革新力量

随着科技的不断发展,智能家电逐渐成为现代家庭生活的标配。洗衣机作为家庭生活中不可或缺的电器之一,其智能化程度也日益提高。本文将围绕...

通讯 2024-12-28 阅读0 评论0

这些做法国务院点赞_企业_亿元

有关地方范例履历做法通报如下:一、北京市做实做细做好深化“放管服”改革事情打造国际一流营商环境。北京市出台《北京市优化营商环境条例...

通讯 2024-12-28 阅读0 评论0