文章目录

  • 一、简介
  • 二、硬件
    • 1、芯片引脚
    • 2、芯片原理
    • 2、电路设计
  • 三、软件
    • 1、时序图
    • 2、片内寄存器
    • 3、程序编写

一、简介

性质:数模转换器
生厂商:TI(德州仪器)
分辨率:16位
通道数量:4
相对精度:±4LSB
输出阻抗:1Ω
电源电压(AVDD):2.7V~5.5V
参考电压(VREF):0~AVDD
输出电压:0~VREF

数据手册可点击链接免费下载:DAC8554 Datasheet

二、硬件

1、芯片引脚

序号 引脚名称 描述
1 VOUTA 电压输出通道A
2 VOUTB 电压输出通道B
3 VREFH 正参考电压
4 AVDD 电源电压
5 VREFL 负参考电压
6 GND
7 VOUTC 电压输出通道C
8 VOUTD 电压输出通道D
9 SYNC 低电平时开始传输数据
10 SCLK 时钟,最高50MHz
11 DIN 数据输入
12 IOVDD 数字电路电源
13 A0 地址设置位
14 A1 地址设置位
15 ENABLE 低电平使能SPI
16 LDAC 加载DAC寄存器,上升沿触发

DAC8554提供了两种数据同步更新功能,包括软件和硬件。

软件更新即用LD0/LD1控制更新方式,这时LDAC用不上,永久接地就好了;

硬件更新用LDAC控制,将数据存入缓冲器,随着LDAC从低变高,所有通道将一步更新到位。

2、芯片原理

芯片内部框图

可以看到芯片采用两级缓冲结构(Data Buffer ->DAC Register),这样的结构有4组,分别对应四个通道。从DIN输入的数据首先进入24位移位寄存器,然后进入缓冲器buffer,最后进入DAC寄存器,经过运放处理才得到最终电压。

DAC8554属于开关树形DA转换器,关于它的原理可查看【数电】DAC。

其内部结构如下图所示:

其中电阻串结构如下所示

电阻串顶端接VREF_H,底端接VREF_L,经过65536个电阻R和一个电阻R_DIVIDER分压,且
RDIVIDER=65536∗RR_{DIVIDER}=65536*RRDIVIDER​=65536∗R
将分压信号输入给同向放大器,由

VoVi=1+R2R1\frac{Vo}{Vi}=1+\frac{R2}{R1}ViVo​=1+R1R2​
得到放大器增益为2.

故最终输出电压为:

Vout=2∗(VREFL+(VREFH−VREFL)/265536∗DIN)Vout=2*(V_{REF}L+\frac{(V_{REF}H-V_{REF}L)/2}{65536}*D_{IN})Vout=2∗(VREF​L+65536(VREF​H−VREF​L)/2​∗DIN​)$$

电阻串电路中,每次只会有一个开关导通!

2、电路设计

(1)正参考电压接5V(由REG195G提供),负参考电压接地
(2)地址位为00
(3)ENABLE永久接地

为什么要接47电阻?

三、软件

1、时序图

采用3线制串行接口,可兼容SPI通讯协议。

将SYNC拉低,写时序开始。

在SCLK每个下降沿,DIN上数据被存入24位移位寄存器。

在24个数据写入过程中,如果SYNC拉高,则数据写入失败,之前写入的数据将丢弃。

从图中可以看出,总线空闲状态下,SCLK为1,故CPOL=1。

从图中可以看出,在第1、3、5个边沿进行数据采样,故CPHA=0。

SPI可采用模式2与DAC8554通讯。

2、片内寄存器


输入移位寄存器一共有24位,其中高8位为控制位,低16位为数据位.

A1/A0:地址位,可使一个主机最多控制4个DAC8554共16个通道的芯片,写入A1A0的地址必须与硬件设置的地址相同。
LD1/LD0:加载模式控制,使用指定的 16 位数据值或掉电命令控制每个模拟输出的更新。

LD1 LD0 模式 描述 (请结合芯片内部结构框图阅读)
0 0 单通道存储模式 被选中的DAC通道的缓冲器加载输入移位寄存器中的数据,或者加载掉电模式命令
0 1 单通道更新模式 被选中的DAC通道的缓冲器DAC寄存器加载输入移位寄存器中的数据,或者加载掉电模式命令
1 0 同步更新模式 选中通道从移位寄存器中更新数据,同时其他通道从缓冲器中更新之前的数据
1 1 广播更新模式 不管地址是否匹配,挂载的所有DAC8554都会响应。若DAC Select1=0,则所有通道更新缓冲器中保存的数据;若DAC Select1=1,则所有通道更新移位寄存器中保存的数据

数据存储进缓冲器还不会有对应电压输出,必须加载进入DAC寄存器才会

X:
DAC Select1/2:选择通道,A(00)/B(01)/C(10)/D(11)
PD0:选择掉电模式。若PD0=1,D15和D14将表示掉电模式:

从表中可以看出,不同的掉电模式有不同的输出阻抗。

3、程序编写


使用SPI模式2与DAC8554通讯,即CPOL=1,CPHA=0。由于DAC8554最高通讯速率为50MHz,故这里设置为30M。

初始化函数

void MX_SPI2_Init(void)
{hspi2.Instance = SPI2;hspi2.Init.Mode = SPI_MODE_MASTER;hspi2.Init.Direction = SPI_DIRECTION_2LINES_TXONLY;hspi2.Init.DataSize = SPI_DATASIZE_8BIT;hspi2.Init.CLKPolarity = SPI_POLARITY_HIGH;hspi2.Init.CLKPhase = SPI_PHASE_1EDGE;hspi2.Init.NSS = SPI_NSS_SOFT;hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;hspi2.Init.TIMode = SPI_TIMODE_DISABLE;hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;hspi2.Init.CRCPolynomial = 0x0;hspi2.Init.NSSPMode = SPI_NSS_PULSE_ENABLE;hspi2.Init.NSSPolarity = SPI_NSS_POLARITY_LOW;hspi2.Init.FifoThreshold = SPI_FIFO_THRESHOLD_01DATA;hspi2.Init.TxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;hspi2.Init.RxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN;hspi2.Init.MasterSSIdleness = SPI_MASTER_SS_IDLENESS_00CYCLE;hspi2.Init.MasterInterDataIdleness = SPI_MASTER_INTERDATA_IDLENESS_00CYCLE;hspi2.Init.MasterReceiverAutoSusp = SPI_MASTER_RX_AUTOSUSP_DISABLE;hspi2.Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_DISABLE;hspi2.Init.IOSwap = SPI_IO_SWAP_DISABLE;if (HAL_SPI_Init(&hspi2) != HAL_OK){Error_Handler();}}

写移位寄存器函数

/**********************************************************************
* 名称 : DAC_Write_Reg
* 功能 : DAC 写数据寄存器函数
* 输入 : Addr -- 地址nCH -- 通道DAC_Code -- DAC内码
* 输出 :无
* 说明 : 无
***********************************************************************/
void DAC_Write_Reg(uint8_t Addr,uint8_t nCH,uint16_t DAC_Code)
{uint8_t CMD = 0x00;uint8_t dac_code[2];//将16位数据存储在数组中dac_code[0]=DAC_Code >> 8;//高位先行dac_code[1]=DAC_Code >> 0;//采用硬件进行数据更新HAL_GPIO_WritePin(GPIOC, LDAC_Pin, GPIO_PIN_RESET);  //LDAC = 0(上升沿加载DAC)//1.设置命令  CMD = CMD | (Addr << 6);              //设置地址(A1/A0)CMD = CMD | (nCH  << 1);                //设置输出通道(SEL1/SEL0)//2.写入DAC数据 HAL_GPIO_WritePin(SPI2_SYNC_GPIO_Port, SPI2_SYNC_Pin, GPIO_PIN_RESET);//SYNC = 0,开始写入HAL_SPI_Transmit(&hspi2, &CMD, 1, 1000);HAL_SPI_Transmit(&hspi2, dac_code, 2, 1000);HAL_GPIO_WritePin(SPI2_SYNC_GPIO_Port, SPI2_SYNC_Pin, GPIO_PIN_SET);//SYNC = 1,结束写入HAL_GPIO_WritePin(GPIOC, LDAC_Pin, GPIO_PIN_SET);//LDAC = 1,上升沿完成DAC加载
}

翻译函数

/**********************************************************************
* 名称 : DAC_Translate
* 功能 : 将目标电压翻译为DAC内码,支持分辨率0.076mV
* 输入 : nCH -- 通道Votage -- 电压值
* 输出 :无
* 说明 : 1.输出范围:0 <= Votage <= +VREF2.关于校正系数DAC_Coeff,当DAC输出存在线性误差时可通过校正系数来修正输出值,假如设定值位Vset = 2.5V,实际Vout= 2.485V此时的校正系数为DAC_Coeff = Vset÷ Vout = 1.006f***********************************************************************/
void DAC_Translate(uint8_t nCH,float Votage)
{uint16_t r_Value = 0x0000;            //寄存器数据r_Value = (uint16_t)((float)CODE_MAX * Votage * DAC_Coeff / DAC_VREF);  //计算DAC内码DAC_Write_Reg(DAC_ADDR,nCH,r_Value);//写入数据
}

【芯片应用】DAC8554相关推荐

  1. 2022-2028年中国SIP芯片行业市场前景预测及投资战略研究报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国SIP芯片行业市场行业相关概述.中国SI ...

  2. 人工智能3d建模算法_打破国外垄断,全国产3D芯片为机器人“点睛”

    ◎ 科技日报记者 崔爽 传统机器人只有"手",只能在固定好的点位上完成既定操作,而新一轮人工智能技术大大推动了机器和人的协作,这也对机器人的灵活性有了更高要求. 要想像人一样测量. ...

  3. GPU、AI芯片技术市场分析

    GPU.AI芯片技术市场分析 市场将高速增长,GPU曙光初现,预计到2024年,国内人工智能技术市场规模将达到172亿美元:全球占比将从2020年12.5%上升到15.6%,是全球市场增长的主要驱动力 ...

  4. 2002年3月英伟达发布核弹GPU与大算力自动驾驶芯片

    2002年3月英伟达发布核弹GPU与大算力自动驾驶芯片 英伟达核弹级GPU:800亿晶体管,20块承载全球互联网流量 2022年3 月 22 日,在英伟达 GTC2022 上,英伟达介绍了 Hoppe ...

  5. 2022年AI芯片场景

    2022年AI芯片场景 随着技术成熟化,AI芯片的应用场景除了在云端及大数据中心,也会随着算力逐渐向边缘端移动,部署于智能家居.智能制造.智慧金融等领 域:同时还将随着智能产品种类日渐丰富,部署于智能 ...

  6. 芯片初创公司一亿融资可以烧多久

    芯片初创公司一亿融资可以烧多久 一个亿融资可以烧多久? 这个问题我分别问了几个芯片公司的创始人. 有说2年的(某中等规模电路,成熟制程的MCU芯片公司):有说1年的(某AI算力芯片公司):有说半年的( ...

  7. 一站式智能芯片定制技术

    一站式智能芯片定制技术 从55nm到5nm先进工艺,拥有创纪录(> 200次流片)和年10万片FinFET晶圆授权量产的骄人业绩,并且成功率高达100%.15年以来,先进工艺产品交付纪录持续行业 ...

  8. 内存接口芯片,服务器平台,PCIe 芯片

    内存接口芯片,服务器平台,PCIe 芯片 澜起科技成立于2004年,是国际领先的数据处理及互连芯片设计公司,致力于为云计算和人工智能领域提供高性能,低功耗的芯片解决方案,目前公司拥有互连类芯片和津逮® ...

  9. LED芯片,应用品,蓝宝石衬底,集成电路,UV

    LED芯片,应用品,蓝宝石衬底,集成电路,UV 三安主要从事全色系超高亮度LED芯片的研发,生产与销售,产品性能稳定,品质优异. 产品覆盖 三安能够提供全波长范围的LED,产品可覆盖全部可见光和不可见 ...

最新文章

  1. SharePoint 2010 初体验(二)搭建一个简单的三态工作流
  2. .net测试篇之单元测试/集成测试神器Autofixture
  3. 从UnitedStack OS 1.0 Preview试用申请问卷调查学习OpenStack
  4. [Maven问题总结]Maven+Tomcat7
  5. CSS3学习笔记之loading动画
  6. 夏普SHARP AR-2818 一体机驱动
  7. HTML网页设计:导航栏
  8. u盘数据丢失了怎么恢复?u盘数据恢复,2个方案完成
  9. Android中ail的作用和使用说明
  10. 格林公式求圆并的面积及重心
  11. 手把手教你用keras搭建GAN
  12. 【NOIP2014】生活大爆炸版石头剪刀布
  13. win10打开计算机闪屏,Win10打开资源管理器闪屏怎么办?Win10资源管理器闪屏问题的解决方法...
  14. ROS加强精通过程--禁止 未授权用户上网
  15. 程序员如何找对象(1)
  16. 带宽不足会引起php cpu,云服务器的带宽不足会造成的影响
  17. 常用CASE工具介绍 (csnd.net)
  18. 提升html5的性能体验系列之一避免切页白屏
  19. EuroSys'14 会议记录
  20. 魔兽世界怀旧服十月最新服务器,10月12日魔兽世界经典旧世 怀旧服服务器的开放进展...

热门文章

  1. 【已解决】WPS/OFFICE中word文件可以打印,excel打印后无响应
  2. [oeasy]python0072_修改字体前景颜色_foreground_color_font
  3. 关于如何设置收藏本站和设为首页
  4. DataX及DataX-Web
  5. 【0429】散列函数和消息鉴别
  6. b站怎么改回html播放,b站视频播放器设置页面在哪里?怎么设置熄屏播放?怎么只播放声音?...
  7. 记录一次错误:Springboot访问前端页面“No mapping for GET”
  8. Cython 是什么?为什么会有 Cython?
  9. metaq spring
  10. JavaWeb 实验 Servlet用户登录验证