ADP3450/ADP3250在Linux模式下的自动测试

概述

本指南演示在Linux模式下使用模拟发现专业版自动测试PmodAD5, SPI-enabledADC.自动化是通过使用WaveForms SDK来测量进入Pmod和SPI控制读取数据的模拟信号来完成的,比较两种结果。

请注意,虽然这里提供的设置和脚本是用Pmod AD5创建的,但它们可以用于您自己的项目测试。


库存

  • 模拟发现职业
    • 1 12×2 MTE线缆
    • 1个bnc端接示波器探头
  • 一个FAT/FAT32 USB驱动器
  • Pmod AD5模块采用AD7193模数转换器芯片
  • k热电偶
  • 电路试验板
  • 面包板跳线和male-to-male引脚头易于访问
  • ZIP下载在模拟发现专业版上运行一个测试脚本
  • 装有下列软件的电脑:
    • Digilent波形,这里仅用于将您的模拟发现专业版进入Linux模式
    • 终端仿真器,如PuTTY或TeraTerm

注意:对于不熟悉串口终端的用户,建议使用terterm。


演示设置

硬件设置

将示波器探头的bnc连接器插入示波器Channel 1,将MTE电缆插入数字MTE连接器。将DIO通道、地面和VIO从模拟发现专业版连接到PmodAD5如右图所示。下面提供了DIO通道连接以供参考。

  • di0连接到Pmod AD5上的引脚1
  • DIO1连接到Pmod AD5上的引脚4
  • DIO2连接到Pmod AD5上的引脚2
  • DIO3连接到Pmod AD5上的引脚3

将黄色热电偶引线连接到接头J2的引脚1上PmodAD5红色热电偶连接头J2上的引脚2。然后将BNC探针连接到黄色热电偶导线上,探针接地夹连接到红色热电偶导线上。

演示设置应该类似于右边的照片。为了使热电偶的接点容易暴露在示波器上,采用了一个电路板。

注意:接线图显示了两者之间的联系PmodAD5、热电偶和ADP3450。以ADP3250为例,连接方式相同。

软件设置

通过USB连接Analog Discovery Pro到主机,打开WaveForms,并进入Linux模式。关于如何引导到Linux模式的详细说明可以在

找到模拟发现Pro连接的串行端口,并注意它。

打开终端仿真器(如PuTTY或TeraTerm),使用115200波特率、8数据、1停止、无校验位连接到上述串口。

用户名:digilent,密码:digilent。

中链接的项目ZIP下载库存部分,并将内容解压到USB驱动器。

将USB插头插入模拟发现专业版的背面。在终端中输入

sudo fdisk - l

查找USB设备路径。它应该是这样的/dev/sd <驱动器> <分区号>.本指南将在其文本和图像中使用/dev/sda1,并且必须小心匹配您的USB驱动器的驱动器号和分区号。

通过输入命令使驱动器内容可访问

Sudo mount /dev/sda1 /mnt

然后

cd / mnt

导航到USB的目录。


下面的下拉列表详细描述了测试脚本的内容。浏览该脚本,找到适合您自己项目的脚本所需的信息。

脚本的概述

在脚本的开始,必要的模块被导入,波形动态库被加载。

DWF Python示例版本:21-02-11 require: Python 2.7, 3 """ctypes进口c_intc_bytec_ubytecdllbyrefc_doublecreate_string_bufferc_bool进口数学进口sys进口时间dwfconstants进口filterDecimateAnalogOutNodeCarrierfuncDCDwfStateDone进口随机如果sys平台startswith“赢”: dwfcdll。LoadLibrary“dwf.dll”elifsys平台startswith“达尔文”: dwfcdll。LoadLibrary“/图书馆/框架/ dwf.framework / dwf”其他的: dwfcdll。LoadLibrary“libdwf.so”

在使用测试测量设备前,需要先将测试测量设备与主机连接。如果设备正在被其他软件使用,或者由于其他原因不可用,这将被告知用户,脚本执行将停止。

hdwfc_int打印“先打开设备”dwf。FDwfDeviceConfigOpenc_int-1c_int0byrefhdwf如果hdwf。价值==0打印"打开设备失败"szerrcreate_string_buffer512dwf。FDwfGetLastErrorMsgszerr打印strszerr。价值辞职

数字IO、模拟输入和电压电源依次初始化。

打印“配置工具”打印“配置SPI……”#设置SPI频率为6000000hzdwf。FDwfDigitalSpiFrequencySethdwfc_double6 e6#设置DIO通道1为SPI时钟dwf。FDwfDigitalSpiClockSethdwfc_int1#设置DIO通道2为SPI MOSI引脚dwf。FDwfDigitalSpiDataSethdwfc_int0c_int2#设置DIO通道3为SPI MISO引脚dwf。FDwfDigitalSpiDataSethdwfc_int1c_int3.#设置SPI模式为3,其中CPOL = 1, CPHA = 1dwf。FDwfDigitalSpiModeSethdwfc_int3.#设置SPI数据的位序为MSBdwf。FDwfDigitalSpiOrderSethdwfc_int1#设置DIO通道0的值,作为SPI芯片的连接,到高dwf。FDwfDigitalSpiSelecthdwfc_int0c_int1时间睡眠1打印“配置模拟……”#设置采样频率为20mhzdwf。FDwfAnalogInFrequencySethdwfc_double20000000.0#设置缓冲区大小为4000个样本dwf。FDwfAnalogInBufferSizeSethdwfc_int4000#开启模拟通道1dwf。FDwfAnalogInChannelEnableSethdwfc_int-1c_bool真正的#设置通道1的输入范围为5伏dwf。FDwfAnalogInChannelRangeSethdwfc_int-1c_double5#在通道1的模拟上启用抽取dwf。FDwfAnalogInChannelFilterSethdwfc_int-1filterDecimate时间睡眠2#等待偏移量稳定。打印“配置电源……”#使能正电源dwf。FDwfAnalogIOChannelNodeSethdwfc_int0c_int0c_double真正的#设置电压为3.3Vdwf。FDwfAnalogIOChannelNodeSethdwfc_int0c_int1c_double3.3#主启用dwf。FDwfAnalogIOEnableSethdwfc_int真正的时间睡眠5

ADC进入单一转换模式并配置为增益为100,然后进行校准。

打印“配置ADC”打印“写配置……”#写入配置寄存器,设置增益为8,活动通道为0bc_ubyte *40 x100 x000 x010 * 13#设置DIO通道0,将SPI CS调至低(0)dwf。FDwfDigitalSpiSelecthdwfc_int0c_int0#在DQ行0上执行SPI写操作,每个字8位,发送上述缓冲区(b)dwf。FDwfDigitalSpiWritehdwfc_int0c_int8bc_intlenb#设置DIO通道0,将SPI CS调高(1)dwf。FDwfDigitalSpiSelecthdwfc_int0c_int1时间睡眠0。#写入模式寄存器,设置平均值为100bc_byte *4((0 x000 x64#设置DIO通道0,将SPI CS调至低(0)dwf。FDwfDigitalSpiSelecthdwfc_int0c_int0#在DQ行0上执行SPI写操作,每个字8位,发送上述缓冲区(b)dwf。FDwfDigitalSpiWritehdwfc_int0c_int8bc_intlenb#设置DIO通道0,将SPI CS调高(1)dwf。FDwfDigitalSpiSelecthdwfc_int0c_int1时间睡眠0。

测试通过模拟采集开始,以测量热电偶结处的电压。

随着收购的进行ADC指示执行转换。

试一试真正的: dwf。FDwfAnalogInConfigurehdwfc_int1c_int1#读取数据并计算温度bc_ubyte *40 x580 x000 x000 x00rc_ubyte *4#设置DIO通道0,将SPI CS调至低(0)dwf。FDwfDigitalSpiSelecthdwfc_int0c_int0#执行SPI读写操作,使用8位字的MOSI/MISO,使用b发送,r接收dwf。FDwfDigitalSpiWriteReadhdwfc_int1c_int8bc_intlenbrc_intlenb#设置DIO通道0,将SPI CS调高(1)dwf。FDwfDigitalSpiSelecthdwfc_int0c_int1#将字节数组转换为数值ch0Data0范围14: ch0Datach0Data<<8| r

如果还没有完成,则允许完成采集,并检索数据。

#完成收购真正的: dwf。FDwfAnalogInStatushdwfc_int1byrefsts如果sts。价值==DwfStateDone。价值打破时间睡眠0.1打印“获得”样品c_double *4000#将获取的样本读入样本dwf。FDwfAnalogInStatusDatahdwf0样品4000

给出的数据PmodAD5转换成合适的电压值,计算出采集到的样品的平均值,然后在标准输出上显示结果。

mVref2.5PGAGain8#将数据转换为数值电压值thermoVoltagech0Data /8388608-1.0mVref / PGAGain#求样本的平均值avg总和样品/len样品

测试持续运行,直到按下Ctrl+C并关闭设备。

除了KeyboardInterrupt通过打印\ n清理……”dwf。FDwfDeviceCloseAll

通过输入

sudo python3。/ pmodad5-test.py

在终端。此脚本配置PmodAD5通过SPI和迭代的电压列表,用于设置直流信号从Wavegen。然后,它通过SPI发出读取命令,记录结果,并继续到下一个电压,直到没有剩下的电压。完成后将结果输出到终端。


其他资源

有关模拟发现专业版的更多指南和示例项目,请查看其Digilent论坛