简介
非常感谢能够参加到论坛的 [我要给自己挣一部逻辑分析仪] 的活动, 非常感谢EEPW, 感谢管理员大大. 由于对这款逻辑分析仪心仪已久,于是在前一段时间双十一的时候趁着优惠下单了. (也正好可以给咱们论坛省一笔经费)
现在来简单的做一下开箱,下图为逻辑分析仪的正面照, 包装中一共有,逻辑分析仪, 逻辑分析仪特定的连接线, 和一些小夹子.
上图为逻辑分析仪的连接线和端点的小夹子, 这种夹子非常实用, 可以反方向插到杜邦线上,然后轻轻的按压便会出现一个小夹子,我们可以将这个小夹子夹到被测试的信号线上.
DSLogic basic 个人版本是支持16 通道, 最高100MBPS的采样率, 同时具有buffer 模式和stream模式,硬件内存为64M, 最小的采样脉宽为20ns. 通过上述的参数我们可以看到这款逻辑分析仪非常出色, 已经可以完全的满足了个人用户在实际开发中的对信号时序的分析工作.
在正式使用之前,我们需要在梦源实验室https://dreamsourcelab.cn/download/下载逻辑分析仪的上位机软件DSView.
我们可以在上文中根据自己的操作系统选择不同版本的上位机软件.我这里已经安装成功了. 接下来我们来学习一下如何使用它来采集BH1750的I2C协议, 并且和数据手册中的通信时序进行对比. 在测试的过程中我将逐渐介绍上位机的使用方式.
可以看到目前的BH1750 成功的将数据显示到了屏幕上,我们现在要做的是将测试线插到逻辑分析仪上, 同时将测试的夹子查到杜邦线内,
注意,在实际的测试中,一定要把逻辑分析仪和被测的设备共地, 否则的话被测信号会不稳定. 无法抓取到稳定的信号.
此时我们打开上位机软件DSView软件, 可以看到屏幕的左上角已经自动的识别了当前的逻辑分析仪DSLogic basic.
我们可以点击选项来设置我们逻辑分析仪所需要使用的通道.
可以看到,选择的通道数越多,那么带宽就越小.相反就越大. 由于我这里采集的是I2C信号, SCL 和SDA, 因此只需要两个通道就行. 我们在上面选择开启三个通道即最大采样率100M. 此时主界面的通道数剩下了三个.
我们可以通过修改采样的带宽和采样的时间, 需要注意的是, 带宽越大采样时间越少, 带宽越小,采样时间越大. 可以在下图看到,在最高100M下, 采样的时间为2.86分钟, 已经非常够用了!
我们这里不需要采样太长的时间, BH1750 是每秒刷新一次, 因此我们可以设置采样短一点时间. 我这里设置的使用100M采样10S, 并且点击开始按钮.
此时我们可以看到我们已经成功的抓到了BH1750的通讯数据, 接下来我们需要对这个数据进行解码.
我们需要做的是在主界面,点击解码, 然后搜索对应的通讯协议, 并且配置引脚为对应通讯协议的引脚.
此时可以看到逻辑分析仪已经成功的解析了通讯的数据. 我们拿数据和BH1750做一下对比.
代码中可以看到BH1750的I2C地址是0x23 ,为什么这里是0x47呢, 是因为I2C协议规定8bit最后一位为读写位, 因此我们只需要将0x47向右进行位运算, 右移动一位,即可得到I2C的地址为0x23. 可以看到数据无误.
可以在上图中看到,测试出来的数据通讯的第二个Byte为0xb1, 并且代码中初始化的测量方式为连续测量和高分辨率模式,
我们首先将0xb1 转换成10进制为177, 然后根据BH1750官方文档中除以BH1750的转换因子1.2 得到结果约等为 147.5 lux.
同时由于我们使用的分辨率为高分辨率模式, 因此需要把结果再进行除2,便可以得到最终的结果 147.5 / 2 ~=73.75lux
可以在上图看到结果, 丝毫无误!
总结
非常感谢EEPW的换逻辑分析仪活动, 祝EEPW越办越好!!!