去年我帮一条仪表产线做老化校准工装,客户原本的流程是每台设备装一个3296多圈电位器,工人拿螺丝刀调到目标电压,再滴一滴硅胶固定。这套流程放到量产线上问题一堆:电位器转轴有回差,手一抖就是几十欧姆;硅胶固化过程中的应力还会把阻值再带偏一截。后来我把方案改成用AD5293BRUZ-20-RL7数字电位器配合PIC18F46K22来控制可编程电阻,上电后由单片机直接写挡位,调校时间从五分钟压缩到三十秒,一致性比手工调试高了一个量级。这篇文章就把这套方案的硬件接线、SPI驱动、校准流程和现场踩过的坑完整梳理一遍。适合正在做可编程电阻、传感器模拟、仪表出厂校准,或者需要在产品里“在线调电阻”的工程师参考。
1. 为什么选AD5293而不是普通数字电位器
1.1 10位1024挡,对校准意味着什么
很多入门项目会拿MCP4131这类8位数字电位器来顶,256挡听着不少,真投入校准时才发现挡位不够细。AD5293BRUZ-20-RL7是AD5293系列里的20kΩ规格、TSSOP-16封装、卷带包装型号,内部是10位RDAC寄存器,共1024个挡位,端到端电阻公差±1%。这组参数放在校准场景里的意义很直接:挡位越密,调节分辨率越高;公差越小,批量生产的初始误差越好处理。
以20kΩ规格为例,按手册的RDAC公式,游标电阻大约60Ω,挡位步进大约是20000/1023≈19.55Ω。做个对照:5V供电的仪表如果用这颗料做分压微调,每挡电压步进约4.88mV;如果用2.5V基准做输出校准,每挡约2.44mV。这个量级对大多数模拟电路微调是够用的。如果你的目标是每挡1Ω以内的分辨率,就该考虑换更小的端到端阻值规格,或者加大电阻比例转换网络,不能指望在20kΩ这颗料上硬挤出更细的步进。
1.2 ±1%公差在校准里的真实分量
这里要分清绝对电阻精度和比例精度的区别。AD5293的±1%指的是端到端电阻R_AB的绝对值误差,比如20kΩ规格,实际可能在19.8kΩ到20.2kΩ之间。如果你把数字电位器当分压器用,上下两个半段是同一根电阻串上切出来的,比例关系非常准,比例温漂能到5ppm/°C左右,这时±1%的绝对误差基本被抵消。这正好是反馈分压、基准电压微调这类应用的理想用法。
但如果像我这样把电位器当成一个“可编程电阻”来模拟传感器阻值,绝对误差就直接反映到输出上:20kΩ满挡时误差可能达到±200Ω,折合约±10个挡位。这就是为什么做电阻模拟时,不能只靠查手册标称值,必须每台设备在实际电路里做一次校准,把“目标阻值→实际代码”的对应关系存下来。后面第4节我会具体讲这个查表补偿流程。
1.3 20-TP存储:为产线校准设计的20次写入预算
AD5293和AD5292一样,内部带了非易失的20-TP(20-time programmable)存储单元,共两组:一组存RDAC挡位值,一组存控制寄存器。运行过程中RDAC寄存器随便写、无限次写,但20-TP单元的写入次数在整个生命周期内限制在20次以内,所以本质上要把它当作写入预算很低的OTP来规划。
这套机制就是给产线校准准备的:整机装配完成后,工装通过SPI把最终校准值反复试写RDAC,确认无误后再执行一次固化,把挡位值永久存进20-TP。以后设备上电,不依赖单片机也能恢复到出厂校准值。设计流程时一定要把“20次”当成正式约束,开发阶段不要拿同一颗料反复烧写20-TP,否则到了量产阶段这个单元就废了。我们项目里的做法是:开发阶段只用RDAC寄存器联调,20-TP只留给产线最后一道“固化安全默认值”的工序。
1.4 为什么不用PWM滤波或者DAC
有人会问,单片机自带的PWM加一级RC滤波,再用运放缓冲,不也能输出可调电压吗?能,但那是“电压源”,不是“电阻”。做传感器模拟或仪表校验时,被校准设备往往是一个测电阻的输入端,你需要的是一只实实在在连接在两个测试端子之间的物理电阻,DAC和电压源都替代不了。当然也可以用Howland电流泵这类有源电路去模拟电阻,但电路复杂度、噪声和稳定性都比一颗数字电位器麻烦得多。数字电位器是少数几个能直接提供二端物理电阻的纯模拟方案,这也是它在校准工装里不可替代的原因。
2. PIC18F46K22这边的硬件连接与电源处理
2.1 两颗料的资源匹配
PIC18F46K22是一颗很成熟的8位工业级MCU,64KB Flash、约3.8KB RAM、1KB EEPROM,最高主频64MHz,带两个MSSP模块,每个都能独立做SPI或I2C。这意味着可以用MSSP1驱动AD5293,再用MSSP2去接外部存储、显示或者另一个SPI从机,互不干扰。它工作电压1.8V到5.5V,工业温度范围,价格和供货都稳,是这类工装控制板的稳妥选择。
具体引脚分配,我建议用MSSP1:
| 功能 | 引脚 | 方向 |
|---|---|---|
| SCK1 | RC3 | 输出 |
| SDO1(主机出) | RC5 | 输出 |
| SDI1(主机入) | RC4 | 输入 |
| SYNC(片选) | RA4(普通IO) | 输出 |
如果PCB布局要求把数字电位器放到板子另一侧,也可以用MSSP2,对应RB1/RB2/RB3,只是记得把代码里的寄存器前缀从SSP1改成SSP2。
2.2 A/B/W三个端子怎么接
AD5293对外只有A、B、W三个电阻端子,W是游标。做可编程电阻时,通常接A和W当两个测试端,B悬空;或者反过来用B和W。具体用哪一对,主要看你想让输出阻值随代码增加还是减小,以及PCB走线方便。注意一点:游标电阻约60Ω,所以代码为零挡时,两个端子之间不是0Ω而是大约60Ω。如果你的校准对象在低阻段要求很严格,这60Ω必须进补偿表,不能忽略。
端子电压范围是个硬约束。AD5293的A/B/W端内部有ESD保护二极管,端子电压不能超过VDD+0.3V或低于VSS-0.3V。它整个芯片只支持单5V或者±2.5V这样的低压供电,不能像机械多圈电位器那样直接接到±12V、24V电路里。如果你的目标电路里电阻两端有高压,必须先把电压折算到低压范围再接这颗料,比如用固定电阻分压把高压信号按比例降下来,再把数字电位器接在低压侧做微调。
2.3 电源、去耦与逻辑电平
最简单的做法是PIC18F46K22和AD5293都跑5V单电源,IO直接连,不需要电平转换。VDD引脚旁边放0.1µF陶瓷电容,尽量贴近引脚,再加一个1µF低ESR电容做中低频退耦。如果用了双电源±2.5V,VDD和VSS各放一组退耦,GND要非常干净。
数字接口的电平问题容易被忽略。AD5293的逻辑输入阈值以VDD为参考,具体VIH/VIL数值要翻手册。如果MCU是3.3V而AD5293用5V供电,不能想当然直连,要查手册确认VIH是否兼容3.3V输出;最省事的方案是两边都上5V,一劳永逸。反过来,ADC采样、运放这些模拟部分想用3.3V,那就单独给模拟域供电,数字走线别穿过模拟地平面。
2.4 布局上的两个隐蔽问题
第一,SPI时钟线别和A/B/W走线平行。数字电位器在高阻状态下对耦合电荷很敏感,SCLK上几纳秒的边沿都有可能通过寄生电容耦合到电阻串上,在校准数据里制造几个字的跳变。我习惯把数字信号走板子一侧,A/B/W走另一侧,中间用模拟地隔离。
第二,退耦电容的地要回到模拟地,不要和单片机IO翻转的回路共用地线。数字电位器本身不耗多少电流,但它的参考地同时也是电阻串的参考点,地线上一点点毛刺都会折算成电阻读数误差。这块板子如果混合数字和模拟,铺地时至少要保证AD5293下方的地是干净的,别让高速数字信号的返回电流从底下穿过。
3. SPI驱动:16位命令帧和MSSP1配置
3.1 先看懂AD5293的16位帧
AD5293的SPI写操作是16位一帧,MSB在前。一帧的结构是:高3位命令字C2~C0,中间3位寄存器地址,低10位数据。SYNC拉低开始传数据,SCLK上升沿写入SDI,16位移完后把SYNC拉高,这一帧才真正生效。SYNC如果中途变高,当前帧会直接丢弃,这个特性在写命令时要注意。
常用命令编码(以我手里Rev.B手册为例,不同版本可能有差异,用之前务必对一遍):
| 命令 | C2 C1 C0 | 说明 |
|---|---|---|
| NOP | 000 | 空操作,用于回读时的填充帧 |
| 写RDAC | 001 | 把低10位数据写入RDAC寄存器 |
| 读RDAC | 010 | 把RDAC当前值从SDO回读 |
| RDAC固化到20-TP | 011 | 消耗一次20-TP写入预算 |
| 写控制寄存器 | 100 | 写控制寄存器相关内容 |
| 读控制寄存器 | 101 | 回读控制寄存器 |
| 固化控制寄存器 | 110 | 控制寄存器内容写入20-TP |
| 保留/复位 | 111 | 按手册说明使用 |
其实日常写驱动时最常用的就三条:写RDAC、回读RDAC、固化到20-TP。控制寄存器那条只有在需要修改20-TP写使能等特殊功能时才动。有个经验:第一次点板子前,先把这几个命令编码抄到便利贴上贴在示波器旁边,省得调试时来回翻手册。
3.2 MSSP1主模式配置代码
我用XC8写驱动,MSSP1配置成SPI主模式、时钟FOSC/16、SPI Mode 0。PIC18F46K22外部晶振如果跑16MHz,FOSC/16就是1MHz的SCLK;如果用64MHz主频,FOSC/16也有4MHz,对这颗料完全足够。SPI波特率不是越快越好,长线、干扰环境下降速反而稳定,这一点后面排错时会讲。
#include <xc.h> #define AD5293_SYNC_TRIS TRISA4 #define AD5293_SYNC_LAT LATA4 #define AD5293_SYNC() (AD5293_SYNC_LAT = 0) #define AD5293_DESYNC() (AD5293_SYNC_LAT = 1) void SPI1_Init(void) { // SCK1:RC3 输出, SDO1:RC5 输出, SDI1:RC4 输入 TRISC3 = 0; TRISC5 = 0; TRISC4 = 1; AD5293_SYNC_TRIS = 0; AD5293_DESYNC(); // SPI主模式,FOSC/16,CKP=0,SSPEN=1 SSP1CON1 = 0x21; // SMP=0, CKE=0 => SPI Mode 0 SSP1STAT = 0x00; } uint16_t AD5293_Transfer(uint16_t frame) { uint16_t rx = 0; AD5293_SYNC(); __delay_us(1); // 高8位 SSP1BUF = (uint8_t)(frame >> 8); while (!PIR1bits.SSP1IF); PIR1bits.SSP1IF = 0; rx = (uint16_t)SSP1BUF << 8; // 低8位 SSP1BUF = (uint8_t)(frame & 0xFF); while (!PIR1bits.SSP1IF); PIR1bits.SSP1IF = 0; rx |= (uint16_t)SSP1BUF; __delay_us(1); AD5293_DESYNC(); return rx; }注意,__delay_us依赖_XTAL_FREQ宏,按实际主频定义好。另外如果RC3/RC4/RC5这些引脚在数据手册里带模拟复用功能,要先把对应ANSEL位清掉,否则SPI数据根本采不进来。
3.3 写RDAC、回读和固化函数
把命令编码放到宏里,比每次手拼位段清楚得多:
#define AD5293_CMD_NOP 0x0000 // 000 #define AD5293_CMD_WR_RDAC 0x2000 // 001 #define AD5293_CMD_RD_RDAC 0x4000 // 010 #define AD5293_CMD_STORE_RDAC 0x6000 // 011 #define AD5293_CMD_WR_CTRL 0x8000 // 100 #define AD5293_CMD_RD_CTRL 0xA000 // 101 #define AD5293_CMD_STORE_CTRL 0xC000 // 110 static uint16_t AD5293_Command(uint16_t cmd, uint16_t data) { uint16_t frame = cmd | (data & 0x03FF); return AD5293_Transfer(frame); } void AD5293_WriteRDAC(uint16_t code) { AD5293_Command(AD5293_CMD_WR_RDAC, code); } uint16_t AD5293_ReadRDAC(void) { AD5293_Command(AD5293_CMD_RD_RDAC, 0x000); // 部分ADI器件回读数据在下一帧返回,补一帧NOP把数据读干净 return AD5293_Command(AD5293_CMD_NOP, 0x000) & 0x3FF; } void AD5293_StoreRDAC(void) { AD5293_Command(AD5293_CMD_STORE_RDAC, 0x000); }回读这里有个容易翻车的点:ADI不同器件的SDO时序分两类,有些在命令帧内同步输出寄存器内容,有些要下一帧才完整吐出。AD5293的手册时序图里标得很清楚,我上面代码里补NOP帧的办法在两种情况下都能兜住。实际调试时先用写0x3FF再回读来验证方向对不对,这一步花不了两分钟,能省掉后面一整天的怀疑人生。
3.4 菊花链的小补充
如果一块板子上要控制多颗AD5293,不需要每颗占用一个SPI接口。把SYNC全部并联,第一颗的SDO接到第二颗的SDI,串成菊花链,帧长就是16×N位。PIC18F46K22的MSSP1传输是按字节的,所以在软件里按N颗器件的总字节数连续调用AD5293_Transfer,最后统一拉高SYNC,就能一次更新所有通道。这个特性在做多通道校准工装时很省引脚,也保证了多颗电位器同步更新,不会出现一颗先执行、另一颗还在等数据的中间状态。
4. 校准工装实战:可编程电阻基准搭建与逐台补偿
4.1 工装需求
我这次要做的工装功能很明确:给被测温度变送器/显示仪表提供一个可变的模拟电阻,让它认为自己接在一只随温度变化的铂电阻上。读数要求能设到1kΩ、5kΩ、10kΩ、15kΩ等几个标准点,步进分辨率尽量细。因为被测仪表是电阻输入型,所以输出端必须是一只实打实的电阻,这就回到了我开头的判断:DAC不行,必须用数字电位器。
系统组成不复杂:PIC18F46K22做主控,SPI接AD5293BRUZ-20-RL7;上位机通过UART把“目标电阻值”发给单片机;单片机查表算出代码,写RDAC寄存器;A/W两个端子就是工装对外输出的电阻端,用测试夹直接夹到被校表上。整体没有运放、没有恒流源,就是一个纯粹的电阻源,原理越简单,现场越好排查。
4.2 挡位计算:先算理论值再校准
AD5293在调节成电阻(rheostat)模式时,理论阻值公式为:
R(AW) = R_AB × D / 1023 + R_W
其中R_AB=20kΩ,R_W约60Ω,D是0~1023的代码。几个常用目标点的理论代码:
| 目标阻值 | 理论代码D | 理论阻值 |
|---|---|---|
| 1kΩ | 48 | 998.4Ω |
| 5kΩ | 253 | 5006.2Ω |
| 10kΩ | 508 | 9991.1Ω |
| 15kΩ | 764 | 14996.5Ω |
| 20kΩ | 1023 | 20060Ω |
计算方式是先反解代码:D = (R_target - R_W) × 1023 / R_AB,再代回去验证。但这只是理论值,实际每颗料端到端电阻有±1%散布,游标电阻也有离散性。如果直接拿理论代码出厂,10kΩ点可能落在9.8kΩ到10.2kΩ之间,对校准工装来说不合格。所以必须做每台设备的逐点补偿。
4.3 两步校准:先建表再固化
我们的做法分两步。
第一步,建补偿表。产线测试时,用一台六位半万用表当作标准,测量这颗料在若干标定点的实际阻值。不用扫满1024个点,那样数据量和工时都太大;选8到16个断点就够了。AD5293保证单调性,相邻断点之间用线性插值就能得到不错的结果。这跟做外部ADC校准要选三点修正增益和失调、做电阻触摸屏要四点校准是一个思路:选点讲究落在实际使用区间附近,贪多浪费时间,选太少插值误差大。我们最后选了16个点,全部落在被试仪表最关注的阻值区间附近。
每台设备把这些断点代码存进PIC18F46K22的1KB EEPROM。16个断点每个存目标阻值和对应代码,大约64字节,EEPROM还剩很多空间给其他生产信息。正常工作时单片机按目标阻值查表、线性插值,算出代码写RDAC。
第二步,固化安全默认值。整个工装校准完后,通过20-TP固化一个固定的出厂默认代码,让设备上电时电阻端稳定在一个已知的中间值,比如代码512对应的约10kΩ。这样即使设备没有上位机下发,被测仪表也能看到一个安全的默认阻值,不会因为上电瞬间处于某个极端挡位而误判。
这里要说明:由于EEPROM容量有限,我们不对20kΩ以下所有阻值做全量逐挡表,实际校准用的是“目标点断点表+线性插值”,不是“1024点全查表”。如果某天要做真正的0.1%精密电阻箱,那是另一套设计逻辑,得上高精度电阻网络加继电器,而不是数字电位器。数字电位器的定位是“怎么调都方便、重复性好”,不是“天生就是标准电阻”。
4.4 现场对比数据
换方案后我们随机抽了20台设备统计,结果很能说明问题:
| 指标 | 3296多圈电位器方案 | AD5293方案 |
|---|---|---|
| 单台调校时间 | 约5分钟 | 约30秒 |
| 10kΩ点重复性(同台重复测) | ±20Ω量级 | ±0.5Ω以内 |
| 批次一致性(10kΩ点) | 偏差可达±150Ω | 校准后±2Ω以内 |
| 产线返工率 | 约8% | 小于0.5% |
数字电位器的重复性好,主要是因为没有机械接触、没有磨损、没有转轴回差,设置同一个代码,只要温度不变,输出电阻就一直稳定。测量时注意先让板子上电稳定十分钟再做记录,校准最怕拿没热机的设备读数,道理和做显示校准时要先让屏幕充分预热一样,都是等系统进入热平衡再动作。
5. 工业现场稳定性:上电瞬态、温漂与通信自恢复
5.1 上电瞬间的“中间挡陷阱”
AD5293这类带20-TP的器件,在上电到内部时序完成之间,游标位置会先落在中间挡附近(具体挡位以手册Power-On章节为准),之后再根据是否固化了默认值决定是否刷新。如果这颗料在你的系统里承担的是“一旦设错会烧板子”的角色,那中间挡这个瞬态就必须处理。
我见过一个电源板设计,数字电位器串在反馈分压里用来微调输出电压,结果没考虑上电瞬态,每次上电输出电压都要先冲高几十毫秒再被单片机拉回来,后级电路就因为这几十毫秒损坏。处理办法有三个层面:一是把出厂默认值固化到20-TP,让上电后尽快恢复到安全挡位;二是在电位器旁边并联一个固定电阻,把最坏情况下的输出限制在安全范围;三是给后级加一个使能开关,等单片机把挡位写好了再接通输出。实际项目里我倾向于第二和第三种同时上,安全冗余永远不过分。
5.2 电阻端子不是用来扛功率的
数字电位器的电阻串是按信号电平设计的,不是功率电阻。有些工程师习惯性地把它当多圈电位器用,直接串进4-20mA回路里做可调负载,这样很容易出问题。算一下就知道:20mA电流流过250Ω电阻,功率是0.1W,TSSOP封装的电阻串在持续0.1W下发热明显,阻值会跟着温漂,校准数据全部飘掉。更别说更大电流,会直接损坏电阻串。
正确思路是:数字电位器只处理电压信号或者微安级电流,真要模拟大电流负载,就在外面加运放扩流或者功率管,电位器只负责给出一个参考电压或参考阻值。AD5293的游标也不是硬开关,实测有几十欧姆的内阻,负载电流稍大还会引入额外的电压降,同样影响精度。
5.3 温漂怎么算账
AD5293电阻串的标称温漂大约是35ppm/°C量级,这是在rheostat模式下的值;如果做分压器,比例温漂能到5ppm/°C左右。差距非常大,应用时要想清楚自己在用哪种模式。
以我们的电阻模拟工装为例,绝对电阻模式下,20kΩ满挡时35ppm/°C意味着每升高10°C阻值要变大约7Ω。如果校准允差是±5Ω,那夏天和冬天同一台设备的读数就可能超标。我们解决的办法是把工装放在恒温产线环境里,并在固件里做一个简易温度补偿:用单片机片内温度传感器测环境温度,按实测温度系数对代码做一次修正。虽然片内温度传感器精度一般,但用于补偿趋势是够用的。如果你的现场环境温度变化大,又要求高精度,那数字电位器方案可能就不适合了,得回归金属箔电阻加继电器网络。
5.4 通信断线和寄存器被干扰后的自恢复
工业现场电磁环境复杂,SPI虽然只在板内走线,一样可能被强干扰打坏一帧数据。写坏RDAC寄存器后,电位器挡位直接跳到错误值,如果没人发现,设备就一直输出错误阻值。
我们固件里做了一个低成本自恢复机制:正常运行时,单片机每隔500ms用本地EEPROM里的目标代码重写一次RDAC寄存器。写入RDAC没有寿命限制,频率再高也不怕。这样即使某帧被干扰写坏,最多几百毫秒就自动纠正回来。注意千万不要拿这个机制去周期性写20-TP,20-TP有写入次数上限,只能用于固化最终值。
另一个基础但重要的配置:PIC18F46K22的低压检测(BOR)和看门狗(WDT)一定要开。BOR防止电源跌落时单片机乱写SPI,WDT防止程序跑飞后一直占用总线。每次复位后,main函数里第一步就是把RDAC重新写一遍,保证任何复位路径都不会让电位器停在错误挡位。
5.5 我踩过的三个具体坑
第一个坑是SPI模式差了一个相位。现象是写入代码后,阻值看起来在变,但每次写入结果都和预期差一截,或者同一代码反复写几次结果还不一样。排查时用示波器抓SCLK和SDI,发现数据是在SCLK上升沿之后才稳定,也就是从机采样时刻不对。AD5293按SPI Mode 0设计,MCU这边CKP=0、CKE=0才对,当时我代码里CKE被初始化成了1,改成0之后问题消失,再把时钟降到1MHz做全挡位扫描就完全稳定了。SPI波特率这里一定要较真,不是越快越好,和串口波特率校准的道理一样,稳定压倒速度。
第二个坑是回读永远是全1或者全0。查了半天SPI配置,最后发现是RC4/SDI1的TRIS方向没设对,引脚还是输出模式,设备返回的数据根本进不来。这个问题很蠢但特别容易犯,尤其是从别的工程复制初始化代码的时候,引脚方向往往被一起复制错了。建议写好驱动后先跑一个最基础的测试:写0x000回读,再写0x3FF回读,两个值都对得上,再往上层走。
第三个坑是把游标电阻忘了。开发阶段我用理论代码去验证1kΩ输出,结果实测经常偏大几十欧姆,一开始以为是板子问题,后来把R_W=60Ω代进公式才算对。低阻段游标电阻占的比重很大,1kΩ目标里60Ω就是6%的误差。所以做补偿表时,一定要把测试夹子夹在A/W这两个实际输出端上测量,万用表本身的一点接触电阻也要算进去,不能图方便直接测芯片端了事。
6. 可编程电阻方案的边界:什么时候别用数字电位器
6.1 需要真正0.1%绝对精度的场合
数字电位器再精,本质还是一根修调过的电阻串,绝对误差和温漂决定了它做不了计量级标准。如果你要做的是0.1%甚至更高精度的电阻输出,老老实实用金属箔电阻加继电器网络,每个标准阻值对应一颗精密电阻,靠继电器切换。这种方案成本高、体积大、调起来麻烦,但绝对精度和长期稳定性是数字电位器给不了的。选型时要先问自己:我要的是“可重复的粗调”还是“可溯源的标准值”,这两者的设计路径完全不同。
6.2 高电压、大电流的场合
前面讲过,AD5293的A/B/W端子电压不能超出电源轨,能承受的电流也非常有限。如果被调节的支路本身工作在24V、几十毫安以上,就不要强行让数字电位器直接串进去。可以把它放在低压信号侧做控制,再用扩流管或隔离电路去影响高压侧,但这样一来系统复杂度就上去了。真到了这一步,不如回头评估一下机械继电器加电阻网络是不是更省事。
6.3 连续可调优先的场合
数字电位器再密也是离散的,1024挡看起来很多,但有些精密仪器需要的是真正连续可调的输出,比如老式设备里那种带阻尼的机械多圈电位器,拧到任何位置都能停住。数字电位器做不到“任意位置”,只能在两个挡位之间跳。如果你需要的是丝滑的连续扫掠,或者要求从视觉上感觉不到挡位跳变,要么提高电阻网络设计让每挡变化很小,要么干脆保留机械方案。
6.4 我的选型顺序
我现在的习惯是先问三个问题:要的是绝对电阻还是比例关系?阻值范围多大、温漂允许多少?现场环境对上电瞬态和通信可靠性有什么要求?这三个问题过完,基本就能判断数字电位器合不合适。AD5293对我来说最大的价值不是参数最高的,而是把“产线可调”这件事从机械操作变成了软件操作,省掉的是整个流程里最不可控的人为因素。只要想清楚它的边界,这颗料在校准和工业应用里能干很多活。