DAC芯片与MCU通信的常见方式有:SPIIIC通用I/O模拟时序等方式控制。通俗地讲,要正确控制DAC芯片,其实就是理清该芯片的通信时序
    长话短说,本文只是简单的介绍如何通过I/O口控制使用DAC芯片。以DAC8550芯片为例:
    (1)从Datasheet中获取有用信息:
            a.引脚定义:
MCU简单控制DAC芯片应用(以DAC8550为例)

说明:控制引脚需要关注3个(SYNC、SCLK和Din)

  1. SYNC(数据帧的同步输入信号):低电平有效。当SYNC引脚为低电平,在时钟信号下降沿到来时会使能输入移位寄存器传输数据。DAC在第24个时钟之后进行更新(如果在24个时钟结束之前拉高了SYNC信号,那么忽略写入序列)
  2. SCLK(串行时钟输入信号):数据传输速率高达30MHz。
  3. Din(串行数据输入信号):在SCLK时钟输入信号的每个下降沿,数据(0或1)被写入到24位输入移位寄存器中。

            b.输入移位寄存器:

MCU简单控制DAC芯片应用(以DAC8550为例)

说明:该寄存器是24位寄存器,高6位(23~18)未使用,PD1和PD0是控制工作模式位(工作模式如下述),剩下16位是数据位。

            c.工作模式(4种工作模式):通过寄存器PD1和PD0控制

MCU简单控制DAC芯片应用(以DAC8550为例)

说明:工作模式根据需求不同而自主设置,我这里是将DAC8550的工作模式设置为正常操作模式(00)

            d.控制时序

MCU简单控制DAC芯片应用(以DAC8550为例)

说明:上面是官方的时序图,以下是我个人自己画的一个时序例子(画功不好请包涵哈)

MCU简单控制DAC芯片应用(以DAC8550为例)

            e.电压输出运算

MCU简单控制DAC芯片应用(以DAC8550为例)

 

相对熟悉了该芯片的工作原理之后,剩下就是程序控制了(程序也比较简单):

1、初始化引脚(我的硬件连接是:SYNC->PA7、SCLK->PB3和Din->PB4)

    做了个宏定义:

    MCU简单控制DAC芯片应用(以DAC8550为例)

MCU简单控制DAC芯片应用(以DAC8550为例)

2.按照时序逻辑编写:写寄存器函数(先写工作模式,后写数据)

MCU简单控制DAC芯片应用(以DAC8550为例)

MCU简单控制DAC芯片应用(以DAC8550为例)

到这里就结束了。今天新人第一次发帖,有什么错误及不足还望大伙指点赐教。

同时我也会继续努力(所爱隔山海,山海亦可平)!

谢谢~

 

相关文章:

  • 2022-01-02
  • 2021-08-16
  • 2021-12-29
  • 2021-06-15
  • 2021-12-13
  • 2021-12-16
  • 2021-06-22
猜你喜欢
  • 2022-01-09
  • 2021-06-21
  • 2022-02-28
  • 2021-12-17
  • 2021-11-20
  • 2021-11-17
  • 2022-12-23
相关资源
相似解决方案