前言
逻辑分析仪对于嵌入式开发工程师尤其是驱动开发工程师来说是必不可少的工具, 逻辑分析仪的两大功能:信号抓取,协议分析必不可少,前者以来硬件,后者依赖软件。当然方便灵活的触发,体验好的GUI,方便的测量工具,等辅助功能也是评价其好坏的标准,性能方面通道数,采样率,支持触发电平, 滤波,存储容量,传输速率等都是高端与低端区别最主要的指标。尤其对于高性能越到最后提高一点性能,成本就高很多,技术要求也高很多,国产高端分析仪不多。
对于底层数字信号,没有逻辑分析去抓包,将无法进行分析调试, 没有协议分析功能靠人工解析将是噩梦,所以逻辑分析仪必不可少。本篇以Acute TravelLogic Analyzer 这个分析仪为例进行一个SPI NAND驱动开发调试实际使用分享。
简介
这个逻辑分析仪资料可以去官网查看https://www.acute.com.tw/logic-analyzer-en/product/logic-analyzer/travellogic
我这里型号是TL4234B
基本参数是
34通道,2GHz采样率,8Gb存储
支持的协议如下: Bus Trigger I : BiSS-C, CAN2.0B/CAN FD, DP_Aux, HID over I2C, I2C, I2S, LIN2.2, MIPI I3C 1.1, SPI, UART (RS232), USB PD 3.0
Bus Trigger II : DALI, LPC, Mini/Micro LED, PMBus, Profibus, SMBus, SVI2, USB1.1, ...
Bus Trigger III : eMMC 4.5, eSPI, MII, RGMII, RMII, NAND Flash, SD 3.0 (SDIO 2.0), ...
Protocol Analyzer I : BiSS-C, CAN2.0B/CAN FD, DP_Aux, HID over I2C, I2C, I2S, LIN2.2, MIPI I3C 1.1, SPI, UART (RS232), USB PD 3.0
Protocol Analyzer II : DALI, Mini/Micro LED, Profibus, SMBus, USB1.1, ...
Protocol Analyzer III : eSPI, MII, RGMII, RMII, ...
Bus Decode : CAN 2.0B/CAN FD, DP_Aux, eMMC 4.5, eSPI, I2C, I2S, MIPI DSI LP, MIPI I3C 1.1, NAND Flash, Profibus, SD 3.0 (SDIO 2.0), SPI, UART (RS232), ... 100+
可以说是非常强大了,尤其是其支持的协议众多能满足大部分开发场景使用了。
实例
接线
接线如下,使用逻辑分析仪Acute TravelLogic Analyzer 的通道0~5分别接,NAND的
IO3,CLK,SI,CS,SO,IO2
逻辑分析仪设置
双击桌面图标Acute TravelLogic Analyzer (x64)打开软件
如果提示C盘空间不够可以选择一个空闲空间足够的盘
选择逻辑分析仪模式
配置信号
左下角添加信号,这里默认有4个,我们需要6个再添加2个
点击信号标签修改名字,6个都一一修改
还可以修改颜色,数值显示类型,信号反转(即1变为0,0变为1)
默认选择信号模式,可以下拉选择对应的通道,两个总线选项后面再说。
设置采样率
我们这里设置为1nS,即1GHz,我们的CLK频率是80M,周期是12.5nS,
50%占空比的话,低电平和高电平有6.25个采样点,也足够了。
一般一个周期有10个采样点,一个低电平和高电平分别是5个采样点左右就够了。
当然可以设置更大的采样率,这样采样同样的时间就需要更多的存储。
设置存储
如果抓取时间不长,分析仪内部内存足够存储则可以优先选择存储到分析仪内存,这样采集完再传输到电脑,不会丢数。
如果抓取时间很长,分析仪内部内存不够存储则可以优先选择存储到电脑内存,甚至是电脑硬盘,这样会边记录边上传的电脑,受限于USB的传输速率,如果传输速率低,来不及传输则会丢数。
下面滑条选择存储大小,下面会自动计算对应的存储时间,选择合适的即可,通道选择大于实际使用的通道。
触发点位置是指的整个记录,触发点位于哪个位置,设置为50%则触发点再中间,触发点前一半后一半都存储。我们如果不关心触发点前的数据则可以设置为<1,这样从触发点开始记录,触发点前的数据不记录。
设置电压门限
我们这里设置为1.8V电压等级,则0.9V为阈值
还可以根据实际情况使能斯密特触发。
触发设置
这里选择CS的边沿作为触发,其他更复杂的触发条件也可以去使用
滤波
对于高速总线,探针等都会引入串扰,会导致一些很窄的脉冲产生。可以硬件和软件结合过滤。
硬件过滤智能设置2的指数倍,我们的脉宽是6.25,所以设置硬件过滤为<4nS
软件过滤任意设置
通道1是CLK我们不过滤,因为其是CS使能时一直驱动的信号,也不容易受干扰,其他信号都比CLK慢,且很多时候是高阻态容易收到干扰,所以其他通道过滤可以设置比较大点设置为小于6个采样点即6nS过滤掉。如果使能CLK过滤,6可能在临界段CLK可能被过滤。
如下是使能过滤的很干净
如下是不过滤的很多毛刺
采集
点击采集按钮,采集到指定长度停止
协议解析
点击信号,选择总线分析的SPI Nand
设置引脚对应关系,选择芯片型号
就可以看到解析结果了
保存数据
选择档案,全部保存,保存到指定路径,下次就可以直接打开了
使用上一次配置
每次都重新配置很麻烦,可以直接使用上次的配置,这样出来就是上次的配置无需修改。
总结
以上可以看到使用逻辑分析仪可以实时抓取总线信号,并进行协议分析,任何蛛丝马迹都无处遁形,当然高端的分析仪用起来很爽但是也确实是贵,希望国产能跟上提高性价比。当然很多时候对于低速接口比如UART,IIC等使用几十块钱的就足够。工欲善其事必先利其器,所以有一个趁手的调试工具是非常重要的。
相关文章