原文链接:
摘要
数据转换板通过I2C接口进行信号采集和输出,支持最多16通道输入和2通道输出。具备860Hz采样率和50KHz输出频率,采用16位ADC和12位DAC芯片,适用于精确信号采集;小尺寸设计,支持堆叠级联。
往期推荐:
全网最适合入门的面向对象编程教程:00 面向对象设计方法导论
全网最适合入门的面向对象编程教程:01 面向对象编程的基本概念
全网最适合入门的面向对象编程教程:02 类和对象的 Python 实现-使用 Python 创建类
全网最适合入门的面向对象编程教程:03 类和对象的 Python 实现-为自定义类添加属性
全网最适合入门的面向对象编程教程:04 类和对象的Python实现-为自定义类添加方法
全网最适合入门的面向对象编程教程:05 类和对象的Python实现-PyCharm代码标签
全网最适合入门的面向对象编程教程:06 类和对象的Python实现-自定义类的数据封装
全网最适合入门的面向对象编程教程:07 类和对象的Python实现-类型注解
全网最适合入门的面向对象编程教程:08 类和对象的Python实现-@property装饰器
全网最适合入门的面向对象编程教程:09 类和对象的Python实现-类之间的关系
全网最适合入门的面向对象编程教程:10 类和对象的Python实现-类的继承和里氏替换原则
全网最适合入门的面向对象编程教程:11 类和对象的Python实现-子类调用父类方法
全网最适合入门的面向对象编程教程:12 类和对象的Python实现-Python使用logging模块输出程序运行日志
全网最适合入门的面向对象编程教程:13 类和对象的Python实现-可视化阅读代码神器Sourcetrail的安装使用
全网最适合入门的面向对象编程教程:全网最适合入门的面向对象编程教程:14 类和对象的Python实现-类的静态方法和类方法
全网最适合入门的面向对象编程教程:15 类和对象的 Python 实现-__slots__魔法方法
全网最适合入门的面向对象编程教程:16 类和对象的Python实现-多态、方法重写与开闭原则
全网最适合入门的面向对象编程教程:17 类和对象的Python实现-鸭子类型与"file-like object"
全网最适合入门的面向对象编程教程:18 类和对象的Python实现-多重继承与PyQtGraph串口数据绘制曲线图
全网最适合入门的面向对象编程教程:19 类和对象的 Python 实现-使用 PyCharm 自动生成文件注释和函数注释
全网最适合入门的面向对象编程教程:20 类和对象的Python实现-组合关系的实现与CSV文件保存
全网最适合入门的面向对象编程教程:21 类和对象的Python实现-多文件的组织:模块module和包package
全网最适合入门的面向对象编程教程:22 类和对象的Python实现-异常和语法错误
全网最适合入门的面向对象编程教程:23 类和对象的Python实现-抛出异常
全网最适合入门的面向对象编程教程:24 类和对象的Python实现-异常的捕获与处理
全网最适合入门的面向对象编程教程:25 类和对象的Python实现-Python判断输入数据类型
全网最适合入门的面向对象编程教程:26 类和对象的Python实现-上下文管理器和with语句
全网最适合入门的面向对象编程教程:27 类和对象的Python实现-Python中异常层级与自定义异常类的实现
全网最适合入门的面向对象编程教程:28 类和对象的Python实现-Python编程原则、哲学和规范大汇总
全网最适合入门的面向对象编程教程:29 类和对象的Python实现-断言与防御性编程和help函数的使用
全网最适合入门的面向对象编程教程:30 Python的内置数据类型-object根类
全网最适合入门的面向对象编程教程:31 Python的内置数据类型-对象Object和类型Type
全网最适合入门的面向对象编程教程:32 Python的内置数据类型-类Class和实例Instance
全网最适合入门的面向对象编程教程:33 Python的内置数据类型-对象Object和类型Type的关系
全网最适合入门的面向对象编程教程:34 Python的内置数据类型-Python常用复合数据类型:元组和命名元组
全网最适合入门的面向对象编程教程:35 Python的内置数据类型-文档字符串和__doc__属性
全网最适合入门的面向对象编程教程:36 Python的内置数据类型-字典
全网最适合入门的面向对象编程教程:37 Python常用复合数据类型-列表和列表推导式
全网最适合入门的面向对象编程教程:38 Python常用复合数据类型-使用列表实现堆栈、队列和双端队列
全网最适合入门的面向对象编程教程:39 Python常用复合数据类型-集合
全网最适合入门的面向对象编程教程:40 Python常用复合数据类型-枚举和enum模块的使用
全网最适合入门的面向对象编程教程:41 Python常用复合数据类型-队列(FIFO、LIFO、优先级队列、双端队列和环形队列)
全网最适合入门的面向对象编程教程:42 Python常用复合数据类型-collections容器数据类型
全网最适合入门的面向对象编程教程:43 Python常用复合数据类型-扩展内置数据类型
全网最适合入门的面向对象编程教程:44 Python内置函数与魔法方法-重写内置类型的魔法方法
全网最适合入门的面向对象编程教程:45 Python实现常见数据结构-链表、树、哈希表、图和堆
全网最适合入门的面向对象编程教程:46 Python函数方法与接口-函数与事件驱动框架
全网最适合入门的面向对象编程教程:47 Python函数方法与接口-回调函数Callback
全网最适合入门的面向对象编程教程:48 Python函数方法与接口-位置参数、默认参数、可变参数和关键字参数
全网最适合入门的面向对象编程教程:49 Python函数方法与接口-函数与方法的区别和lamda匿名函数
全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
全网最适合入门的面向对象编程教程:51 Python函数方法与接口-使用Zope实现接口
全网最适合入门的面向对象编程教程:52 Python函数方法与接口-Protocol协议与接口
全网最适合入门的面向对象编程教程:53 Python字符串与序列化-字符串与字符编码
全网最适合入门的面向对象编程教程:54 Python字符串与序列化-字符串格式化与format方法
全网最适合入门的面向对象编程教程:55 Python字符串与序列化-字节序列类型和可变字节字符串
全网最适合入门的面向对象编程教程:56 Python字符串与序列化-正则表达式和re模块应用
全网最适合入门的面向对象编程教程:57 Python字符串与序列化-序列化与反序列化
全网最适合入门的面向对象编程教程:58 Python字符串与序列化-序列化Web对象的定义与实现
全网最适合入门的面向对象编程教程:59 Python并行与并发-并行与并发和线程与进程
更多精彩内容可看:
给你的 Python 加加速:一文速通 Python 并行计算
一个MicroPython的开源项目集锦:awesome-micropython,包含各个方面的Micropython工具库
Avnet ZUBoard 1CG开发板---深度学习新选择
数据转换扩展板
1.总体介绍
数据转换板是一种用于通过串行通信I2C接口来采集信号波形或输出信号的扩展模块,具有以下主要特点:
- 小尺寸设计:可以与XIAO系列主控板直接连接,也可以作为独立模块使用;使用IPEX1接口作为信号输入和输出,尺寸小。
- I2C接口:提供I2C总线接口进行堆叠式级联,最多支持4个扩展板连接,支持高达16通道的信号输入和2通道的信号输出,板载16位高精度ADC和12位DAC芯片,可应用于信号精确采集场景。
- 信号输入与输出:输入信号采样率高达860Hz,输出信号最高频率为50KHz,单个扩展板支持4通道信号输入和1通道信号输出。
- 信号输入滤波:信号输入部分使用了小滤波电容,用于滤除高频噪声,确保输入信号更加平滑。
- 信号输出缓冲隔离:在信号输出端放置了电压跟随器,提高输出信号的驱动能力,同时隔离电路前后级。
- 稳定供电 :在运放部分加入钽电容进行滤波,保证供电稳定。


2.接口说明
2.1 通信接口

使用时,通过PH2.0连接线连接主控模块和扩展板,如下图所示:
也可以使用主控板直接插入到扩展板的排母接口上:
多个扩展板也可以通过更改外侧插孔中排针排母方向实现堆叠连接,此种情况主要用于需要更多输入通道进行信号采样和波形输出,最多可以使用两个扩展板进行堆叠连接,堆叠放置最多支持8通道信号输入和2通道信号输出;若使用I2C扩展板,可以使用四个扩展板,支持16通道信号输入和2通道信号输出:
2.2 信号接口
在信号输入和输出部分,我们可以使用不同类型的IPEX连接线与示波器、信号发生器或者其他信号处理模块连接:
3.硬件细节
3.1 稳定供电
在运算放大器部分,我们使用钽电容滤波,帮助平滑电源中的噪声,并稳定运放的工作电压;在芯片供电部分,我们使用了多种不同大小的电容,对高低频噪声进行有效滤除:
3.2 信号输入
信号输入部分使用了小滤波电容,用于滤除高频噪声,确保输入信号更加平滑,同时使用IPEX1接口作为信号输入和输出,尺寸小,我们也尝试了多种封装和母座,保证接口拔插不易掉落:
3.3 信号输出
在信号输出部分,我们放置了电压跟随器,提高输出信号的驱动能力,同时隔离电路前后级:
3.4 地址设置
通过焊接背面短路点可以设置芯片地址位,通过对不同芯片设置不同地址位能够完成多个扩展板的级联和芯片区分,并且在这里不同短路点对应地址位在丝印中标出:
4.提供代码和使用须知
在使用烧录完程序后的主控板通过扩展板输入或输出信号前,务必确保示波器、信号发生器或其他信号调理模块和信号输入或输出端子接线正确,供电无误:
示例代码包括以下版本:
- MicroPython版本 :数据转换板MicroPython示例程序
- Arduino版本 :数据转换板Arduino示例程序