whpt

海思SPI NAND调试

0
阅读(3101)

        最近在设计海思平台,主芯片是HI3536,从网上买了一个开发板,用到芯片的VI采集接口,但此接口与NAND FLASH的接口有互用。VI接口是项目重要功能模块,所以程序存储只能选择其它方案,最后选定为SPI NAND,市面上最大能够支持到512MB,基本能够满足应用开发需求。但在换SPI NAND时遇到一些问题,记录一下。 

   blob.png

        在使用开发板调试时发现换成SPI NAND使用FASTBOOT始终烧写成功但始终无法启动,没有任何打印信息。开始以为配置模式错误,折腾了很久仍然无法启动。然后,将uboot下载进入DDR启动,能够启动打印芯片ID,然后就卡死了。怀疑可能四线启动模式有问题,软件将四线模式改为单线模式,终于可以启动。

        但是单线会造成访问速度比较慢,影响效率。由于这方面资料比较少,差不多这个问题断断续续摸索了一个星期。开始认为四线模式能够读到了IC的ID,信号线连线应该没问题,没有怀疑连接问题。最后用示波器将SPI NAND的信号全部抓取出来,最后发现HOLD全程高电平,无数据传送…。由于开发板不提供原理图,只有结合官方Demo猜测,可能焊接错电阻了。如下图所示,焊接的是R27电阻,没有焊接R126导致四线模式无法使用。通过修改电阻,果然立刻可以启动。

blob.png

        最后,总结分析,读取ID应该是使用的单线模式,在读写FALSH时才会启用四线模式加快访问速度。排查问题,还是需要按部就班实际去测量,不然很容陷入自己的思想误区,最后偷懒浪费了多余的时间。