加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 简介
    • 电路设计
    • 软件设计
    • 特性测试
    • 参考文献:
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

基于AD5272多组变阻器电路设计

2020/04/26
148
阅读需 8 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

简介

本文记录了基于 D5272 三组电子变阻器电路模块的设计。该模块可以用于基于面包板搭建的各种实验电路的测试功能。相比于“机械变阻器[1]”,该模块更加小巧,通道多,设计比较方便。可以直接精确设置各通道的电阻值。

确定是,电子变阻器的频率响应比起机械变阻器要小。这部分详细参见“AD5272 数字变阻器[2]”中的内容。

电路设计

工程文件:

❝D:zhuoqingAltiumDesignerTools2020DigitRheostatDigitRheostat.PcbDoc❞

 

1. 原理图设计

▲ 电路原理图

 

2. PCB 设计

设计电路板,使其适合快速制版。获得快速制版后的电路板,经过焊接形成测试电路板圆形。

PCB 设计

下面是安装有蓝牙通信模块后的测试电路:

▲ 安装有蓝牙通信模块后的电路板及其外部接口

 

三个电子变阻器的量程分别为:

通道号 变阻器的量程
1 20kΩ
2 20kΩ
3 50kΩ

软件设计

❝D:zhuoqingwindowC51STCToolsDigitRheostatDigitRheostat.uvproj❞

 

//***************************************
//                    PROCESS THE DEBUG BUFFER
//------------------------------------------------------------------------------
void SerialDebugProcessBuffer(void) {
    unsigned int nNumber;
    unsigned int nAddress;
            
    SerialDebugBuffer2Argument();
    if(g_ucSDANumber * 0) return;

    if(strcmp("hello",                (char *)STD_ARG[0]) * 0)
        printf("%s is ready !rn", VERSION_STRING);
    
    else IFARG0("ad5272set") {
        sscanf(SDA(1), "%d", &nNumber);
        sscanf(SDA(2), "%d", &nAddress);
        AD5272SetAddress(nAddress);
        AD5272WriteRDAC(nNumber);
    }
    else printf("Error command : %s !rn", STD_ARG[0]);
}

控制软件说明:

发送命令的格式为:

❝ad5272 number address❞

 

number:0~1023 :设置电阻从最小增加到最大量程。address: 0,1,2 :分别对应着三个变阻器。从左到右分别是 CH0,CH2,CH1

特性测试

1. 电子变阻器应用电压范围

使用一个电阻与 AD5272 串联,接入测试交流信号,测量分压在 AD5272 上的输出电压波形。具体实验电路如下图所示:

▲ 实验电路

 

通过分压输出的波形可以看到 AD5272 的端口电压大体上不能够小于 0V,不能够大于其工作电压(5V)。如果超出了这个范围,信号就被钳位在 0~5V 之间。

因此在实际应用中,一方面需要避免电子变阻器工作电压超出这个范围,另外在电子变阻器上需要加上保护串联电阻,以免超出电压范围之后出现过大的输入电流或者输出电压。

分压电阻实验波形

 

下图显示了 AD5272 电阻变化过程中,其上的分压信号开始饱和过程。

▲ 逐步增加电子变阻器的值,输出波形变化情况

 

绘制上述动图的 PYTHON 程序为:

#!/usr/local/bin/python
# -*- coding: gbk -*-
#******************************
# TEST2.PY                     -- by Dr. ZhuoQing 2020-04-25
#
# Note:
#******************************

from headm import *
from tsmodule.tshardware    import *
from tsmodule.tsdraw        import *

gifid = 5

tsgifff()

for i in range(17):
    data = int(1024 / 16 * i / 10)
    if data >= 1024: data = 1023

    zbcmd(b'ad5272set %d 1'%data)

    time.sleep(.2)

    tsgifaa()


dop2gif(gifid = gifid)
printf('a')

#------------------------------------------------------------
#        END OF FILE : TEST2.PY
#******************************

参考文献:

AD5272 数字变阻器[3]

机械变阻器[4]

Reference

[1]机械变阻器: https://zhuoqing.blog.csdn.net/article/details/104089780

[2]AD5272 数字变阻器: https://zhuoqing.blog.csdn.net/article/details/105605305

相关推荐

电子产业图谱

公众号TsinghuaJoking主笔。清华大学自动化系教师,研究兴趣范围包括自动控制、智能信息处理、嵌入式电子系统等。全国大学生智能汽车竞赛秘书处主任,技术组组长,网称“卓大大”。