34401A隐藏功能破解和更多指令

隐藏功能

仅验证于07-XX-XX以上版本的34401A,在升级前请自行备份校准数据以免丢失。摘抄自EEVblog,写0值可以关闭该功能。

  • DIAG:POKE 28,0,1191 启用标准差和峰峰值
  • DIAG:POKE 30,0,1191 启用机内温度和外部温度传感器,并激活对应的SCPI指令(参见34970A)
  • DIAG:POKE 31,0,1191 启用比例计算
  • DIAG:POKE 32,0,1191 启用自定义转换孔径
  • DIAG:POKE 33,0,1191 启用状态存储和开机自动调回
  • DIAG:POKE 25,0,1 启用10mA AC量程
  • DIAG:POKE 27,0,1 启用10kHz AC滤波器
  • DIAG:POKE 29,0,1 在温度测量模式下显示原始测量值

激活的SCPI指令:

  • CALCulate:AVERage:SDEViation?CALCulate:AVERage:PTPeak?
  • CONF:TEMPerature {TCouple|RTD|FRTD|THERmistor|DEF},{|MIN|MAX|DEF},{|MIN|MAX|DEF}
  • UNIT:TEMPerature {C|F|K}
  • SENSe:TEMPerature:TRANsducer:TYPE {TCouple|RTD|FRTD|THERmistor|DEF}
  • SENSe:TEMPerature:NPLCycles {0.02|0.2|1|10|100|MINimum|MAXimum}
  • SENSe:TEMPerature:TRANsducer:TCouple:TYPE {B|E|J|K|N|R|S|T}
  • SENSe:TEMPerature:TRANsducer:TCouple:RJUNction {|MIN|MAX}
  • SENSe:TEMPerature:TRANsducer:RTD:TYPE {85|91}
  • SENSe:TEMPerature:TRANsducer:RTD:RESistance:REFerence {|MIN|MAX}
  • SENSe:TEMPerature:TRANsducer:THERMistor:TYPE {2200,5000,10000} 注:前两者B=3975,后一者B=3695
  • DIAGnostic:TEMPerature?
  • CALCulate:FUNCtion SCALe
  • CALCulate:SCALe:GAIN
  • CALCulate:SCALe:OFFSet
  • <Measure>:APERture {<Time>|MIN|MAX}
  • *RCL 0 注:似乎只有一个槽位
  • *SAV 0 注:同上
  • MEMory:STATe:RECall:AUTO {OFF|0|ON|1}

验证功能是否开启:

  • DIAG:PEEK? -10,1,0 检查标准差和峰峰值
  • DIAG:PEEK? -10,2,0 检查机内温度和外部温度传感器
  • DIAG:PEEK? -10,3,0 检查比例计算
  • DIAG:PEEK? -10,4,0 检查自定义转换孔径
  • DIAG:PEEK? -10,5,0 检查状态存储

更多PEEK&POKE

  • DIAG:PEEK? -12,0,0 lookup block table in ROM data using index to stored address
  • DIAG:PEEK? -11,0,0 lookup NVRAM data by block using the index to stored address
  • DIAG:PEEK? -10,<FUNC>,0 是否已启用隐藏功能
  • DIAG:PEEK? -9,0,0 No of rows in the block table
  • DIAG:PEEK? -8,0,0 [unsecured] enable: ZERO DCV
  • DIAG:PEEK? -7,0,0 读取ADC原始数据
  • DIAG:PEEK? -6,0,0 从上个中断中读取堆栈转储
  • DIAG:PEEK? -5,0,0 是否有等待中的中断
  • DIAG:PEEK? -4,0,0 读取电力线频率 1=50/400Hz
  • DIAG:PEEK? -3 ROM ref values for specified block number e.g. PEEK -2, 70, 0
  • DIAG:PEEK? -2,<ADDR>,0 读取EEPROM高区(校准)字,以特定格式返回
  • DIAG:PEEK? -1,<ADDR>,0 读取EEPROM低区(设置)字,以十进制返回
  • DIAG:PEEK? 0,<ADDR>,0 读取RAM字节
  • DIAG:PEEK? 1,<ADDR>,0 读取RAM字
  • DIAG:PEEK? 2,<ADDR>,0 读取RAM双字
  • DIAG:PEEK? 3<ADDR>,0, 读取RAM浮点
  • DIAG:PEEK? 25,0,0 输出*IDN字符串

危险!以下写入操作将可能损坏仪器

  • DIAG:POKE 34,0,0 复位CPU
  • DIAG:POKE 23,0,0 重置校准计数
  • DIAG:POKE 0,0,0 增加校准计数
  • DIAG:POKE -2,<ADDR>,<DATA> 写入RAM字节
  • DIAG:POKE -3,<ADDR>,<DATA> 写入RAM字
  • DIAG:POKE -4,<ADDR>,<DATA> 写入RAM浮点

获取34401校准数据

DIAG:PEEK? -2,<RANGE>0

其中量程数字从最低到最高是:
DCV 75-79
DCI 82-85
OHM 87-92
OHM4 94-99
ACV 104-108

获取到的格式是 <系数>,<左移位数>,<0>,<前面板偏移>,<后面板偏移>,得到的值在进行线性变换后仍需叠加一个二次项和三次项的矫正,参见https://www.eevblog.com/forum/testgear/hp-agilent-34401a-hidden-menu/115/,感谢作者,这真是一项十分艰难和巨大的工作。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注