WhyCan Forum(哇酷开发者社区)

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132, 微信: whycan_cn (哇酷网/挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2020-02-28 15:01:51

metro
会员
注册时间: 2019-03-09
累计积分: 206

逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

免责声明
下文中的所有内容仅供学习和研究之用,对由此造成的损坏、保修等问题概不负责,如有侵权请删除本帖,谢谢。

DSLogic是一个便携式的逻辑分析仪,功能够用,价格还算便宜。DSLogic分为Basic和Plus两个版本(现在似乎有新版了),两者在硬件上仅有SDRAM缓冲和屏蔽线的区别。通过一些硬件上的改造,可以将Basic升级为Plus。

注:下文内容在我的Basic上验证成功,对于新版U2 Basic是否修改硬件并不清楚,如有成功经验欢迎分享。

首先,还是要将SDRAM焊到板子上。官方用的SDRAM似乎有多个版本(例如Alliance AS4C16M16SA-7TCN,见DreamSourceLab DSLogic Plus),我自己用的是H57V2562GTR-75C,已经正常使用一年半了,应该133 MHz及以上频率、16-bit的SDRAM都可以用。
DSLogic Plus PCB Front
这里我们需要Plus对应的固件,好在DSView是开源软件,我们可以在GitHub上找到历史版本:DSLogicPlus.fw,下载下来备用。
接下来就该烧写固件了。我把相关操作都写好代码放到GitHub上了,地址在metro94/fx2_tools。需要安装Python 3.x及PyUSB。

现在,可以根据需要选择以下操作:

临时修改固件:
只需使用firmware_run.py即可,执行命令python firmware_run.py DSLogicPlus.fw,等待写入完成即可。之后,硬件应该自动重新枚举,可以在DSView中看到设备名称已经变为DSLogic Plus。由于固件存储在RAM上,重启后会丢失。

永久修改固件:
这一操作需要将固件烧录到EEPROM上。首先,由于EEPROM的固件存储格式是封装过的(FX2的特性),因此需要将DSLogicPlus.fw文件封装为iic格式(C2 format),firmware_mkimage.py可以用来做这个事情。命令如下:python firmware_mkimage.py DSLogicPlus.fw DSLogicPlus.iic
由于EEPROM的WC引脚默认接高电平,此时忽略写入,因此需要临时将WC引脚接地,如下图所示。
(小提示:可以直接用信号线中的黑色线(地线),接到引脚后另一头通过测试夹短接采样端口。)
DSLogic EERPOM
之后,运行命令python firmware_download.py DSLogicPlus.iic。由于EEPROM的写入较慢,需要多等待一段时间,直到执行完成,之后根据提示重新插拔即可。

经过上述步骤,应该就可以搞定升级过程了。后面会解释这样做的原理。

最近编辑记录 metro (2020-02-28 17:24:11)

离线

#2 2020-02-28 17:08:01

metro
会员
注册时间: 2019-03-09
累计积分: 206

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

下面解释一下为什么上述操作可以修改固件。其实这是因为Cypress FX2系列USB单片机内置了Firmware Load请求。该命令属于Vendor Request,并且是在硬件层面就实现的功能,因此就算固件没有进行相关编码也可以用。(所以某种程度上来说FX2没办法加密固件,毕竟可以绕过固件直接读写RAM的内容。)
fx2-firmware-load.png
可以看到,FX2支持Firmware Download(从PC到FX2)和Firmware Upload(从FX2到PC)。特别地,Firmware Download的过程需要在Reset状态下完成(毕竟固件都要被覆盖了)。所以下载固件时的正确操作如下:

  1. 使用Firmware Download往CPUCS中的8051RES位写1,以复位FX2的CPU(USB部分不受影响)。这等价于往0xE600寄存器里写1。

  2. 使用Firmware Download往RAM区域(0x0-0x4000)写代码。由于FX2的代码和数据共用一条总线,因此向RAM写入的数据可被执行。另外,写入的时候似乎有大小限制,每次最多可以写0x1000字节。

  3. 使用Firmware Download往CPUCS中的8051RES位写0,以取消对FX2 CPU的复位。这等价于往0xE600寄存器里写0。

当然,上面说的是下载固件到RAM,要下载到EEPROM就会麻烦些。由于Firmware Load不能直接操作EEPROM,因此需要借助下载的固件来实现这个功能(类似于bootloader)。另外,EEPROM的固件并不是源程序,而是经过了打包,这在参考手册中被称作是C2 Format,打包后的文件后缀是.iic格式。C2 Format的结构如下图所示。
fx2-c2-format.png
言归正传,这个bootloader要怎么做呢?在FX2的官方例程中,我发现了一个名为Vend_Ax的程序,该程序就能完美实现我需要的功能。具体代码见这里:Vend_ax.zip
因此,下载到EEPROM的过程如下:

  1. 使用上述步骤上传编译好的Vend_Ax.bin文件。注意这里不该使用.iic文件,因为Vend_Ax是直接上传到RAM中执行的。

  2. 在上传固件并取消复位后,在不进行USB重新枚举的情况下,我们按照Vend_Ax记录的文件内容进行操作,做法是使用对应的Vendor Request发起Control Transfer

  3. 在成功上传固件后,重新插拔设备,此时将使用新固件启动。

上面就是烧写固件所需的全部操作。由于DSLogic使用了WinUSB,因此上述过程可以直接用libusb或是基于此的PyUSB完成。

最近编辑记录 metro (2020-02-28 17:21:53)

离线

#3 2020-02-28 18:11:35

XIVN1987
会员
注册时间: 2019-08-30
累计积分: 21

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

厉害啦,,感谢大神分享

离线

#4 2020-02-28 19:41:23

我心飞翔
会员
注册时间: 2019-12-25
累计积分: 80

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

厉害啦,,感谢大神分享.

估计坛子里面还没有太多人玩 DSLogic, 过段时间有百毒过来的网友就会火了.

离线

#5 2020-02-28 20:00:28

zzm24
会员
注册时间: 2018-05-07
累计积分: 27

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

罪过,我花300买了一个抄DSLogic的LA4016

离线

#6 2020-02-28 20:33:11

wuxx
会员
注册时间: 2018-01-03
累计积分: 26

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

这个方法好!我原先以为这个EEPROM是FPGA的配置,一时没想到是FX2的。
LA4016我看了,原模原样抄的DSLogic Plus,外面套了一个公模的金属壳,声称【不仅与上位机软件DSView永久同步,LA4016比DSlogic具备更高性能价格比】,太low了。

离线

#7 2020-02-28 20:48:25

微凉VeiLiang
会员
注册时间: 2018-10-28
累计积分: 263

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

感谢分享,前排刘明

离线

#8 2020-02-28 21:04:30

OggyJFX
会员
注册时间: 2019-05-21
累计积分: 64

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

wuxx 说:

这个方法好!我原先以为这个EEPROM是FPGA的配置,一时没想到是FX2的。
LA4016我看了,原模原样抄的DSLogic Plus,外面套了一个公模的金属壳,声称【不仅与上位机软件DSView永久同步,LA4016比DSlogic具备更高性能价格比】,太low了。

这对原创来说,简直就是致命的打击。

离线

#9 2020-02-28 21:07:19

metro
会员
注册时间: 2019-03-09
累计积分: 206

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

wuxx 说:

这个方法好!我原先以为这个EEPROM是FPGA的配置,一时没想到是FX2的。
LA4016我看了,原模原样抄的DSLogic Plus,外面套了一个公模的金属壳,声称【不仅与上位机软件DSView永久同步,LA4016比DSlogic具备更高性能价格比】,太low了。

应该是FX2通过并行接口对FPGA编程,在编程结束后直接就切换成与FPGA逻辑的通信接口了。确实比较节省硬件资源,而且也方便对FPGA进行固件升级。
Spartan6-SelectMAP-Slave.png

离线

#10 2020-02-29 09:20:47

Jmhh247
会员
注册时间: 2018-12-21
累计积分: 229

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

厉害啦,,感谢大神分享

离线

#11 2020-02-29 09:55:17

达克罗德
会员
注册时间: 2018-04-10
累计积分: 804

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

记得楼主还是学生?玩得好高级

离线

#12 2020-02-29 10:09:47

metro
会员
注册时间: 2019-03-09
累计积分: 206

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

达克罗德 说:

记得楼主还是学生?玩得好高级

毕业了就没得玩了,趁现在多玩一点 lol

离线

#13 2020-02-29 10:11:49

xm1994
会员
注册时间: 2019-07-03
累计积分: 41

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

老版的Basic直接拆掉IIC改一个字节的USB PID就可以变成plus,U2 Basic这种办法已经失效了。

离线

#14 2020-02-29 10:20:35

metro
会员
注册时间: 2019-03-09
累计积分: 206

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

xm1994 说:

老版的Basic直接拆掉IIC改一个字节的USB PID就可以变成plus,U2 Basic这种办法已经失效了。

对,我对比过固件,其实需要改的就是PID从0x0021改成0x0020,整个固件就只有C2 Header和USB描述符的区别而已,其它都是一模一样。
本来发这个帖子也不是为了破解(这也是我一直都没有发出来的原因),只是分享一下方法而已,不过用FX2作为逻辑分析仪USB方案的产品还是很多的。

离线

#15 2020-02-29 11:05:36

smartcar
会员
注册时间: 2018-02-19
累计积分: 579

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

metro 说:

毕业了就没得玩了,趁现在多玩一点 lol

比大佬还大佬,牛批牛批

离线

#16 2020-02-29 19:57:56

伍零壹
会员
注册时间: 2019-12-16
累计积分: 53

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

我想问一下  新版本的还可以破解码?

离线

#17 2020-02-29 20:22:58

metro
会员
注册时间: 2019-03-09
累计积分: 206

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

伍零壹 说:

我想问一下  新版本的还可以破解码?

不知道,我手头没有新版,而且暂时找不到新版的PCB,不知道内部有没有修改。

离线

#18 2020-03-03 17:51:59

演技担当黄晓明
会员
注册时间: 2017-10-17
累计积分: 96

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

这个叼.不想用编程器,一直没有动手,现在可以干了

离线

#19 2020-03-03 22:03:39

sy373466062
会员
注册时间: 2018-11-12
累计积分: 43

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

Cypress FX2 确实在很多产品可以看到,支持HiSpeed的不错。

离线

#20 2020-03-04 11:36:23

wlianmin
会员
注册时间: 2019-04-19
累计积分: 16

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

用习惯了Saleae,不想换了

离线

#21 2020-03-18 00:48:36

青衫
会员
注册时间: 2020-03-17
累计积分: 1

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

伍零壹 说:

我想问一下  新版本的还可以破解码?

能改了,要飞一根线,然后刷bios就行了

离线

#22 2020-03-21 12:52:48

metro
会员
注册时间: 2019-03-09
累计积分: 206

Re: 逻辑分析仪DSLogic Basic到Plus的升级教程(无需编程器)

更新:找到了U2 Basic的升级方法,不过手头没有硬件,需要大家自行验证。
地址:Превращаем DSLogic U2Basic в DSLogic Plus,理论上可以套用我的方法不使用编程器。

离线

页脚