2024-07-02
GR5526 GUI专题(4) - Lvgl字体的位图数组合并转换为bin文件的说明
写技术文章
精选推荐
无敌浩克
在第四章学习控制CMW测试BLE RFPHY TX指标之后,我们已经能够使用RsCmwBluetoothSig模块控制CMW,本章继续拓展控制CMW测试BLE RFPHY RX指标。
CMW控制需要使用到的模块为:RsCmwBluetoothSig和RsInstrument
RsCmwBluetoothSig详细信息请参考:
https://pypi.org/project/RsCmwBluetoothSig/
https://rscmwbluetoothsig.readthedocs.io/en/latest/
RsInstrument详细信息请参考:
https://pypi.org/project/RsInstrument/
https://rsinstrument.readthedocs.io/en/latest/
在通常的灵敏度测试流程中,会使用CMW仪器自带的PER search模块,仪器输出电平从x位置按照步进step power值递减,每次测试N个packet检测PER值,直到PER≥30.8%门限,记录此时的仪器输出电平作为灵敏度指标参考,大致流程图如下:
PER search测试方案带来的问题是仪器输出电平只能从高到低递减,对于某些可能存在RF desense导致灵敏度恶化的channel,即使是仪器初始输出最高的电平PER也会超过30.8%门限,此时仪器返回的该channel的测试结果是‘NAV’无效的,后续需要手动补测这些可能存在的RF desense的channel,如果需要测试到全部channel的灵敏度数据,则需要提高PER search的初始电平,但是这样会造成测试效率的降低。使用默认PER search会导致测试效率和数据完整性两者的trade-off。
下面介绍一种反向PER search的方法,即控制仪器输出电平从低到高递增的方式,测试N个packets查询PER值,仪器输出初始电平设置在PER>30.8%门限(即芯片灵敏度极限-0.5/-1db附近),递增仪器输出电平,直到PER≤30.8%,记录PER和CMW power值到Excel,大致流程图如下:
反向PER search对于可能存在的RF desense频点也能够测试到灵敏度数据,而且对于灵敏度正常的频点,测试效率会非常快,仪器输出电平设置合理,只需要递增一个step power即可测到PER≤30.8%。注意此方法建议只在Bluetooth low energy协议DTM测试模式上使用,因为Bluetooth classic使用信令测试模式,若CMW起始设置电平过低导致可能存在的RF desense频点BER过高,可能会导致信令模式断开无法测试。
1, 导入相关模块
from RsCmwBluetoothSig import *
from RsInstrument.RsInstrument import RsInstrument
import os
import time
import openpyxl
from openpyxl import Workbook
from openpyxl.chart import (
LineChart,
Reference,
Series,
)
from loguru import logger
2, 创建log file记录系统运行log
################ Create log file################
if log_record == 1: # print log info to (log_path)log.txt file
logger.add('D:\\ test_log_temp\\LE1M_RX_' + file_time + '.log')
logger.info(f'{file_time} Created by Goodix')
3, 3,创建Excel记录RFPHY测试结果
###################### Create .xls for results recording ################
test_results = openpyxl.Workbook()
file_time = time.strftime('%Y-%m-%d-%H_%M_%S', time.localtime(time.time()))
savefilename = 'LE1M_RX_Test_' + file_time + '.xlsx'
folder_path = "D:\\ test_results_temp"
file_path = os.path.join(folder_path, savefilename)
4, 创建BLE RFPHY测试函数
# instrument_rst 配置是否需要复位仪器
# inquiry_enable 配置是否需要仪器自动inquiry DUT,或者是手动连接DUT
# Instrument_address 配置CMW仪器地址
# test_channel_step 配置测试的channel步进
# input_external_att/ output_external_att 配置仪器RF Port衰减
# RF_PORT 配置仪器硬件RF口
# RX_StartPower 配置仪器初始输出电平(dBm),建议为灵敏度极限-0.5db
def BLE1M_RX_Test(instrument_rst=0,
inquiry_enable=0,
Instrument_address=0,
test_channel_step=1,
input_external_att=1.0,
output_external_att = 1.0,
RX_StartPower = -100.0,
RF_PORT = 'RF1COM'
):
5, RsCmwBluetoothSig模块基本读写功能
#实例化RsCmwBluetoothSig,传入CMW仪器地址信息
driver = RsCmwBluetoothSig(Instrument_address)
driver.utilities.write_st() 往仪器写入指令
driver.utilities.query_str() 从仪器读取信息或者测试结果
6, 使用openpyxl.chart模块画出channel-RX sensitivity曲线,请参照第四章
实测仅需40秒钟就可以测试0-39全channel的RX灵敏度特性,自动记录在excel里面并画图,这测试效率用起来是不是嘎嘎香呢😎
测试GR5332 SK板的LDO模式灵敏度运行的结果如下:channel 15和31受到32Mhz晶体layout和SXPLL整数边界杂散(32Mhz晶体整数倍频)导致灵敏度恶化
完整的BLE1M RX测试参考code请在评论区查看。
打开微信,使用“扫一扫”即可关注