查看: 334|回复: 0

[评测分享] 【瑞萨电子PTX105R NFC读写器套件】匆匆写在deadline之前

[复制链接]
  • TA的每日心情
    奋斗
    昨天 21:53
  • 签到天数: 1483 天

    连续签到: 12 天

    [LV.10]以坛为家III

    发表于 2024-5-25 20:40:47 | 显示全部楼层 |阅读模式
    分享到:
    0x00
    参加与非网的瑞萨电子PTX105R NFC读写器套件活动,获得了一块评估板。包装内除了评估板外,还有一个H场探测器卡和一根USB连接线,但没有配相应的说明书或网页链接。根据部件号10009105-PTX105REK查找资料(https://www.renesas.cn/cn/zh/document/prb/ptx105r-nfc-reader-ic-fact-sheet),可以看到本次拿到的是“PTX105R Evaluation Kit”,如下:
    图片1.png
    sheet不同,在实际收到的评估板上,瑞萨标志丝印不是在天线区域,而是在电路板上,如下:
    图片2.png
    根据评估板的特性,计划按如下几个方面进行尝试评测,包括:
    1、板卡功耗测量
    2NFC天线特性
    3、尝试PC应用程序
    4、尝试SPI/I2C/UART接口,连接到MCU板上
    5、基于评估板卡,开发定制化程序
    0x01:评估板的功耗
    空载功耗:
    在使用USB供电方式下,空载功耗约0.09w
    图片3.png
    工作功耗:
    我们知道NFC的功耗大多是在天线上,那么我们来测试一下评估板驱动自带NFC卡的功耗吧,如下:
    图片4.png
    从功率计上,我们可以读取出来电流约70mA,功耗大约0.36w
    读取宾馆门禁卡
    图片5.png
    大约0.17A,功耗0.86w
    读取支持NFC的手环
    图片6.png
    大约1.3w
    数值相差还是比较大的。
    0x02 NFC天线特性
    天线是NFC技术中非常关键的组成部分,它负责发送和接收射频信号。由于NFC通信的应用场景,天线一般都不可能太大,PTX105R评估板自带板载天线大小55mm*55mm。相对来说已经是比较袖珍的了。
    天线增益可以在网站https://www.mwrf.net/T/rf/a-zxzp.html上大致计算。
    由于测试手段的局限性,我们很难测试出准确结果,只能做一些简单测试,如评估板的通信距离、抗干扰能力来评估天线特性。
    评估套件中带的NFC卡上有14LED,根据亮灯的数量,可以大致估算通信距离。假设10个灯以上为优,5个灯以上为良,不亮灯或者只有一个灯亮为差,在评估板与NFC卡中填入如下介质,测量介质厚度,如下表:
    0x03 PC端应用软件
    PC端可以安装的应用软件有NFC IoT TunerPTX1xxR IOT Config Tool,都可以在Renesas官网上下载到。
    由于是全图形化的,这里就不一一介绍,只做几个简单的尝试:
    品质因素(Q-Factor):品质因数是衡量天线效率的一个参数,它反映了天线在特定频率下的能量损耗。高Q值的NFC天线能更有效地传输和接收信号。
    图片7.png
    标签读取
    图片8.png
    0x04 通过STM32板卡控制PTX105R评估板
    目前这块暂时还没做,先留白
    0x05 基于评估板卡,开发定制化程序
    参考资料过少,目前看到资料只有寥寥两句话,通过CH340转的USB串口波特率为115200,串口帧格式类似TLV,其中T固定为0x55LV的字节数,举例0x55 0x02 0x30 0xFF。在串口精灵上可以看到返回值是0x01 0x21,但具体值的意义不明。
    图片9.png
    由于没有文档支持,只能根据文档介绍简单写一点:
    串口读取
    # 打开串口
    ser = serial.Serial('COM8')  # CH340串口设备
    # 异步读取数据
    def read_serial():
        while True:
            #data = ser.readline()
            #print(data.decode('utf-8'))  #不是字符串,没有回车
            data = ser.read(1)  # 每次读取1个字节的数据
            print(data)
    # 创建线程并运行
    thread = threading.Thread(target=read_serial)
    thread.start()
    串口写入
    set_serial(115200)
    current_baudrate = ser.baudrate
    print(f"当前波特率: {current_baudrate}")
    ser.write(b'\x55\x02')
    ser.write(b'\x30\xff')
    time.sleep(10)
           

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-6-17 17:51 , Processed in 0.123102 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.