找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 18515|回复: 126

关于CH341A读写SPI-NAND的一些测试

  [复制链接]
本帖最后由 keke1023 于 2023-5-5 21:59 编辑

更新一下,我用到的项目的作者原来也在论坛里~他已经更新了对这个闪存的支持,感谢~直接使用他更新后编译release的文件就行了
Droid-MAX/SNANDer: SNANDer - Serial Nor/nAND/Eeprom programmeR (based on CH341A) (github.com)


先说测试的原因,朋友送给我一台联通的VS010,2022版,拆开看了一下好像配置没有变化(屏蔽罩拆开看无线芯片和功放都没变),但是看论坛很多朋友都说刷集客没有5G刷N3000集客固件没有5G,这个暂时还没测试


而在这之前我才测试了沛喆L8刷openwrt(沛喆PZ-L8刷openwrt),VS010和PZ-L8的主控和无线芯片都一样,但是5G方面VS010是有功放的,实测如果刷PZ-L8的固件的话是没法正常使用的,两个机子的mtd分区不一样
又发现另外同样配置的NX30系列华三RC\RT\RW3000/红米&小米AX3000/】刷为NX30详细教程,想试试看能不能刷,于是,本次的测试开始了
手头本来只有ch341a编程器,之前一直使用NeoProgrammer来读写spi nand都是正常的,但是这次遇到的芯片比较特别,ESMT的F50D1G41LB


帖里以及查到的资料都可以看出来这是一颗1.8v供电的spi nand闪存,而且这个机子的ttl也是1.8v的,为此我买了支持1.8v的ttl模块,3.3v转1.8v的闪存座,以及一颗跟NX30一样的W25N01GW闪存


但是读写的结果让我很意外,加上1.8v转接座,id识别不正常,但是也能读写,后来证实读写的内容是有问题的,用3.3v读写反而识别正常
于是我就大着胆子用3.3v读写了几次,并没有烧,不过却发现了另外一个很费解的问题,读正常,擦除正常,写入然后能过校验,但是再读出的时候跟写入的内容不一致,且每次都可以复现一模一样的误差
我一开始以为是ch341a的问题,或者Neoprogrammer的问题,于是又下单买了新款的T48(原帖推荐的是RT809F),支持列表里也有这个闪存


结果让我更加意外,也会出现同样的问题,读写校验都正常,但再读出数据不一致,后来发现是要额外设置关闭片上ECC


然后写入后再读出就一致了,ch341a所用的Neoprogrammer是没有这个选项的,所以每次写入数据时它又自己生成了额外的ecc数据
到了这里我终于能正常的写入帖子里提供的RC3000编程器固件,上机后也能用1.8v的ttl来查看启动信息,结果就是,启动到kernel就报错重启了。。。
而且发现之前原版固件的编程器备份是有错误的(当时用1.8v转接座备份的, 以为没问题),写回也没法启动
就只好在H3C的uboot下,nand erase.chip整个闪存清空,再把原厂开ssh后备份出来的各个mtd一个一个tftpboot上传到内存,算好offset写回去,但mtd15也就是rootfs这里如果直接写回去却并不能正常启动,报错是跟ubi分区有关的,不太清楚这里怎么办
后来又回到uboot下,把mtd15开始的闪存擦除,用VS010_v1.0.1_20211108_R1088_ROOT.img剪切掉前面的文件头生成的固件,使用flash rootfs指令写入,再重启就正常恢复了
到这里终于是恢复了这台VS010,已经花了路由器三倍的钱来买工具了哈哈哈
不过我还没满足,又想着怎么才能让ch341a也支持关闭片上ecc,其实snander是有这个功能,只不过原版现成的可执行文件是不支持这个闪存型号的,所以得自己添加后重新编译
我是在win10的wsl下编译的,首先要修改src文件夹下的spi_nand_flash.c,添加这个闪存的ID和对应的参数



然后需要安装mingw-w64以及linusb,这里有一个编译的脚本很方便就可以在WSL下编译出exe
Droid-MAX/SNANDer: SNANDer - Serial Nor/nAND/Eeprom programmeR (based on CH341A) (github.com)


经过测试,添加闪存重新编译后的snander,加上-d参数来读写,出来的结果也是正常的


至此,已经找出了原因,也找出了对策,下一步还有另一个测试就是在ch341a的高级版ch347上实现更高速的读写(ch341a读或者写128MB的闪存都得差不多20分钟,T48只要1分钟左右)


等嘉立创打的板子到了把他们组合一下测试了再告诉大家,希望对有同样问题的朋友有所帮助



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 4恩山币 +5 收起 理由
san*** + 1 犀利
kkkkl*** + 1 刚好最近想用编程器备份360T7的固件,感谢.
si*** + 1 感谢你的分享,无论怎样,你都是最无私的人.
hq*** + 2 强大的恩山!(以下重复1万次)

查看全部评分

我觉得写个BootLoader进去然后在BootLoader下上传固件等是不是比直接写大容量的数据进去来得更快???
回复

使用道具 举报

下本了这是。 我连866都不舍得
回复

使用道具 举报

 楼主| | 显示全部楼层
邪恶海盗 发表于 2023-5-4 20:57
我觉得写个BootLoader进去然后在BootLoader下上传固件等是不是比直接写大容量的数据进去来得更快??? ...

问题就是并不是所有bootloader都能让你这么方便的上传固件写入固件的
回复

使用道具 举报

 楼主| | 显示全部楼层
一点都不用力 发表于 2023-5-4 21:00
下本了这是。 我连866都不舍得

为了研究就得花钱啊~如果只是为了用那啥都不需要买哈哈哈
回复

使用道具 举报

这样的帖子要多多支持
回复

使用道具 举报

意思是用普通的ch341a TTL不出来吗??一定要用1.8v的TTL板???
回复

使用道具 举报

回复

使用道具 举报

 楼主| | 显示全部楼层
fy1515 发表于 2023-5-4 22:04
意思是用普通的ch341a TTL不出来吗??一定要用1.8v的TTL板???

没试,不过看其他帖子是这么说的,我就直接用1.8v的ttl了,好像3.3v的输入有问题
回复

使用道具 举报

 楼主| | 显示全部楼层
afeng11 发表于 2023-5-4 22:34

哈哈哈这次买了t48,再也用不上ch341a了,但是还是很佩服它这么便宜又什么都能做
回复

使用道具 举报

来自手机 | 显示全部楼层
大神,有没有办法做个中国移动RAX3000Z的op刷机包
回复

使用道具 举报

支持!
回复

使用道具 举报

 楼主| | 显示全部楼层
smanger 发表于 2023-5-5 05:30
大神,有没有办法做个中国移动RAX3000Z的op刷机包

https://github.com/slienna/about-AX300M-WiFi6-ROUTER/tree/master可以试试同配置硬件的固件
回复

使用道具 举报

keke1023 发表于 2023-5-5 01:48
哈哈哈这次买了t48,再也用不上ch341a了,但是还是很佩服它这么便宜又什么都能做
...

你这个T48不带座子,居然要299,光编程器带一根线价格应该在240-260之间
回复

使用道具 举报

 楼主| | 显示全部楼层
afeng11 发表于 2023-5-5 08:54
你这个T48不带座子,居然要299,光编程器带一根线价格应该在240-260之间

是,闲鱼258全新,我后来也是闲鱼买的哈哈哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-15 06:31

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表