用 Saleae Logic 16 示波器测量并分析 I2C、SPI、串口的信号

2023-05-16

文章目录

    • 一、安装Saleae Logic 16软件
    • 二、Saleae Logic 16简单介绍
      • 1.Saleae Logic 16 逻辑分析仪
      • 2.Saleae Logic 16软件
    • 三、三个实例
      • 1.I2C信号
      • 2.SPI信号
      • 3.串口信号
    • 四、总结
    • 五、参考资料

一、安装Saleae Logic 16软件

这里安装的是1.1.34的版本,不同版本的用户体验不同,按照自己的具体情况选择版本。点开Logic+Setup+1.1.34.exe,一路选择Next,改变安装路径。
在这里插入图片描述
点击Finish就安装完成了。
在这里插入图片描述
在安装软件的同时,驱动程序已经被注册到系统了了,当插入 SALEAE 16 逻辑分析仪后就可以自动安装安装驱动

二、Saleae Logic 16简单介绍

1.Saleae Logic 16 逻辑分析仪

逻辑分析仪是一种类似于示波器的波形测试设备,它通过采集指定的信号,并通过图形或者数据统计化的方式展示给开发人员,开发人员通过这些图形化时序信号按照协议来分析并迅速定位硬件或者软件中的错误,比如在分析1wire、I2C、UART、SPI、CAN 等数据的时候,应用逻辑分析仪解决问题非常快速。
在这里插入图片描述

2.Saleae Logic 16软件

软件界面基本是左中右的布局,左边主要是采集和显示设置,右边是分析和解析设置,中间是波形显示区域。
在这里插入图片描述
点击下图所示图标设置通道数,采样率是被采集信号频率的 4 倍或者以上,由于 Saleae Logic采用了动态复用的数据处理技术,

占用的 USB 总带宽=采样率x采样通道数

对于不需要采集的通道可以屏蔽掉,这样还能提高采样频率,其中灰色的是要使用的通道,白色的被屏蔽的通道
在这里插入图片描述
在设置了不同通道之后,最高的采样率也对应变化,所以要设置采集通道,之后才设置采样速率的原因。采集时间的单位可以选择秒 SECONDS 、毫秒MILLISECONDS 和采样数 SAMPLES(采样深度),一般设置成秒。

采样深度:就是总共要采集多少数据,如
25 M Samples 标示每路都采集 25MBIT 。

Saleae Logic 16 逻辑分析仪可以设置的采集时间非常长,因为触发后采集到的数据将实时传输给电脑,利用电脑的内存进行压缩存储和处理。

在这里插入图片描述
触发就是采集开始的条件,有4种模式可以选择。当要着重观察某一通道的信号时,可以设置这一路有不同的宽度,用鼠标的左键点图形将实现 ZOOM IN 放大,右键是 ZOOM OUT 缩小。
在这里插入图片描述
点击Annotations隔壁的+号,可以设置不同的注释标签,点击MEASUREMENT,选择其中一个,将鼠标移动到波形显示窗口的要进行测量统计的通道,左击分别开头和结尾,可以统计某通道在这一片段内的频率特征。
在这里插入图片描述
Saleae Logic 16 逻辑分析仪支持 18 种串行通讯协议,还提供了列表的方式显示解析内容。点击其中的某一条目,软件自动定位到波形,而且协议分析完毕后可以点击协议旁的设置键选择Export as tset/csv file保存成文本文件或基于文本文件的电子表格便于分析。
在这里插入图片描述
Display Radix栏还可以设置解析出来的数据的显示进制。

ASCII : 以 ASCII 方式显示,就是字符方式。
HEX: 以 16 进制方式显示。
DEC: 以 10 进制方式显示。
BIN: 以 2 进制方式显示。

三、三个实例

软件支持脱机模拟采集,由于手头没有硬件,我们设置不同的协议和相应的解析参数来分析I2C、SPI、串口的模拟信号。

关于I2C、SPI和串口的工作时序可以去我前面的几篇博客详细了解。
STM32的USART串口通信
基于I2C协议的AHT20温湿度传感器的数据采集(串口输出)
基于STM32的OLED屏显实例

1.I2C信号

SDA引脚时序波形图
在这里插入图片描述
此处为单字节写入方式,首先发送起始信号,然后发送设备地址,高位在前,从机发出ACK信号给主机。再发送要操作的EEPROM地址0x12,即是要写数据到的地址,接着发送要写入的数据,NAK是非应答信号,主机接收从机应答信号ACK。最后发送stop信号,通信结束。

电子表格的部分内容
在这里插入图片描述

2.SPI信号

MOSI、MISO、CS、SCLK引脚时序波形图
在这里插入图片描述
CS引脚拉低使能后,再发送读取指令和24bit也即是3字节地址数据,然后向数据寄存器写入了要发送的数据,到了SCK的第一个时钟周期的上升沿后数据由MISO引脚输出。

3.串口信号

TXD引脚时序波形图
在这里插入图片描述
开始是数据起始位,中间8bit数据位,最后一字节停止位。分别点击A1A2,拖动鼠标使得两者之间间隔一个比特。设置的串口通信波特率为115200,一个比特的时间是1/115200 = 8.68us,实际上一个比特的时间=8.6us,存在细微误差。

四、总结

由于没有硬件在手,这次检测的信号是根据所选协议模拟出来的信号,但不得不说Saleae Logic 16软件的数据解析功能真的很方便,通过对这些图形化的时序波形的观察,能迅速定位到实际中软件或硬件的错误。

五、参考资料

逻辑分析仪的简单使用介绍
Saleae Logic 16安装文件及上手指南
提取码:650v

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用 Saleae Logic 16 示波器测量并分析 I2C、SPI、串口的信号 的相关文章

  • QT5.14串口调试助手:上位机接收数据解析数据帧+多通道波形显示+数据保存为csv文件

    由于业务需要 xff0c 在上个月做了一个关于qt的设计 xff0c 在设计中主要需要解决的问题就是接收单片机采集到的数据并在上位机将数字实时的通过波形显示出来 xff0c 然后上位机要有保存下数据文件的功能 xff0c 便于后续的软件读取
  • 如何使用Cmake编译

    目录 一 Cmake是一种跨平台编译工具 二 CMake说明 三 编写CMakeList txt 四 使用 cmake 一 Cmake是一种跨平台编译工具 比make更高级 xff0c 使用起来要方便得多 CMake主要是编写CMakeLi
  • 51单片机串口通信篇

    串行通信 基本介绍波特率通信校验内部结构 并行通信串行通信串行通信方式同步通信异步通信 串行口的控制寄存器SCON寄存器PCON寄存器中断源及优先级 串口通信配置步骤 相关程序简单例程1简单例程2 基本介绍 单片机通信是指单片机和单片机 或
  • 0基础学会 UDP通信(内附C语言源码)

    include lt sys types h gt include lt sys socket h gt ssize t sendto int socketfd const void buf size t len int flags con
  • C++ --头文件和类的声明

    函数 function 是为了处理数据 数据的实质就是变量 xff08 variables xff09 C是所有的函数都可以去处理任意声明的变量 C 43 43 面向对象的编程思想就是 把函数名和变量名封装起来 xff08 也就是类 xff
  • gcc编译可执行文件和cmake编译可执行文件

    gcc编译 gcc的下载 xff08 下载mingw xff0c 里面包含gcc xff09 下载安装MinGW w64详细步骤 xff08 c c 43 43 的编译器gcc的windows版 xff0c win10真实可用 xff09
  • 常用传感器讲解十九--超声波感器(HC-SR04)

    常用传感器讲解十九 超声波感器 xff08 HC SR04 xff09 具体讲解 HC SR04超声波距离传感器的核心是两个超声波传感器 一个用作发射器 xff0c 将电信号转换为40 KHz超声波脉冲 接收器监听发送的脉冲 如果接收到它们
  • C++中vector作为参数的三种传参方式(传值 && 传引用 && 传指针)

    c 43 43 中常用的vector容器作为参数时 xff0c 有三种传参方式 xff0c 分别如下 xff1a function1 vector vec xff0c 传值 function2 vector amp vec xff0c 传引
  • 斯坦福机器狗的介绍

    添加链接描述 斯坦福机器狗的介绍 Stanford Doggo 现在已经能完成走路 慢跑 跳舞 跳跃等动作 xff0c 偶尔还能表演一下后空翻 机械结构组成 同轴机制 同轴机制 xff08 coaxial mechanism xff09 会
  • 基于ROS的车道线检测项目记录

    2020 09 06 任务 xff1a 传统OpenCV方法ROS版本改造 选取大神陈光的高级车道线检测方法进行改造 xff0c 总体逻辑是 xff1a 第一 创建订阅者 xff0c 接收摄像头发布的数据 xff0c 用cv bridge将
  • ACEINNA发布用于自动驾驶汽车的IMU330RA

    IMU技术是自动驾驶汽车中ADAS导航系统和安全系统的关键构成部分 常规环境下 xff0c 感知传感器 xff08 激光雷达 摄像头 雷达 里程计等 xff09 用来确保车辆行驶在正确的路径上 但是 xff0c 如果感知传感器由于车辆位置或
  • 无刷电机与odrive

    无刷电机 无刷电机的优点 能获得更好的扭矩转速特性高速动态响应高效率长寿命低噪声高转速 无刷电机的简介 无刷直流电机由电动机主体和驱动器组成 xff0c 是一种典型的机电一体化产品 由于无刷直流电动机是以自控式运行的 xff0c 所以不会像
  • 无刷舵机 数字舵机 模拟舵机

    舵机 1 无刷舵机 xff1a 由 xff1a 电机 减速齿轮组 反馈电位器 控制电路构成 主电机可以使用无刷电机 xff0c 减少磨损延长使用寿命 模拟舵机需要给它不停的发送PWM信号 xff0c 才能让它保持在规定的位置或者让它按照某个
  • PCA9685如何通过iic协议控制多个舵机

    iic协议 即I2C xff0c 一种总线结构 能够有效减少芯片管脚和线路连接的数量 例如 内存中的SPD信息 通过IIC xff0c 与BX芯片组联系 xff0c IIC 存在于英特尔PIIX4结构体系中 随着大规模集成电路技术的发展 x
  • 无人机电池模块

    3 电池模块 xff1a 1 xff1a 电池的多少mah什么意思 xff1f 表示电池容量 xff0c 如5200mah电池 xff0c 表示以5 2A的电流放电 xff0c 可持续放电1小时 但是 xff0c 实际的放电时间还是要参考厂
  • 每日漏洞 | 跨站请求伪造

    01 漏洞描述 HTTP的无状态性 xff0c 导致Web应用程序必须使用会话机制来识别用户 一旦与Web站点建立连接 访问 登录 xff0c 用户通常会分配到一个Cookie xff0c 随后的请求 xff0c 都会带上这个Cookie
  • 每日漏洞 | rsync未授权访问

    01 漏洞描述 rsync是Linux Unix下的一个远程数据同步工具 xff0c 可通过LAN WAN快速同步多台主机间的文件和目录 xff0c 默认运行在873端口 由于配置不当 xff0c 导致任何人可未授权访问rsync xff0
  • 每日漏洞 | 不安全的HTTP方法

    01 漏洞描述 HTTP HTTP报文 中介绍了HTTP的请求方法 在这些方法中 xff0c HTTP定义了一组被称为安全方法的方法 xff1a GET HEAD OPTIONS TRACE xff0c 这些方法不会产生什么动作 xff0c
  • 每日漏洞 | Host头攻击

    01 漏洞描述 HTTP HTTP报文 最后一节 xff0c 简单的介绍了一下首部字段 xff0c 其中就包含了Host首部字段 为了方便获取网站域名 xff0c 开发人员一般依赖于请求包中的Host首部字段 例如 xff0c 在php里用
  • 每日漏洞 | HTTP.sys远程代码执行

    01 漏洞描述 上篇文章介绍了Host头攻击 xff0c 今天我们讲一讲HTTP sys远程代码执行漏洞 HTTP sys是Microsoft Windows处理HTTP请求的内核驱动程序 xff0c 为了优化IIS服务器性能 xff0c

随机推荐

  • miivii域控制器(Xavier)实现TensorRT加速后的Ultra-Fast-Lane-Detection项目

    TRT ONNX2是神力模型转换工具链 鸡汤哥知乎金天 一 配置TRT ONNX2 1 安装依赖 xff08 2020 09 30更新 xff09 昨天刷了JetPack4 4 xff0c 很好用 xff01 只需要下载编译thor即可 x
  • 每日漏洞 | CRLF注入

    01 漏洞描述 在 HTTP HTTP报文 一文中 xff0c 我们介绍了HTTP报文的结构 xff1a 状态行和首部中的每行以CRLF结束 xff0c 首部与主体之间由一空行分隔 或者理解为首部最后一个字段有两个CRLF xff0c 首部
  • PTES-情报搜集

    01 概述 在 PTES 渗透测试执行标准 中介绍了渗透测试的一般流程 xff0c 其中简要介绍了情报搜集的目标 情报搜集的目标是尽可能多的收集渗透对象的信息 网络拓扑 系统配置 安全防御措施等 xff0c 在此阶段收集的信息越多 xff0
  • 每日命令 | ls

    01 每日命令系列导语 安全行业 xff0c 接触Linux不可避免 今天我们开启Linux学习之旅 一直在构思Linux系列文章该怎么排版 xff0c 最终决定采用每日命令的形式 xff0c 毕竟Linux有大量的命令需要学习 每日命令系
  • c51单片机(预备知识)

    1 什么是单片机 单片机又称单片微控制器 它不是完成某一个逻辑功能的芯片 而是把一个计算机系统集成到一个芯片上 相当于一个微型的计算机 xff0c 和计算机相比 xff0c 单片机只缺少了I O设备 xff08 小键盘 LED显示器 xff
  • 一级指针和二级指针的传参问题(学习笔记)

    一 指针 一级指针 xff1a 是一个指针变量 xff0c 指向一个普通变量 xff0c 并保存该普通变量的地址 二级指针 xff1a 是一个指针变量 xff0c 指向一个一级指针 xff0c 并保存该一级指针的地址 二 一级指针的引用 2
  • UDP广播的实现

    一 广播的概念 广播 xff1a 由一台主机向该主机所在子网内的所有主机发送数据的方式 任何一个网段最后一个地址就是广播的地址 例如 xff1a 192 168 5 103主机发送广播信息 xff0c 那么 xff0c 广播地址为192 1
  • 必备模块知识——继电器

    一 继电器的概念 1 1 什么是继电器 继电器是一种电控制器件 xff0c 是当输入量的变化达到规定要求时 xff0c 在电气输出电路中使被控量发生预定的阶跃变化的一种电器 继电器具有控制系统和被控制系统 xff0c 通常应用于自动化的控制
  • 必备模块知识——超声波传感器

    一 超声波传感器 1 什么是超声波 人们能听到声音是由于物体振动产生的 xff0c 它的频率在20HZ 20KHZ范围内 xff0c 超过20KHZ称为超声波 xff0c 低于20HZ的称为次声波 常用的超声波频率为几十KHZ 几十MHZ
  • typedef的用法——c语言

    一 ypedef 1 1 xff1a typedef的用法 xff08 如上图所示 xff09 typedef 用法一句话总结 把定义的类型改名 举个例子 xff1a 我们熟悉的int类型 定义一个变量 xff0c 如int a xff1b
  • shell的测试语句

    一 shell的条件测试语句 在写shell脚本时 xff0c 经常遇到的问题就是判断字符串是否相等 xff0c 可能还要检查文件状态或进 行数字测试 xff0c 只有这些测试完成才能做下一步动作 1 1 shell脚本中的条件测试如下 x
  • 在miivii域控制器(基于Xavier)上复现Ultra-Fast-Lane-Detection源论文项目

    源项目链接 一 安装 参考源项目安装教程 xff0c 个别步骤有改动 xff1a 1 我没有安装Anaconda xff0c 所以跳过步骤2 2 步骤3中安装pythorch torchvision的血泪史 xff1a 网上看了很多下载py
  • shell的控制语句(3)

    shell脚本与我们所用的c语言控制语句 xff0c 是存在一些差异的 xff0c 因此 xff0c 我们需要重新认识并且学会它们 因此 xff0c 接下来 xff0c 我会介绍常用的流程控制语句 如 xff1a if for while
  • shell的函数

    一 shell函数 有些脚本段间互相重复 xff0c 如果能只写一次代码块而在任何地方都能引用那就提高了代码的可重用性 shell 允许将一组命令集或语句形成一个可用块 xff0c 这些块称为 shell 函数 二 shell函数的格式 2
  • Visual Studio 2015(C#)编写实现TCP调试助手(服务端+客户端一体)-新手

    近期在做项目的时候运用到了WIFI模块 xff0c 想着自己捣鼓捣鼓弄个上位机调试调试 初次接触 xff0c 长达3天的修修改改终于完成 xff0c 实现代码比较杂乱 xff0c 但是可以正常使用 不足之处 xff0c 还望指正 xff01
  • IDEA This is not a valid Java qualified name问题解决

    今天在创建类的时候突然出现这样的一个错误 This is not a valid Java qualified name 出现这个错误的主要原因是因为类名出现了空格 我是在类名前有一个空格
  • 双系统ubuntu18.04如何更新到22.04

    将双系统中的Ubuntu 18 04更新到22 04 xff0c 按照以下步骤操作 xff1a 1 打开终端并更新系统 xff0c 使用以下命令 xff1a span class token function sudo span span
  • 如何查看自己的ubuntu系统的镜像源,并且换源

    1 查看自己的Ubuntu系统当前使用的镜像源 xff1a 1 打开终端 xff1a 按下Ctrl 43 Alt 43 T xff0c 或者在菜单中搜索 终端 2 输入以下命令并按Enter键 xff1a span class token
  • QT项目2048游戏(C++)(附流程图、源码)

    在学校学完C语言后用easyX图形库写了一个2048游戏 xff0c 在大概学完C 43 43 后用QT改进了一下的2048游戏 游戏框图 流程图 开始界面 游戏中的界面 游戏结束界面 改进之处 1 添加了背景音乐 2 添加了结束游戏后重新
  • 用 Saleae Logic 16 示波器测量并分析 I2C、SPI、串口的信号

    文章目录 一 安装Saleae Logic 16软件二 Saleae Logic 16简单介绍1 Saleae Logic 16 逻辑分析仪2 Saleae Logic 16软件 三 三个实例1 I2C信号2 SPI信号3 串口信号 四 总