Benewake(北醒) 快速实现TFmini-Plus-IIC与电脑通信的操作说明

news2024/11/15 11:49:29

目录

  • 1. 概述
  • 2. 测试准备
    • 2.1 工具准备
    • 2.2通讯协议转换
  • 3. IIC通讯测试
    • 3.1 引脚说明
    • 3.2 测试步骤
      • 3.2.1 TFmini-Plus-IIC 与 PC 建立连接
      • 3.2.2 获取测距值
      • 3.2.3 更改 slave 地址

1. 概述

通过本文档的概述,能够让初次使用测试者快速了解测试 IIC 通信协议需要的工具以及查看哪些对应的 IIC 协议说明书,通过 PC 连接完成 IIC 通信协议的产品测试。

本文档适用的产品型号: TFmini-Plus-IIC(测试前确认产品硬件版本以及固件版本)

2. 测试准备

2.1 工具准备

工具数量
PC 上位机 windows 系统1台
USBCOM2I2C 转换器1台
4P 杜邦线1台
TFmini-Plus-IIC1台

2.2通讯协议转换

TFmini-Plus 出厂默认通讯协议是 UART 串行通讯,如果要测试 IIC 通讯协议,需要在 UART 通讯模式下通过发送指令进行通讯协议转换,把 TFmini-Plus 的通讯接口协议转换成 IIC。具体操作步骤如下:

步骤1: 通过 USB-UART 转接板连接 TFmini-Plus 与 PC 端,如图 1 所示(具体工具可以查阅 TFmini-Plus 说明书);
在这里插入图片描述
连接 USB-UART 转换器,查看电脑 COM 驱动是否识别转换器,如果无法识别驱动器请更新驱动。
在这里插入图片描述
步骤2:
1) 打开串口助手,选择正确的端口号,波特率:115200。
2) 更改 IIC 通讯协议,发送通信接口设置指令:5A 05 0A 01 6A ;发送保存配置指令:5A 04 11 6F ;
在这里插入图片描述
在这里插入图片描述
3)断电重启,设备启动为 IIC 模式。现在 TFmini-Plus 已经改为 IIC 协议,可以进行 IIC 通讯测试。

3. IIC通讯测试

3.1 引脚说明

注意:这里使用 TFmini-Plus-IIC 进行测试,如果你测试的是其他硬件版本,请查阅对应的产品说明书进行电气接口的针脚定义确认。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 测试步骤

3.2.1 TFmini-Plus-IIC 与 PC 建立连接

连接 USB-UART 转换器,查看电脑 COM 驱动是否识别转换器。
注意:如果没有识别 USB-IIC 转换器请查阅:USBCOM2I2C 使用手册,手册里有下载驱动的教程如下图驱动安装和下载链接。

USBCOM212C内部采用FTDI原装进口芯片,Windows驱动下载地址:http://www.ftdichip.com/Drivers/CDM/CDM21216 Setup.exe
其它操作系统驱动,可访问已下地址下载:
http://www.ftdichip.com/Drivers/VCP.htm

打开串口助手,选择正确端口号,波特率设置:9600 ,取消 RTS 选项,无校验(校验选择“none”),打开串口连接。

通过查阅 TFmini-Plus-IIC 的产品说明书了解 IIC 模式数据时序。与串口通信不同,I2C 通信由主机发起,雷达做为从机只能被动收发数据。主机向雷达写入配置指令帧后,需要等待足够长的时间,等待处理完该指令后,再进行读取反馈操作,建议等待时间为 100ms。详见下表:
在这里插入图片描述

3.2.2 获取测距值

TFmini-Plus-IIC 的地址是 0x10,则通过串口获取 TFmini-Plus-IIC 的测量距离的命令为: 53 20 05 5A 05 00 01 60 50 53 21 09 50,发送指令操作如下图。

在这里插入图片描述
命令解释:
0x53: USB-I²C 转换器的 S 命令,发起 start 信号(详见转接器使用手册);

0x20: 写操作(IIC 协议规定高 7 位代表从节点的寻址地址,最低位代表读/写,0 为写操作,1 为读操作。从机地址 0x10(DEC),0x10 的 2 进制表示 00010000。高 7 位代表地址故先左移一位为 00100000,最低位写为 0,所以是 00100000 即 0x20(DEC));
0x05: 写入 5 个字节数据;
5A 05 00 01 60: 获取测距结果。TFmini-Plus 在 IIC 模式下读取距离指令如下图;

在这里插入图片描述
0x53: USB-I²C 转换器的 S 命令,发起 start 信号(详见转接器使用手册);
0x21: 读操作(高 7 位代表地址,最低位代表读/写。从机地址 0x10,0x10 的二进制表示 0001 0000,高七位是地址故先左移一位为 00100000,最低位读为 1,所以是 00100001 即 0x21);
0x09: 读取 9 个字节数据;
0x50: USB-I²C 转接器的 P 命令,发起 stop 信号(详见转接器使用手册);
发送上述指令后,TFmini-Plus-IIC 返回 9 个字节的数据,数据格式如下图:

在这里插入图片描述
例如返回数据:59 59 A9 00 0F 3E 60 09 11,数据解释如下:

0x59 0x59: 帧头
0xA9: 距离值低 8 位;
0x00: 距离值高 8 位(距离值 0x00A9,10 进制表示即 169cm);
0x0F: 强度值低 8 位;
0x3E: 强度值高 8 位(强度值 0x3E0F 即 15887);
0x60: 温度低 8 位 ;
0x09: 温度高 8 位(温度值 2400/8-256=44°);
0x11: 校验位 11;

3.2.3 更改 slave 地址

更改 slave 地址命令格式如下图,TFmini-Plus-IIC 默认地址为 0x10。例如,要将 slave 地址更改为 20,需要发送指令:53 20 05 5A 05 0B 20 8A 50 53 21 05 50。

在这里插入图片描述
命令解释如下:
0x53: USB-I²C 转换器的 S 命令,发起 start 信号;

0x20: 写操作;
0x05: 写入 5 个字节数据;
5A 05 0B 20 8A: 修改 I2C 从机地址。要将从机地址改为 20,则 ADDR=20(DEC);SU 为和校验位。
0x50: USB-I²C 转接器的 P 命令,发起 stop 信号;
0x53: USB-I²C 转换器的 S 命令,发起 start 信号;
0x21: 读操作;
0x05: 读取 5 个字节数据;
0x50: USB-I²C 转接器的 P 命令,发起 stop 信号;

发送指令操作如下图所示,配置成功返回 4 字节 0x00。

在这里插入图片描述
将地址修改为 20 后,获取测距值的指令为:53 40 05 5A 05 00 01 60 50 53 41 09 50。命令含义参考 3.2.2.解释。

更多详情请参考 SJ-PM-TFmini-Plus A05 说明书。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/594345.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

48. 旋转图像

48. 旋转图像 C代码&#xff1a; void rotate(int** matrix, int matrixSize, int* matrixColSize){int m matrixSize;int n matrixColSize[0];int arr[m*n];int arrTop 0;memset(arr, 0, sizeof(int) * m * n);for (int i 0; i < m; i) {for (int j 0; j < n; j) …

【Springcloud】分布式搜索elasticsearch

文章目录 1、ElasticSearch 1、ElasticSearch 先看下翻译&#xff1a; elasticsearch是一款非常强大的开源搜索引擎&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 项目在运行的时候会产生海量的日志信息&#xff0c;而elasticsearch结合kibana、Logstash、Beats&am…

2023免费的苹果手机备份app软件iMazing

苹果备份APP怎么备份&#xff1f;一般情况下&#xff0c;苹果手机备份照片、短信等可以使用iCloud备份。虽然App也可以使用iCloud备份&#xff0c;但是App数据一般较多&#xff0c;需要较大的iCloud存储空间&#xff0c;而免费的iCloud存储空间只有5GB&#xff0c;很多人都不想…

[C++] 继承和多态

Be water my friend. 一.关于继承(inheritance) 基础知识&#xff1a; 继承的定义格式&#xff1a; 继承方式的比较&#xff1a; 继承中的作用域&#xff1a; 基类和派生类对象赋值转换 : 派生类的默认成员函数 关于继承的补充 如何防止继承的发生(final关键字…

ThreeJS教程:CSS3批量标注多个标签

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 3D工具集&#xff1a; NSDT简石数字孪生 CSS3批量标注多个标签 下面下工厂为例&#xff0c;使用CSS3DRenderer批量渲染多个HTML元素标签。 CSS3渲染器基本代码 CSS3渲染器代码和上节课内容一样设置即可。 // 引入CSS3渲…

掌握哪些测试技术才能说自己已经学成了?

一、过硬的基础能力 其实所有的测试大佬都是从底层基础开始的&#xff0c;随着时间&#xff0c;经验的积累慢慢变成大佬。要想稳扎稳打在测试行业深耕&#xff0c;成为测试大牛&#xff0c;首当其冲的肯定就是拥有过硬的基础&#xff0c;所有的基础都是根基&#xff0c;后期所…

Docker利用DockerFile创建部署NVIDIA+PyTorch容器

Docker利用DockerFile创建部署NVIDIAPyTorch容器 1、创建 Dockerfile2、在 Dockerfile 中添加关键字和命令3、使用 Docker Build 命令构建镜像4、验证和测试 Docker 映像 1、创建 Dockerfile 首先在用户的主目录下创建一个名为 mycode 的文件夹&#xff0c;然后创建 Dockerfil…

马斯克:我是 Rust 粉丝,但为了性能我会毫不犹豫选择 C/C++

作为一个几乎时刻处于风口浪尖上的“网络红人”&#xff0c;特斯拉 CEO 埃隆马斯克(Elon Musk)被外界评价为“致力于从人工智能手中拯救人类”的钢铁侠。近期&#xff0c;这位大佬又因不少“出格”言论而在社交媒体上引发热议 —— 在一家 AI 公司谈论编程“error messages”的…

【备战秋招】每日一题:4月1日美团春招(二批)第四题:题面+题目思路 + C++/python/js/Go/java带注释

2023大厂笔试模拟练习网站&#xff08;含题解&#xff09; www.codefun2000.com 最近我们一直在将收集到的各种大厂笔试的解题思路还原成题目并制作数据&#xff0c;挂载到我们的OJ上&#xff0c;供大家学习交流&#xff0c;体会笔试难度。现已录入200道互联网大厂模拟练习题&…

电商 - 高并发下订单商品库存扣减方案

开发一个电商库存系统时,我们最担心的就是高并发和防超卖了 电商库存系统场景 前提:分布式系统,高并发 商品A只有100库存,现在有1000或者更多的用户购买。如何保证商品库存在高并发的场景下是安全的 高并发场景下,商品展示页上面的信息,除了库存的其他信息属于静态数据…

ClickHouse性能调优——压缩和编码算法

随着数据库数据越来越多&#xff0c;给数据存储、网络访问造成成本和负担。压缩技术节约存储空间、加速网络访问的常用解决方案&#xff0c;本文主要介绍压缩算法和ClickHouse编码技术。 压缩类型 ClickHouse协议支持LZ4和ZSTD 压缩算法&#xff0c;两者都是基于字典使用校验和…

【Linux】信号(一文学会,八千字好文深度讲解信号)

目录 1.信号的初步理解 2.信号处理 信号的产生 信号的保存 前台进程和后台进程 信号处理以及产生信号 对于信号的处理方式有三种 产生信号&#xff1a; 1.通过终端按键产生信号 2.调用系统函数向进程发信号​编辑 ​编辑 3. 由软件条件产生信号 4.硬件异常产生信…

docker私有仓库harbor部署

1. harbor简介&#xff1a; Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器&#xff0c;通过添加一些企业必需的功能特性&#xff0c;例如安全、标识和管理等&#xff0c;扩展了开源Docker Distribution。作为一个企业级私有Registry服务器&#xff0c;Harbor提…

系列二、MongoDB的安装

一、传统方式安装 1.1、下载安装包 https://www.mongodb.com/try/download/community-kubernetes-operator 1.2、上传至opt目录并解压 tzr -xzvf mongodb-linux-x86_64-rhel70-5.0.18.tgz 1.3、移动mongodb安装包并重命名 mv mongodb-linux-x86_64-rhel70-5.0.18 /usr/local…

【Unity100个实用小技巧】屏幕后处理实现渐隐渐现

☀️博客主页&#xff1a;CSDN博客主页&#x1f4a8;本文由 我是小狼君 原创&#xff0c;首发于 CSDN&#x1f4a2;&#x1f525;学习专栏推荐&#xff1a;面试汇总❗️游戏框架专栏推荐&#xff1a;游戏实用框架专栏⛅️点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd;&#xf…

35 KVM管理设备-管理虚拟网卡

文章目录 35 KVM管理设备-管理虚拟网卡35.1 概述35.2 操作步骤 35 KVM管理设备-管理虚拟网卡 35.1 概述 虚拟网卡类型主要包含virtio-net、vhost-net、vhost-user等。用户在创建虚拟机后&#xff0c;可能会有挂载或者卸载虚拟网卡的需求。openEuler提供了网卡热插拔的功能&am…

springboot+vue宠物领养系统的设计与实现

随着国内经济的不断发展&#xff0c;人民收入水平的提高以及对于情感需求的日益增强&#xff0c;宠物饲养成为了一种流行趋势。宠物的增多不可避免地造成了流浪宠物的泛滥&#xff0c;它们大多来自被主人遗弃的动物或这些动物繁衍的后代。它们没有管束&#xff0c;游走在人类居…

自定义kong插件golang版本

开发一个go版本的kong 插件&#xff0c;通常需要以下3个步&#xff1a; 基于kong提供的go语言版本的PDK编写并且编译kong插件 --》 在kong的kong.conf文件中配置插件位置 --> 通过kong的admin api来启用插件 一、使用go语言编写kong插件 1、定义Config对象 type Config s…

嵌入式软件测试怎么实现自动化测试?

说起嵌入式软件测试&#xff0c;我们先快速了解一下嵌入式软件自身的特点。嵌入式软件具有实时性、内存空间有限、I/O通道少&#xff0c;而且要求功耗低、高可靠性&#xff0c;对成本也比较敏感&#xff0c;和硬件关联性强等特点。因此&#xff0c;嵌入式软件的测试与一般商用软…

【Vue】data属性,v-for,diff算法,composition API

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录 Vue3data属性插值语法修饰符v-modelv-for虚拟DOMdiff算法 响应式原理v-for中的keynextTick comp…