一、模块特点
- 24位AD采集
- SPI输出
- 采样速率可调
- 可通过$\overline{\rm{SYNC}}$引脚结合多个AD7764实现48、72等精度的采集
- 提供差分输入(可以选择不用他的差分输入)
- 超程报警(overrange引脚)
二、模块简介
- 78.125K输出,115db信噪比。
- 312K输出,109db信噪比。
- 输出速率由外部时钟控制。
- 基于奈奎斯特采样的全频带的FIR滤波器,防止出现混叠失真(采样出来的信号可以根据采样定理直接恢复成原信号) ,笔者暂时用不上此功能。
- 提供的参考电压决定了输出范围,例如4V参考电压,输入电压范围为$\pm 3.2768V$
三、模块外部电路配置方案
- 方案一、参考数据手册图37,将获取到的信号输入到芯片内提供的差分放大器中,再将差分放大器输出的信号输入到调制器中。
- 方案二、使用自己设计的差分放大器,直接输入到芯片内部的调制器中,将$V_{in}A \pm$和$V_{out}A \pm$引脚悬空
四、模块-STM32控制方案
没有找到STM32的AD7764驱动,只能自己写,内心充满的崩溃,当然是选择放弃自己写了。
4.1 实现步骤
- SPI通信配置与测试
- DMA传输配置与测试
4.2 SPI配置和说明
本不打算写这部分的,但是已经一年没有写程序了,还是详细介绍,熟悉一下。
4.2.1 SPI基础介绍
SPI的总线特点:
4根总线
| 引脚 | 功能 |
| —— | —————————————————————————————— |
| NSS | 片选端,当一个总线上面挂多个SPI设备时,用来选择哪个设备进行通信 |
| CLK | 时钟脚 |
| MISO | 数据接收脚 |
| MOSI | 数据发送脚 |4种传输模式
| SPI_CPOL | SPI_CPHA | 说明 |
| ———— | ———— | ————————————————————————— |
| 0 | 0 | 时钟CLK默认高电平,低电平写数据,上升沿传输数据。 |
| 0 | 1 | 时钟CLK默认高电平,高电平写数据,下降沿传输数据。 |
| 1 | 0 | 时钟信号默认低电平,高电平写数据,下降沿传输数据。 |
| 1 | 1 | 时钟信号默认低电平,低电平写数据,上升沿传输数据。 |2种传输传输方向
1、MSB:高位在前
2、LSB:低位在前
2中模式
1、主模式
2、从模式
注:像SPI、IIC、单总线都是主从模式,适合设备和模块通信。Usart无主从模式,适合两个设备间通信。
4.2.2 STM32F103的SPI配置
以SPI 1位例,只有一个设备,多个设备的话需要软件控制NSS片选脚,这里采用硬件控制NSS,因为懒方便。
1 | void AD7764_SPI_Init() |
4.3 DMA配置
4.3.1 DMA简介
前面已有介绍