最近画了个板子,其他电路均已验证,就是这个nandspi,作为系统启动时,会在运行init脚本时卡主,log如下
示波器量的频率输出都是比较稳定的100MHz,不知道如何去查,请大神帮忙指点下。
卡在 Run /sbin/init as init process
并且,有一次我尝试将 /sbin/init 改为 /bin/sh 也是卡主,无法输入,可以判断不是软件问题
另外nandspi可以烧录,但是也有一定的失败概率,卡在7%或55%左右
有时候会卡在稍微早一点的打印位置
我是仿的淘宝LCPI板子,我看LCPI的nandspi是贴在背面紧靠T113主芯片,不知道我是否还需要再缩短布局布线
我的布局布线(CLK MISO MOSI 已经做了等长约束):
已经重复打板1次,等长约束后无果,请各位大神支个招~
翻过whycan论坛内其他群友的layout,感觉 nandspi 的走线是比较宽松的。不知道我这里的layout是不是犯了什么低级错误,俺是新手
最近编辑记录 sunblackshine (2023-09-05 19:55:49)
离线
我参考的mango的mq_r的板子,spi nand的1、3、7脚有10k上拉电阻。
2、5脚也有上下拉电阻进行启动配置。
6脚你这里串了个电阻,不知道是多大的,我参考的貌似没见过这个电阻。
----------------------------------------
看错,pcb中有向右侧引出这些线。
最近编辑记录 Gentlepig (2023-09-06 08:51:01)
离线
1、降低SPI0频率试试;
2、降低DDR频率;
3、有条件可以量下SPI的信号和时序。
离线
@Gentlepig
PCB向右引出线是接了GPIO(之前以为有干扰,割过线没啥作用)
1、3、7 的 10K上拉电阻我注意到过,有用外接的GPIO上拉3.3V 10K过,也没有效果
6脚串接 33R电阻,mq_r 也有,靠近T113放置的
请问您这里按照 mq_r 的接法,验证过 nandspi 启动正常吗?
我的接线和LCPI一样,确实贼简单:
离线
1、降低SPI0频率试试;
2、降低DDR频率;
3、有条件可以量下SPI的信号和时序。
嗯SPI0测过降低频率,在kernel启动过程示波器测降低到20MHz,依然卡住~
时序好难抓,我新手看不太清楚..
离线
这部分我是照抄的mq_r的。
我这里确实也有这个33R电阻,其他的区别,就是我接了那3个10K上拉电阻。我这里是可以正常烧录的,我用的w25n01。我都没走等长线...
你原理图上是spi nor flash,是不是需要修改启动配置?
mosi和miso这里是不是需要设置下启动配置?还有,我记得tina sdk里有个fex文件里,也有启动选项配置。
或者,你找个其他的镜像烧写下试试。
想了想,你这都能烧写了,也能启动了,不一定是硬件问题吧?
最近编辑记录 Gentlepig (2023-09-07 09:18:34)
离线
@Gentlepig
感谢您的分享~
env.cfg里面有配置好nand启动,LCPI用我编译的固件可以启动~~所以应该是我的硬件不太稳定
mosi和miso如果不做BOOT_SEL0/1配置的话,我测下来默认启动顺序是 SDCARD->NAND,所以这里我没改了
我的是两层板没有单独的Ground 层和Power层,所以有人建议我看看眼图和优化下Ground的连续性。我打算之后也试试看
离线
这种都跑到init了 可能还是你的软件问题
离线
@sunblackshine
我也是两层板,不过走线尽量走顶层,底层有大面积地。看你原理图上画的是w25q256,这个是16M的 spi nor flash吧?你确定和参考的板子一样?
离线
@Gentlepig
嗯,原理图画错了,实际贴的是GD5F1GQ5UEYIGR
今晚上板子到,我画的直接贴背面了,验证可启动。再次非常感谢Gentlepig
可能是MCU和NAND Ground参考平面一致解决该问题,之后我再单独测下之前的摆件走线。
离线
你的烧写命令是什么啊,可以分享下固件吗
离线
我也遇到类似问题,是这样解决的。
1.uboot dts开启wp和hold的内部上拉,默认的只开启了CS的内部上拉
&spi0_pins_b {
allwinner,pins = "PC3", "PC7", "PC6";
allwinner,pname = "spi0_cs0", "spi0_hold", "spi0_wp";
allwinner,function = "spi0";
allwinner,muxsel = <2>;
allwinner,drive = <1>;
allwinner,pull = <1>; /* cs, hold, wp should be pulled up */
};
2.linux dts对应的drive需要按照默认的10,是别的值可能会开机卡死在linux
离线
楼主,请问解决了吗?我也是烧录卡在55%,70%,我的spi-nand没有采用等长设计,不知道是不是这个原因?
离线