STM32——HAL库函数版——AD7656驱动程序

STM32驱动AD7656程序

AD7656程序源码
我采用的是 并行接口 进行AD7656模块与STM32L431RCT6进行通信

一、AD7656特性:

1.6个独立ADC
2.真双极性模拟输入
3.引脚/软件可选范围:+/-10V、+/-5V
4.高吞吐速率:250KSPS
5.低功耗:140mW(250KSPS,5V电源)
6.高速并行、串行和菊花链接口模式
7.高速串行接口:SPI 、QSPI、 MICROWIRE、 DSP兼容
8.待机模式:最大315uW
9.64引脚LQFP封装
10.内置6个1/14/12位,快速、低功耗逐次逼近型ADC

二、引脚使用

1.DATAR0-DATAR15 并行数据输出引脚
2.ADBUSY 输出繁忙。开始转换时,此引脚变为高电平,并保持高电平直到转换完成,并且转换数据被锁存到输出数据寄存器。如果BUSY信号处于高电平,由于会忽略任何施加的CONVST边沿,因此无法启动新的转换。
3.ADCS 片选。此引脚低电平有效逻辑输入使能数据帧传输。如果CS和RD均处于逻辑低电平,同时选择并行接口,则会使能输出总线,使转换结果被输出在并行数据总线上。如果CS和WR均处于逻辑低电平,同时选择并行接口,则利用DB[15:8]将数据写入片上控制寄存器。当选择串行接口时,利用CS使能串行数据帧传输,并逐个输出串行数据的最高有效位(MSB).
4.ADOE(RD) 读取数据。如果CS和RD均处于逻辑低电平,同时选择并行接口,则会启用输出总线。当选择串行接口时,RD线路应保持低电平。
5.RANGE 模拟输入范围选择,逻辑输入。此引脚的逻辑电平决定模拟输入通道的输入范围。当此引脚在BUSY下降沿为逻辑1时,下一次转换的范围为+/-2VREF。当此引脚在BUSY下降沿为逻辑0时,下一次转换的范围为+/-4VREF。
在硬件选择模式下,在BUSY下降沿检查RANGE引脚。在软件模式(H/S SEL=1)下,可将RANGE引脚和DGND相连,然后由控制寄存器内的RNGA、RNGB、RNGC位决定输入范围
6.ADCOV 转换开始输入A,转换开始输入B和转换开始输入C,这些逻辑输入用来启动ADC对转换。CONVST A用来启动V1和V2同步转换。CONVST B用来启动V3和V4同步转换 CONVST C用来启动V5和V6同步转换。当其中一个引脚从低电平变为高电平时,所选ADC对的取样保持开关从采样切换到保持,然后便启动转换。利用这些输入端,还可让ADC对进行部分省电模式。
7.ADRST 复位输入。设置为逻辑高时,此引脚可复位。
8.ADREFA 基准源去偶电容A
9.ADREFB 基准源去偶电容B
10.ADREFC 基准源去偶电容C
11.ADREF 基准电压输入/基准电压输出。可通过此引脚提供片上基准电压。或者,可禁用内部基准电压,并将外部基准电压施加到此输入端。参见内部/外部基准电压部分。启用内部基准电压时,利用至少一个1uf去偶电容对此引脚去偶。
12.VDD 正电源电压,这是模拟输入部分的正电源电压
13.VSS 负电源电压,这是模拟输入部分的负电源电压
14.V1-V6 模拟信号输入

注意: VDD 和 VSS必须接,否则6路通道采集不到数据
VDD 正电源电压,这是模拟输入部分的正电源电压
VSS 负电源电压,这是模拟输入不得的负电源电压

三、并行接口工作原理

采用并行工作模式,首先由CONVST引脚启动转换(CONVST脉冲应包括一个CONVST下降沿随后为一个CONVST上升沿),并保持为高电平。然后由AD7656在启动转换信号后输出BUSY信号,当BUSY信号出现下降沿时,代表AD模块转换已经结束。此时,AD7656内部的寄存器已经保存了转换的数据,可通过控制片选CS和读信号RD来依次读取各个通道的AD转换值。读取转换值后,可改变CONVST为低电平,为下一次转换做好准备。注意:一定要保证AD转换过程中CONVST为高电平。

注意:片选信号CS和读数据信号RD用CPU的引脚模拟时序,把CPU的数据引脚连接到AD7656的数据输出引脚上,同时读取AD7656输出的16位数据,进行转换计算

并行接口时序图
在这里插入图片描述

四、AD7656取值范围

-32768 - 32768 第一位是符号位 ;满值是7FFF

程序源码在最上面进行下载

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HC-SR04超声波测距模块是一种常用的测距传感器,可以通过发送超声波脉冲并接收回波信号来测量距离。在STM32函数中,可以通过以下步骤来使用HC-SR04超声波测距模块: 1. 首先,需要包含"sys.h"头文件,并初始化HC_SR04超声波模块,可以使用HC_SR04_Init()函数进行初始化。\[1\] 2. 在测距之前,需要向Trig控制端输入至少10us的高电平触发信号,可以使用HC_SR04_start()函数发送20us的脉冲触发信号。\[1\] 3. HC-SR04模块内部会发送8个40KHz的方波并检测回波信号,一旦检测到回波信号,Echo接收端会输出高电平回响信号,高电平的持续时间就是超声波从发射到返回的时间。根据公式:距离=高电平时间*声速(340M/S)/2,可以计算出测得的距离。\[2\] 总结来说,使用STM32函数的HC-SR04超声波测距模块,需要初始化模块并发送触发信号,然后根据回响信号的高电平时间计算出距离。 #### 引用[.reference_title] - *1* *2* [STM32——库函数——超声波测距模块](https://blog.csdn.net/qq_45844792/article/details/111215858)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [STM32连接HC-SR04超声波测距(结合STM32CubeMX和HAL库函数)](https://blog.csdn.net/wuwenbin12/article/details/118575989)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西瓜籽@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值