STM32单片机AD4630-24驱动程序
2025-11-07 来源:bilibili
AD4630-24是亚德诺推出的一款24位双通道支持同步采样的ADC,高昂的售价注定了这不会是一款常用芯片,我在做驱动开发期间在中文互联网基本没有找到可以参考的资料或例程。但这次毕竟做的是一款高精度同步电压电流表,这款芯片是领导亲自选的,要求很明确,就是分辨率拉满,咱也只能硬着头皮开干。
这次也是分享以下驱动开发的思路和例程,希望能够帮助到相关人士,顺便,这款芯片要求5V和1.8V双电源供电也是让硬件同事疯狂吐槽。
1.通讯接口
AD4630-24支持串行通讯,为了提高采样结果的读取速率,SDO最高支持8通道同步输出,但很可惜这次使用的单片机是STM32F407,意法连QSPI都不给,只能使用标准的SPI接口通讯,例程也基于上述硬件条件运行。
首先看一下AD4630-24的串口时序要求,

SPI写入寄存器时序图

SPI读取寄存器时序图
可以看出SCK最高波特率100Mb,已经超过单片机的速率上限了,时钟极性是低电平,时钟相位是上升沿有效。
2.工作模式
与很多ADC类似,AD4630-24有两种工作状态,ADC转化状态和寄存器配置状态,上电后默认处于ADC转化状态,当需要对芯片的工作模式和参数进行修改时,按照下图所示发送特殊指令即可进入寄存器配置模式。

切换至寄存器模式的指令

寄存器模式相关指令描述
关于工作状态的切换,数据手册描述的非常细致,由于AD4630的回读需要将MSB置1,所以进入寄存器模式的指令就相当于是回读地址为0x3FFF的虚拟寄存器,读取的数据内容可完全无视,只需要提供完整的24个时钟组成一帧即可,配置完成后退出寄存器模式则需要向0x0014寄存器写入0x01。退出的同时会让所有修改内容生效。

BUSY引脚的3种工作模式
BUSY引脚总共有3种工作模式,在SPI时钟模式下,BUSY会在ADC转化触发后拉高,并在转化完成后拉低以提示芯片当前的状态,方便我们读取数据,非常有用。回响模式下该引脚作为输出信号提供一个有延迟的SCK时钟输入,在主始终模式下,BUSY引脚使用芯片内部时钟源向外提供时钟信号。很显然我们使用标准SPI时钟模式。

数据输出格式
对于数据输出模式,由于硬件设计的限制,我们只能使用的Interleaved模式,让两个通道的采样结果全部通过SDO0输出,至于加快时钟频率的DDR模式我们这次就不使用了,在该模式下SCK的每一次跳变沿均对应一位数据,相当于通讯速率翻了一倍。最后是输出数据长度,可以选择单通道输出24位差模数据,或是在差模信号后附带8位的共模信号输出,此处我们使用了芯片提供的平均模式,我个人将其理解为过采样,相关内容见下一部分。
3.平均值模式
想要使能该模式必须在配置模式寄存器的数据输出模式为OUT_DATA_MD,即30位平均值计算结果+1位溢出指示+1位同步指示;同时在平均值模式寄存器中配置不小于1的AVG_VAL,即每完成多少次采样后计算一次平均值。

平均值模式相关描述
与广泛使用的AD7606过采样模式相比,AD4630的平均值模式需要控制单元完成所有额外采样的触发,如下图所示

平均值模式下的采样触发和数据读取时序
在平均值模式下,CNV引脚拉高触发AD转化后,BUSY引脚会自动拉高,提示转化正在进行,但用户必须提供全部2^N次有效的触发信号,且AD转化全部完成以后,BUSY引脚才会被拉低,提示数据有效。
输出结果中的SYNC位就是用于提示输出数据是否是根据完整的2^N次采样结果计算获得的,这也说明2^N次转化未全部完成时就读取结果理论上也是支持的,虽然我没有实际尝试过。
另外,我实际测试过BUSY引脚自动拉低需要的CNV脉冲个数,与芯片手册说明一致,也就是过采样率配置了多少就必须提供多少次CNV脉冲,一个也不能少。只要硬件设计合理,芯片正常工作,触发一轮采样的CNV脉冲信号个数是可以提前确定的。
4.数据处理
在interleaved模式下,两个通道的采样结果是位与位交叠在一起输出的,如下图所示,需要先将两个通道的数据分离开才能进行后续处理。驱动例程中也提供当前项目使用的分离函数供大家参考。

在单SDO输出模式下,可以看到两个通道的数据是交织在一起的
另外就是电压的换算关系公式

输入电压和输出结果换算关系式
我们可以利用int32_t数据类型帮助我们完成输入信号为负数时的补码运算。
最后AD4630还提供了一个测试模式,在该模式下每次触发采样后输出的结果是确定的,可以用来辅助我们完成对数据处理结果的正确性验证,非常有帮助。
最后附上实际项目中使用的驱动程序例程供大家参考
链接:https://pan.baidu.com/s/1_nKEDSOUhdIoQAHFjfM9Nw 提取码:vht0
- 意法半导体中国本地造STM32微控制器启动规模量产
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 基于机智云与STM32的智能拐杖安全监测系统在养老物联网中的应用
- 内置全栈安全,一站式满足CRA法案与IEC 62443标准——米尔STM32MP257核心板
- 如何用 STM32 FLASH 实现等效 100 万次擦写的 EEPROM 功能?
- 实战解析:通过一个小项目掌握STM32所有外设
- STM32学了两年半,却还是不会做项目
- 意法半导体推出最新STM32MP21微处理器,兼具高性价比、低功耗、高灵活性
- 基于STM32的矿井作业环境监测系统设计与实现
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 蓝牙信道探测技术原理与开发套件实践
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策




