STM32 HAL库实战(一)使用STM32驱动双通道12位DAC(TLV5618)

本文介绍了如何使用STM32F4通过HAL库驱动TLV5618双通道12位DAC。详细分析了TLV5618的数据手册,探讨了SPI接口的配置和时序,并提供了STM32CubeMX的配置步骤以及源码解析。
摘要由CSDN通过智能技术生成

TLV5618参考资料

TLV5618是德州仪器公司研发的一种双通道12-bit数模转换器, 具有较宽的电压输出范围和2倍增益
本文参考资料:TLV5618 DataSheet

硬件资源概述

  • STM32F407ZGTx, 192KB RAM, 1MB Flash, 168MHz System Clock
  • TLV5618 SSOP-8 @Texas Instrucments

开发资源概述

  • IAR for ARM 8.10.0
  • STM32CubeMX v4.22 with STM32F4 HAL v1.16.0

使用低版本IAR for ARM将无法打开本工程文件

STM32F4 SPI分析

  1. SPI是Motorola开发的一种通用串行外设接口,支持发送16或8位的数据,使用者只需考虑初始时序即可
  2. SPI共有四根接线,分别是NSS,MISO,MOSI,SCLK
    • 使用SPI时,通信的双方分为主机和从机,一般认为有时钟信号输出的为主机,此次STM32作为主机
    • NSS,从器件选择,使用STM32时一般无需关心
    • MISO,主机输入,从机输出,是主机的数据输入线,同时也是从机的数据输出线
    • MOSI,与MISO相反,是从机的数据输入线,同时也是主机的数据输出线
    • SCLK,时钟信号线,与波特率有关
  3. 若不使用NSS线作为器件选择引脚,可以选用通用I/O接口作为片选(chip select),这么做的好处就是一个SPI接口可以挂载多个从器件,常见芯片多数为片选拉低有效
  4. STM32F4拥有三个相互独立的SPI接口,其中SPI1挂载在APB2总线(最高频率84MHz)上,SPI2和SPI3挂载在APB1总线(最高频率42MHz)上,此次选用SPI2为TLV5618的挂载接口
  5. 其余的请自行查阅STM32F4中文参考手册
    注:中文参考手册最新版为2013版,与最新版2017版英文手册有一定差距,最好查阅2017版手册

TLV5618数据手册分析

  1. SSOP-8封装引脚图(俯视图)
    SSOP-8 TLV5618A
    • a. DIN 串行数据输入
      b. SCLK SPI时钟输入
      c. CS 片选引脚,低电平有效
      d. OUTA 通道A输出
      e. AGND 模拟/电源地
      f. REF 参考电压输入,此次选用2.048V参考电压(REF5020)
      g. OUTB 通道B输出
      h. VDD 供电端
  2. 电气参数及其特性此处不多赘述,只分析如何应用SPI驱动该芯片
  3. 根据数据手册,该芯片支持SPI和QSPI驱动,此次仅使用SPI,接线如下
    3-Wire SPI
  4. 芯片内部结构总览
    Block Diagram
  5. 芯片工作流程(此处是根据我的实践得出,不一定准确)

    • 单通道输出时,直接将数据写入相应通道并更新输出。假设此时令A通道输出2.048V,A通道执行完毕后对B通道进行操作,将不会影响A通道的值
    • 双通道同时输出时,允许输出不同的电压,但是仅允许如下工作模式:

    将通道B(即将输出的)的值先写入Buffer,然后写入通道A的值,最后一起更新

  • 6
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值