使用Verilog实现AD7606C芯片软件模式调试
使用Verilog实现AD7606C芯片软件模式调试
AD7606C是ADI公司推出的一款高性能模数转换器(ADC),在工业领域应用广泛。本文将详细介绍如何使用Verilog实现AD7606C芯片的软件模式调试,包括硬件模式与软件模式的切换、寄存器配置方法以及具体的调试步骤。
芯片功能概述
AD7606是ADI公司针对电源设计、工业检测、闭环控制等工业应用推出的一款16位、八通道、同步并行采样率最高为每通道200KSPS的ADC,输入电压范围±5V,最高可达±10V,满足工业级应用的温度范围。AD7606C则是基于AD7606升级而来,不仅保留了AD7606的所有功能,还在这个基础上进行升级,16位、八通道、同步并行采样率升级为每通道1MSPS,并且输入电压范围最高支持±12.5V。
操作步骤说明
ACM7606C模块支持软件模式和硬件模式。我们可以在硬件固定的情况下,进入软件模式进行采样范围、过采样比、通道相位偏移等参数修改。
- 模式切换信号:
ad7606_os_o
信号是一个3位信号,当ad7606_os_o==3'b000
时,进入硬件模式;当ad7606_os_o==3'b111
时,进入软件模式,其他数值就是硬件模式下修改过采样比。
硬件连接:根据芯片引脚示意图,我们在软件模式下,需要一个写使能引脚,需要将10号引脚单独出来,对于ACM7606C模块来说,就是将H5跳线帽取下,这样就可以将convstA和convstB分开,也就是将convst和WR信号分开使用。
寄存器配置:根据芯片手册,我们可以控制这40个寄存器,比如0x08寄存器就是修改过采样比的。
指令格式:芯片寄存器组成,总共16位,高八位是地址,低八位是数据。在写操作时,最高位代表读写指令,最高位为1,就是读取指令,最高位为0就是写入指令。当是读取指令时,只关心地址,不关心低八位数据。写入指令时,全部关心。
软件模式指令:我们通过以太网发送的指令组成,这里只介绍新增的软件模式指令寄存器组成格式。由于芯片只需要16位数据,所以这里将高16位作为修改单个寄存器的指令。然后低16位作为使用寄存器表的指令信号。
这里需要特别声明,当程序下载后,默认是进入硬件模式,当我们通过上位机,比如通过网络调试助手发送带有04寄存器的指令,就是进入软件模式进行修改寄存器。修改完成后,需要再次发送一遍全零的04寄存器的指令,这样才能够完全退出软件模式。
就比如这里发送55a50400000001f0
指令,就是启动初始化寄存器表,然后还需要再发送一次55a50400000000f0
指令,用来退出软件模式。发送其它带有04寄存器的指令,也是同样的。
调试展示
为了观察到硬件默认寄存器值和初始化寄存器表的区别,我们在寄存器表中将0x08寄存器设置为01,也就是启用过采样,在正常使用的时候,需要将这里修改为00。
- 下载程序后,直接进行采集,就是硬件模式的采集。
- 现在我们通过网络调试助手发送带有04寄存器的指令,启动初始化寄存器表。然后需要再发送一次全零的指令,用来退出软件模式。
- 通过网络调试助手发送设置CH1-CH2通道采样范围:±2.5V指令,再发送一次全零指令。
- 通过网络调试助手发送启动初始化寄存器表指令。然后再发送一次全零的指令。
AD7606C在AD7606的基础上进行了性能升级,适用于更高要求的工业应用。ACM7606C模块支持硬件和软件两种模式,通过软件模式可以灵活配置采样范围、过采样比等参数。调试过程中,需通过特定的指令进入和退出软件模式,并可通过以太网或UART接口发送指令进行寄存器配置。