是德科技
直播中

周莹

8年用户 201经验值
私信 关注
[问答]

如何使用MSO9104A解码SPI等协议?

嗨,我正在使用MSO9104A。
我想解码一个非标准的SPI协议(如SPI,但不是)。
有MISO,MOSI和CLK(无芯片选择)。
我尝试了14天的SPI选项跟踪。
我的设置如下:4线SPI;
MISO - 通道2 MOSI - 通道3 CLK - 通道1片选 - 通道4(我尝试将其接地并设置为“低电平有效”;我也尝试将其置为5V并设置为“高电平有效”)自动设置;
触发:串行:通道3(我想选择CLK通道作为触发,但唯一的选项是通道MISO和MOSI。)触发(另一次尝试):边沿:通道1 - CLK;
下降;
其他人是默认的。
我总是得到这样的信息 - “无法解码。没有足够的优势。”
我只需要弄清楚如何基于CLK解码MOSI和MOSI。
例如,我可以手动解码一些。
当CLK有效时,计算MISO的电平,例如“高低低高低低低低”(101010000)箱=(A0)十六进制。
然后,将8位二进制值转换为十六进制。
如何使用安捷伦示波器来做到这一点?
非常感谢。

以上来自于谷歌翻译


     以下为原文

  Hi, I am using MSO9104A. I want to decode a non-standard SPI protocol (like SPI, but not). There are MISO, MOSI and CLK (no Chip Select).   

I tried 14-days SPI option trail. My settings are as follow:  
4 wire SPI;  
MISO - Channel 2
MOSI - Channel 3
CLK   - Channel 1
Chip Select  - Channel 4 (I tried ground it and set "active low"; also I tried give it 5V and set "active high")
Auto Setup;
Trigger: Serial: Channel 3 (I want to select CLK channel as Trigger, but the only options are channel MISO and MOSI.)
Trigger (another try): Edge: Channel 1 - CLK; falling;

others are default.

I always got the message - "can't decode. not enough edge."

I just need to figure out how to decode MOSI and MOSI based on the CLK.

For example, I can decode some by hand. When CLK is active, count the level of MISO such as "high low high low low low low low" (101010000)bin=(A0)hex. Then, convert 8 bit binary value to hex.

How to use agilent oscilloscope to do this?

Thanks a lot.  

回帖(8)

周菊

2019-4-12 11:15:48
据我所知,对于4线SPI,你需要有一个真正的芯片选择(一个有效和无效),否则解码器无法判断实际数据传输何时开始。
但是,我可能错了。
正确选择通道后,如果有数据正在运行,请单击“自动设置”。
范围应该自己解决所有其他问题,包括时间,阈值等。你试过吗?
如果它说你没有足够的边缘,那么深度不够高,或者阈值设置不正确。


以上来自于谷歌翻译


     以下为原文

  As far as I know, for 4 wire SPI, you need to have a real chip select (one that goes active and inactive), otherwise the decoder can't tell when the actual data transfer starts. I may be wrong, however.

Once you have chosen the channels correctly, if you have data running, then click 'Auto Setup'. The scope should figure out everything else out on its own, including timing, thresholds, etc. Have you tried that?

If it says you don't have enough edges, then either the depth isn't high enough, or the thresholds aren't set right.

Al
举报

周莹

2019-4-12 11:27:39
引用: nvywyerwer 发表于 2019-4-12 11:15
据我所知,对于4线SPI,你需要有一个真正的芯片选择(一个有效和无效),否则解码器无法判断实际数据传输何时开始。
但是,我可能错了。
正确选择通道后,如果有数据正在运行,请单击“自动设置”。

我的设备没有芯片选择。
有一个主设备和一个药剂设备。
它们之间的电子连接只是MISO,MOSI,CLK,VDD和GND。
我尝试使用VDD作为芯片选择(高电平有效)。
它总是说“不能执行串行解码;没有足够的边缘”。
我有几次解码显示,但结果是错误的(解码不是指时钟)。
我正在寻找一种有效且可靠的方法来解码非标准SPI的串行信号。

以上来自于谷歌翻译


     以下为原文

  My device doesn't have chip select. There are a master device and a salve device. The electronic connections between them are just MISO, MOSI, CLK, VDD and GND. I tried use VDD as chip select(active high). It always says "can't perform serial decode; not enough edges". I have a couple times that the decode displays, but the result is wrong (the decode is not referring to the clock).

I am seeking a efficient and reliable way to decode the serial signal that is non-standard SPI.
举报

周菊

2019-4-12 11:34:38
引用: vmmjuwy 发表于 2019-4-12 11:27
我的设备没有芯片选择。
有一个主设备和一个药剂设备。
它们之间的电子连接只是MISO,MOSI,CLK,VDD和GND。

由于您使用的是非标准SPI,因此可能无法按照您的要求进行操作,但您可以尝试使用。
如果这不起作用,则此范围没有解决方案。
要执行以下操作,您将需要当前范围SW,或至少3.20或更高版本。
如果你没有这个,你将需要从这里更新SW:[http://www.agilent.com/find/scope-apps-sw]您可以将您的链接视为2个2线SPI链接
,有独立的时钟。
将2个通道连接到时钟线,1个通道连接到MOSI,1个通道连接到MISO。
现在分别设置每个链接。
如果它工作,你应该最终得到2个SPI解码列。
每个方向的配置,因为给定的通道只能使用一次。
祝你好运。


以上来自于谷歌翻译


     以下为原文

  Since you are using non-standard SPI it may not be possible to do what you want, but there is something you can try. If this doesn't work, there is no solution with this scope.

To do the following, you will need current scope SW, or at least version 3.20 or later. If you don't have that, you will need to update with SW from here:  [http://www.agilent.com/find/scope-apps-sw] 

You could think of your link as 2 2-wire SPI links, with separate clocks. Connect 2 channels to the clock line, 1 channel to MOSI and 1 channel to MISO. Now go through and set up each link separately. If it works, the you should end up with 2 SPI decode columns. The configuration for each direction, since a given channel can only be used once.

Good Luck.

Al
举报

周莹

2019-4-12 11:53:26
引用: nvywyerwer 发表于 2019-4-12 11:34
由于您使用的是非标准SPI,因此可能无法按照您的要求进行操作,但您可以尝试使用。
如果这不起作用,则此范围没有解决方案。
要执行以下操作,您将需要当前范围SW,或至少3.20或更高版本。

我试过2线SPI,但我不知道如何设置时钟超时和字大小。
默认设置不起作用(仍然无法解码;边缘不够)。
当我将时钟超时更改为接近时钟周期和字大小= 8(我的串行通信为8位)的13 us时,它似乎显示正确的解码。
但是,如何运行两个2线SPI解码来比较MISO和MOSI?
非常感谢。
你做了很棒的故障排除。编辑:jenaflex于2012年6月21日下午2:53

以上来自于谷歌翻译


     以下为原文

  I tried 2 wire SPI, but I don't know how to set the clock timeout and word size. The default setting doesn't work(still cannot decode; not enough edges). When I change clock timeout to 13 us that is close to the period of clock and word size=8 (my serial communication is 8 bit), it seems shows the correct decode. However, how can I run two 2-wire-SPI decode to compare the MISO and MOSI?

Thanks a lot. You did awesome troubleshooting.

Edited by: jenaflex on Jun 21, 2012 2:53 PM
举报

更多回帖

发帖
×
20
完善资料,
赚取积分