我在lichee zero开发板上完成了SPI flash固件编译生成,在开发板上也可以正常运行,而后将固件烧录到自制的开发板中,发现无法正常启动,而后接上SPI引脚观察引脚波形,发现uboot未读取成功,不知道是SPI引脚与芯片直连就可以还是需要中间添加其他配件。具体的波形如下图
这是荔枝派开发板上读取uboot的MOSI和MISO的波形。
这是自制开发板上读取uboot的MOSI和MISO的波形。
想问硬件上要怎么连接才能正常读取
离线
硬件上现在是芯片SPI引脚和flash是直连的,中间没有任何配件,很奇怪的是可以通过USB烧写固件,也验证了烧写成功,但是芯片无法从SPI读取到这个uboot固件,有人知道这应该怎么解决吗?万分感谢!
离线
你是如何确定 u-boot 没有启动成功的? 是用示波器确定? 还是用串口输出确定?
刚刚再次确认了一下,这一段是自制开发板上用示波器显示读取UBOOT的区域,然后就没有继续读取dtb、kernal,串口只打印了“”这一个符号,这个uboot固件在荔枝派上能正常运行串口0打印。
因为在示波器上读取两者之间波形不一致,以及串口只打印了“”这一个符号所以觉得uboot没有启动成功。
请问这个问题可能是出在哪里?谢谢回复
离线
如果串口引脚用的和荔枝派一样的话,直接调换两个flash看看
离线
既然能烧录,说明硬件问题应该不大,至少能启动spl (boot0)才对,spl时串口是有输出的。
还是检查有没有弄错串口
三组电压都是检查过没有问题的。
仔细检查了一下串口,发现原理图里面有两个串口0的引脚,PB和PF,之前看到原理图就直接把芯片上方的PF引脚当成串口0了,看到uboot里配置的串口0PB引脚输出,待会尝试重新编译一下固件烧写进去
然后之前换了块芯片USB调试现在就出问题了。。。。我晕。。。硬件上也没有短路看不出什么问题,电脑显示设备描述符出错,只能换个芯片重新焊试试了,未完待续.......
最近编辑记录 yangzl (2019-03-28 11:00:14)
离线
我记得 荔枝派zero 默认串口是 PB8,PB9
离线
我记得 荔枝派zero 默认串口是 PB8,PB9
一个大大的UART0在上面,谁又能想到.......
离线
既然能烧录,说明硬件问题应该不大,至少能启动spl (boot0)才对,spl时串口是有输出的。
还是检查有没有弄错串口
USB调试串口已经可以烧写了,然后我修改了sun8i-v3s.dtsi里的PB8、PB9为PF2、PF4,重新编译,烧录进去后
发现还是如上图没有任何输出,是否还能有其他方法确认uboot启动正常?感谢回复
离线
@yangzl 先接 PB8, PB9 看是否有输出, 再谋划改代码吧。
尝试过将原有可用的固件烧写进去,用示波器查看PB8和PB9的电平输出,没有丝毫波动,应该是uboot并没有启动成功吧
离线
晕哥 说:@yangzl 先接 PB8, PB9 看是否有输出, 再谋划改代码吧。
尝试过将原有可用的固件烧写进去,用示波器查看PB8和PB9的电平输出,没有丝毫波动,应该是uboot并没有启动成功吧
注意: sunxi-fel 烧录的时候 不需要再短路 spi 的引脚了
sunxi-fel 没有校验机制, 到之后也不知道有没有写进去, 写进去的对不对,
你不接 flash, 他一样能告诉你写入成功。
sunxi-fel 的 read 功能貌似也有问题, 读的数据不对。
接逻辑分析仪或者 USB串口模块试一试.
至少能启动 u-boot 最开始的 spl(boot0),
这里有几行串口输出。
最后, 你交换一下 荔枝派(能正常启动的板子)的flash测试。
在线
yangzl 说:晕哥 说:@yangzl 先接 PB8, PB9 看是否有输出, 再谋划改代码吧。
尝试过将原有可用的固件烧写进去,用示波器查看PB8和PB9的电平输出,没有丝毫波动,应该是uboot并没有启动成功吧
注意: sunxi-fel 烧录的时候 不需要再短路 spi 的引脚了
sunxi-fel 没有校验机制, 到之后也不知道有没有写进去, 写进去的对不对,
你不接 flash, 他一样能告诉你写入成功。sunxi-fel 的 read 功能貌似也有问题, 读的数据不对。
接逻辑分析仪或者 USB串口模块试一试.
至少能启动 u-boot 最开始的 spl(boot0),
这里有几行串口输出。最后, 你交换一下 荔枝派(能正常启动的板子)的flash测试。
在使用sunxi-fel烧录前都会使用“sunxi-fei spiflash-info”命令确认能否读取到flash芯片信息后再进行烧写,短接SPI引脚使用镊子短接,识别到就松开了。
然后在确认荔枝派开发板上的固件可以正常串口输出后,把两块板子的flash更换,结果发现SPI引脚都没有读取了,如图。
黄线DO,紫线是DI。
之前一块flash在荔枝派上重新烧写并检测能用,再更换回去,还是如上图......
我的内心好绝望。。。
感谢回复
最近编辑记录 yangzl (2019-03-28 16:14:50)
离线
这个 SPI 读 Flash 的 boot0 操作, 是 BROM 完成的,
这时候只在 SRAM 里面操作, 并没有涉及到 DRAM 的操作,
所以越看越奇怪。
交换过去的荔枝派板子, SPI 波形正常?
离线
发现了原理图和实物有些差异,把线直接引出后现在有串口打印了
然后没有进行下一步了
离线
感觉有点是 板子布线问题,试一试在 uboot 把 dram和cpu主频都降下来,
分别降为: 166Mhz,800Mhz
重新编译试一试
尝试了一下,更改了下面两个参数
每次串口输出信息不同,下图
感谢回复
离线
这两次可能是 spl 和 uboot 两次报出来的信息。
现在还没有启动?
没有没有,现在到那个红色框范围就停止了,使用的固件明明是荔枝派可以使用的(挠头)
离线
是不是按晕哥套路改了之后, 比17楼有进步?
能启动到 u-boot ?
离线
是不是按晕哥套路改了之后, 比17楼有进步?
能启动到 u-boot ?
是的,踏出了一小步,也就这样设置才能读出uboot,下面示波器图看出来了,但是uboot并没有继续往下走了
离线
看样子,有可能频率还得降下来才行
如果说主频要降频运行的话,那应该是硬件设计的问题吧
硬件设计是底板+核心板的设计,图上高亮部分是芯片连接FLASH的地方,芯片的三组电压都正常德华,会不会是flash离芯片太远导致的问题呢?
感谢回复
最近编辑记录 yangzl (2019-03-29 11:55:37)
离线
1. 检查 1.2V, 1.8V, 看是否波纹过大, 可以加大电容或 dcdc的电感。
2. 调低 SPI 频率, 调到 10Mhz 以下试一试。
离线
1. 检查 1.2V, 1.8V, 看是否波纹过大, 可以加大电容或 dcdc的电感。
2. 调低 SPI 频率, 调到 10Mhz 以下试一试。
spi频率具体在哪里可以调低?
感谢回复
离线
在线
开启内核的时候,1.2V拉扯电流太多,导致压降突然下降,导致一次0.4V的下降,持续十几ms,导致内核不能正常启动;现把手上两个LDO并联解决了;后期更换LDO。
离线
开启内核的时候,1.2V拉扯电流太多,导致压降突然下降,导致一次0.4V的下降,持续十几ms,导致内核不能正常启动;现把手上两个LDO并联解决了;后期更换LDO。
那么多参考电路,你竟然选了LDO, 可能也可以,但是你得加个很大很大的电容。
离线
用DC/DC会比较好
离线