欢迎光临散文网 会员登陆 & 注册

STM32 HAL库 模拟SPI驱动 DAC8560

2021-04-30 12:03 作者:僚机Wingplane  | 我要投稿

    网上关于DAC8560相关的模拟SPI驱动的资料少的可怜,甚至连DAC8560的中文资料都不多,更不要提用HAL库进行编程的了,这实在是一块冷门芯片,本文主要是介绍讲解STM32 HAL库使用模拟SPI驱动DAC8560。

    首先是SPI相关的简介:

    然后是用STM32CubeMx初始化模拟SPI的引脚:

    STM32CubeMx的GPIO输出的配置可以参考:

    这里之所以是只用开三个GPIO输出来模拟SPI是因为它只用到了半双工通信。

    我所用到的三个输出口分别对应8560上的三个SPI通信口。

SYNC:PA6

SCLK:PA7

DIN:PC4

    在实际的应用中可以自行修改头文件中的GPIO口以配合硬件完成工程。

    DAC8560 datasheet:

https://www.ti.com/lit/ds/symlink/dac8560.pdf

SYNC:CS 片选线

SCLK:SCLK 时钟线,用于时钟同步

DIN:DIN(MOSI) 输出24位信号的数据线

这里我们就可以看到DAC8560是时钟下降沿触发的

    按照正常使用的方法,我们需要输出24位的数据。前8位中前6位始终置零,前8位的最后两位是控制电阻的(我们正常使用全部置零),后16位则是0x0000(0V)~0xffff(2.5V)对应的电压值,其中0x0000输出0V、0xffff输出2.5V,两者之中的分为65535份。

user_dac8560.h

配合硬件修改对应的IO口

user_dac8560.c

    24位从高到低通过移位的方法依次发出,发送这24位前我们需要先拉低CS,在发送完成后再拉高。

    注意:由于是下降沿触发因此我们需要先移位再拉低时钟

使用示例

参考文献:

具有 2.5V、2ppm/°C 基准的 16 位、单通道、低功耗、超低干扰、电压输出 DAC:

https://www.ti.com.cn/product/cn/DAC8560


STM32 HAL库 模拟SPI驱动 DAC8560的评论 (共 条)

分享到微博请遵守国家法律