项目概况
我将使用泰克多域示波器3104解码i²c数据,并通过顺序轮询所有地址并寻找确认(ack)信号来确定设备的i²c地址。任何i²c设备都可以。我收到了英飞凌3d霍尔效应传感器的评估套件,并将其用作我的i²c设备。
产品
成本(和产品链接)
其他资讯
infineon3d磁性传感器2 go套件
$ 28
套件手册 | 传感器手动 | 传感器产品简介
4位标题(0.100英寸)
$ 1
数据表
arduino uno r3
$ 15
产品信息
双向逻辑电平转换器
三块
数据表
跳线
三块
如上所述,这里可以接受任何与i²c兼容的传感器或显示器。您无需使用电磁传感器2 go套件。
设置电路
我使用的arduino板具有5v逻辑。3d2go评估套件由3.3 v供电。这意味着必须在arduino的数据线和评估套件之间插入双向逻辑电平转换器(bd-llc)。
要将bd-llc插入arduino和i²c设备之间,请进行以下连接:
从arduino到bd-llc上的gnd
bd-llc到3d2go上gnd的gnd
从arduino到bd-llc上的低压(lv)的3.3v
bd-llc上的lv至3d2go上的3.3v
bd-llc上的arduino 5v至高压(hv)
arduino sda转hv1
arduino scl转hv2
bd-llc lv1至3d2go sda
bd-llc lv2至3d2go scl
设置示波器
接下来,您需要设置示波器。为此,请按照下列步骤操作:
打开示波器,然后等待它完成自检。
将探头插入通道1和通道2。
将探头的接地夹连接到电路中的接地点(如有必要,请使用跨接线)。
将探头1连接到sda,将探头2连接到scl(如有必要,请使用跳线)。
现在,您可以打开arduino ide,并将以下代码上传到您的开发板上。这是一个i²c扫描器,它将扫描设备的所有地址并查找ack响应。
//i2c scanner from arduino.cc
//attribution to krodal, nick gammon, anonymous
#include
void setup()
{
wire.begin();
serial.begin(9600);
serial.println( i2c scanner);
}
void loop()
{
byte error, address;
int ndevices;
serial.println(scanning...);
ndevices = 0;
for(address = 1; address <= 127; address++)
{
// the i2c_scanner uses the return value of
// wire.endtransmission to seeif
// a device acknowledged the address.
wire.begintransmission(address);
error = wire.endtransmission();
if (error == 0)
{
serial.print(i2c device found at address 0x);
if (address<16)
serial.print(0);
serial.print(address,hex);
serial.println(!);
ndevices++;
}
else if (error==4)
{
serial.print(unknown error at address 0x);
if (address<16)
serial.print(0);
serial.println(address,hex);
}
}
if (ndevices == 0)
serial.println(no i2c devices found );
else
serial.println(done );
delay(5000); // wait 5 seconds for next scan
}
复制代码
现在,每5秒钟,arduino将轮询i²c地址1-127。如果在被查询的地址处存在设备,则将在发送地址字节后将sda线拉低,从而向arduino发送确认信号。
现在,我们可以继续使用示波器对i²c总线进行解码。
对于tektronix mdo3000或mdo4000系列示波器,请执行以下步骤,并在括号中使用通用说明。
按下通道1按钮(打开示波器通道1)
按“标签”(如果可以,请标记您的输入)
使用通用b向下滚动到“数据”(标签通道1为“数据”)
选择“插入预设标签”
使用“通道1”按钮下方的“垂直刻度旋钮” 设置每格2伏(减小信号的高度,使其占不到屏幕的一半)
使用channel 1按钮 上方的旋钮将信号移至屏幕的中上部分
按下“向下”箭头移至“通道2”(打开示波器通道2)
使用通用b向下滚动到“ clk”(标签通道2为“clock”)
选择“插入预设标签”
按菜单关闭按钮
按下频道2按钮
使用“通道2”按钮下方的旋钮设置每格2伏(减小信号的高度,使其不到屏幕的一半)
使用“通道2”按钮上方的旋钮将信号移到屏幕的下部中间(这将时钟信号的迹线与数据信号的迹线分开)
按下b1按钮(示波器的总线功能可让您解释和显示串行或并行数据;在这种情况下,我们正在处理i²c数据)
使用通用a在通道2上选择“ scl”(将clk通道分配为scl)
使用通用b在通道1上选择“ sda”(将data通道分配为sda)
使用通用a和通用b将sda和scl上的“阈值”设置为“ 1 v”
将“在地址中包含r / w”设置为“是”
将“ b1标签”设置为“ i2c”(以保持跟踪状态)
将“总线显示”设置为“总线和波形”
设置“十六进制”
按“总线b1”,然后使用通用a选择“ i2c”(告诉示波器需要哪种数据类型)
选择“定义输入”
按下触发菜单按钮
选择“公共汽车”
选择“源b1-i2c”
选择“开始时触发”
按菜单关闭
使用scale旋钮将时间刻度更改为1.00 ms
按single捕获单个波形
使用wave inspector旋钮放大要更仔细检查的i²c事务的任何部分。在我的情况下,在地址0x5e之后接收到一个ack,因为那是磁传感器芯片的地址。
以下视频引导您完成解码i²c总线所需的步骤。(在youtube,需要一定的上网工具支持)
解码i²c总线所需的步骤
如何将数据从示波器保存到计算机解码后的数据存储在事件表中。您可以将其保存到usb驱动器或计算机中。
由于插入usb驱动器是一个简单的例子,因此我们将通过远程控制示波器来做到这一点。以下步骤特定于microsoft windows以及tektronix mdo3000和mdo4000系列示波器。
附带说明,我们将要做的是潜在的数据安全风险。在工作之前,请与您的it部门联系。
我的计算机位于192.168.0.18,示波器位于192.168.0.40。对命令进行适当的调整。
以管理员身份运行cmd.exe并键入以下内容以创建共享:
mkdir c:示波器
net share scope = c: oscilloscope / remark:“ tek3104 data” / grant:domain user,full//这将在您的主硬盘上创建一个名为“ scope”的共享。您可以将其更改为所需的任何位置。确保将domain user更改为计算机连接到的域的名称,或将pc的名称更改为您用来登录windows的用户名。
ipconfig//注意本地连接ipv4地址。在我的示例中,它是192.168.0.18。
接下来,当仍在cmd.exe中时,使用putty或telnet连接到示波器:
telnet -o 192.168.0.40 4000//将192.168.0.40更改为您的示波器的ip,该ip在启动时显示在主屏幕上。
现在,您已通过默认端口4000上的ip地址连接到示波器。键入以下内容:
!d //清除设备。
files:mount:list?//这将显示所有已安装的驱动器。
files:mount:drive“ h:; 192.168.0.18; scope; user; pass;”//这会在机器上的192.168.0.18处创建一个持久驱动器。
files:mount:list?//这将导致出现一个新的驱动器。
files:mkdir“ h:/ newarticles”//在计算机上创建一个名为“ new articles”的目录。
files:cwd“ h:/ newarticles” //将焦点更改到该目录。
save:eventtable:b1“ eventtable.csv”//(最终)将数据保存到计算机。
结论
在不到15分钟的时间里,我们对i²c总线进行了解码,然后从整个房间将数据保存到计算机中进行分析。
现在已经建立了共享文件夹,以后的工作可以在几分钟之内完成。这种自动解码过程比仅探测信号并尝试手动解释逻辑电平要有效得多。
我使用了本文中显示的范围和过程来解码3d磁传感器2 go的几种不同模式的i²c总线数据,并确定哪些命令对应于哪些电源模式。
原文标题:如何在示波器上读取i2c总线
文章出处:【微信公众号:multisim】欢迎添加关注!文章转载请注明出处。
英伟达的新杀器:全球最大GPU性能提升10倍,售价39.9万美元
真假5G难辨 AT&T宣布5G正式商用
这样的求婚你能接受吗?国外小伙在VR游戏中求婚成功
全球智能手机Q3季度出货量排名公布,OPPO海外出货量接近五成
预测:今年TWS市场规模将达到1.20亿部,中国市场环比增长44%
使用泰克多域示波器3104解码I²C数据
台达PLC和HMI在油压车床上的应用
高温隧道炉是什么,它的优势都有哪些
法国数字部:已收到苹果iPhone 12的软件更新
航空货运已成为中国航空业中蓬勃发展的重大领域
光伏大事报:通威50亿项目签约,彭山电池设备进场;天合光能53亿项目;新选手豪掷60亿投……
日本“妻子”机器人被哄抢,不要房车不要彩礼
液晶电视的使用寿命大概有多长需要注意什么
ODCC推出25G ToR交换机,加速了25G网络的到来
英伟达和博世欲加盟DeepMap,助力其全球范围内的规模化部署
v锥流量计的安装说明
日本劳动力严重短缺 机器人或能解决难题
linux关机命令有哪些
飞利浦GreenPower开发LED植株间照明模组
OPPOR11什么时候上市?OPPOR11最新消息:拍照、续航再升级,集万千宠爱于一身