频率仪FA-2USB串口通讯测试

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了频率仪FA-2USB串口通讯测试相关的知识,希望对你有一定的参考价值。

FA-2频率计 目 录
Contents
背景介绍 USB命令 面板 基本测量 测量条件 总 结

 

01 FA-2频率计


一、背景介绍

  在 测量一款高频频率计:FA-2 中遇到了USB通讯问题, 在Windows7中的虚拟串口上无法读取任何数据。 根据产品销售人员的反馈,可能需要主动发送相应的命令, 才可能获得相应的数据。 下面根据这个提示进行测试。

▲ 图1.1.1 FA-2内部电路系统框图

1、USB命令

  下面是USB串口命令汇总:

命令功能描述返回备注
$D*读取测量数据$F-CH1,0000999999.874455763,+0000000118,DOK\\r\\n
$R*按下复位按键KEY RST ROK\\r\\n
$M*按下模式按摩KEY MODE MOK\\r\\n
$G*按下闸门按键KEY GATE GOK\\r\\n
$CXX*设置LCD对比度
XX:0-63
SET LCD CONTCOK\\r\\n$C50* 比较合适
$BXXXXX*设置波特率
00480,00960,019200,
03840,05760,115200
BOK\\r\\n
$S*读取统计数据
$E2020*开机选择CH1测频
$E2121*开机选择CH1统计模式
$E2222*开机选择CH2频率模式
$E2323*开机选择CH2统计模式
$E3030*CH1选择50欧姆
$E3131*CH1选择1M欧姆
$E3232*BeepOn
$E3333*Beep Off
$E3434*打开高精度模式
$E3535*关闭该精度所有频率范围为8位/秒
$E3636*Open CH1 LPF
$E3737*Close CH1 LPF
$E4040*CH1=50R, Inpu 10M 0db
$E4141*Select CH1=50R Input 10M-20dBM Calibration Power Meter.

2、面板

  USB使用的芯片为 FT232RL芯片,可以从 FTDI网站获得。

▲ 图1.1.2 FA-2 前面面板

▲ 图1.1.3 FA-2后面板

二、基本测量

  准备测试一下相关的USB串口命令,使用数字信号源DG1062产生频率为1MHz,峰峰值为5V的正弦波。 频率计FA-2设置为50欧姆输入阻抗,此时对应的输入功率理论值为11.94dBm。 首先测试一下基本M命令。 发送命令之后, 可以看到返回的信息 这是返回的信息。

  下面在测试读取测量数据的D命令。 发送命令之后, 可以看到返回的信息。 这个结果是对1MHz正弦波测量的结果, 前面是频率, 后面是信号功率。


  接着读取一下统计信息, 按动MODE按钮可以看到CH1对应的频率统计信息, 这是前三次信号的统计信息。 输入S命令, 可以通过串口读取对应的统计信息。 这里返回了51次测量结果的统计信息。 与FA-2频率显示信息是相符和的。

1、测量条件

  • 信号源:DG1062输出 1MHz,5Vpp的信号
  • 测量模式: 1CH-50R, LPF-OFF。

  此时实际上对应信号源端口信号的幅值为 2.5Vpp。对应的功率为:
V R M S = 2.5 2 × 2 = 0.8839 V V_RMS = 2.5 \\over 2 \\times \\sqrt 2 = 0.8839V VRMS=2×2 2.5=0.8839V P = V R M S 2 50 = 15.62 m W = 11.94 d B m P = V_RMS^2 \\over 50 = 15.62mW = 11.94dBm P=50VRMS2=15.62mW=11.94dBm

 

  结 ※


  文测试了FA-2频率计USB串口功能, 虽然没有能够看到该频率计自动返回信息, 但他的相应控制命令,数据读取命令等经过测试还是正常的。

◎ Python读取数据

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# FA2USB.PY                    -- by Dr. ZhuoQing 2022-10-24
#
# Note:
#============================================================

from headm import *
import serial
from _ast import Or
from serial.serialutil import SerialException

#------------------------------------------------------------
sport = serial.Serial()
sport.baudrate = 9600
sport.timeout = 0.05
try:
    sport.port = 'COM8'
except:
    printf('Set sport port COM8 error. ')

try:
    sport.open()
except serial.serialutil.SerialException:
    printf('Open sport port COM8 error.')
else:
    printf('Open sport port COM8 Ok.')
#------------------------------------------------------------

def fa2read():
    sport.write(b'$D*\\r\\n')

    for i in range(200):
        time.sleep(0.1)
        if sport.inWaiting() > 0: break

    ret = sport.read(100).decode('utf-8').split(',')

    if len(ret) < 3: return 0
    f = ret[1]
    p = ret[2]

    return (float(f),float(p))

#------------------------------------------------------------
result = fa2read()
printf(result)



#------------------------------------------------------------
#        END OF FILE : FA2USB.PY
#============================================================


■ 相关文献链接:

● 相关图表链接:

FA-2频率计USB功能

以上是关于频率仪FA-2USB串口通讯测试的主要内容,如果未能解决你的问题,请参考以下文章

Multisim

变压器绕组变比测试测量仪串口数据采集存入数据库对接MES系统方案

半导体物理实验 04 - | 椭圆仪测量薄膜厚度

频率计工作原理介绍

串口通讯你真的会了吗?不妨看看这些经验

51单片机自定义串口通讯协议控制流水灯+Proteus仿真