STM32 AD7685 AD7684 AD7686 AD7687 AD7683 AD7680系列调试记录

介绍部分

AD7685 AD7684 AD7686 AD7687 AD7688 AD7688 其差别在于转换速率不同,数据读取、分辨率完全一致。
在这里插入图片描述

单端:单输入型,只允许0V-VCC.
伪差分 :双输入但是 IN+& IN- 都必须大于0V 其中间值0-vcc/2
真差分:可以接受-vcc-vcc的信号。(简单理解,勿喷)

使用的测试板卡为AD7685 PMOD 官方demo 其原理图如下,标注部分为默认设置

在这里插入图片描述
在这里插入图片描述

数据读写时序与引脚分配

在这里插入图片描述
在这里插入图片描述

STM32 配置

16位SPI情况下相关 配置 CNV配置

请添加图片描述
在这里插入图片描述
需要及其注意的一点是 SCK GPIO 需要配置为上拉!!!!

/*伪代码*/
		 typedef union 
{
	uint8_t r_data[2];
	uint16_t adc_data;

}ad7685;
ad7685 rdata;


//main
HAL_GPIO_WritePin(SPI3_CS_GPIO_Port,SPI3_CS_Pin,GPIO_PIN_SET);
delay_us(20);// 实际延时1.6us datasheet 上为2.2us max
HAL_GPIO_WritePin(SPI3_CS_GPIO_Port,SPI3_CS_Pin,GPIO_PIN_RESET);
HAL_SPI_Receive(&hspi3,rdata.r_data,1,0xff);
vdata = ((float)(rdata.adc_data)/65535)*5.0;
HAL_Delay(1000);
//  特别注意其中SCK 需要配置为下拉模式。否则数据容易出问题!!!!
16位3.3V输入电压时的数据波形:

在这里插入图片描述

16位读取速率(可以更快取消除法运算或使用DSP)

在这里插入图片描述

8位通用SPI 配置

考虑到目前支持16位spi的单片机不多,且实际上读取一次sck发送16x2=32组脉冲,对于读取速度有相应影响遂开发8位读取模式。
在这里插入图片描述
在这里插入图片描述

8位模式下读取速率

在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值