前言
虽然DUO/DUO256M
上预留了SDNAND
焊盘,但是目前无法将固件烧录到SDNAND
焊盘。官方的IOB板售卖已经有很长时间了,上面预留了FLASH
焊盘,可有限更改后支持SPI NOR FLASH
/SPI NAND FLASH
。
PIN配置
根据cv1800B的硬件参考资料 CV181x/CV180x HDK 开发文档汇总,<CV180xB_38板硬件指南_V1.0.pdf>文档 4.2章节所述,SPI_WP_X
为NC或者1时,SPI_MOSI
引脚可决定启动模式,当SPI_MOSI
引脚通过下拉电阻接地时,为SPI NAND
启动方式,而该引脚通过上拉电阻接3.3V时,为SPI NOR启动方式。详情参考下图。上下拉电阻参考阻值4.7-10KR.
IOB修改
警告:需要一定的焊接能力并具有相关的硬件工具。
在IOB底板上,可改变电阻,实现NOR/NAND FLASH启动切换, IOB原理图<duo_iob_v1.11.pdf>文档该部分的电路如图如下
- SPI_WP下拉到地,
- SPI_CS上拉到3.3V
- SPI_HOLD上拉到3.3V
- SPI_MOSI上下拉决定启动方式
已经预留了U48 FLASH器件位置,而SPINOR_NAND_TX
为SPI_MOSI引脚,默认焊接的R793电阻,R792电阻被NC掉,注意,原理图标记错误,根据上面图片的BOOT,1为NOR,0为NAND,一定要注意。所以IOB默认被配置为NOR启动,也就是说在上面焊接NOR FLASH即可。而如果要调整为NAND FLASH,则需要移除R793,将该电阻焊接到R792处。再次重申,直接焊接 NOR FLASH,或者搬移电阻后焊接NAND FLASH二选一。
这是该区域的位号图:
针对算能的uboot驱动支持的SPI NOR/NAND FLASH,可参考源代码,之前整理的一份list,也可参考下帖。 Milkv duo官方驱动支持的NAND和NOR - Duo - MilkV Community
目前测试过淘宝比较好买便宜的 NOR W25Q256JVEQ(32M)和NAND W25N01GVZEIG是可用的。其它器件未测试。
相关的固件已经向SDK发起合并,目前SDK可直接编译出NOR 或者 NAND固件。
注意:
1.一定要确定电阻和FLASH器件焊接正常,不然固件启动在uboot就会出现问题。
2.正常情况下UBOOT中就能识别FLASH型号,确认识别到了才进行下一步,不然检查1。
3.升级目前只试过将fip.bin *.spinior或者fip.bin *.spinand拷贝到空白内存卡根目录,上电后自动更新到FLASH,利用工具烧录的请自测。
参考资料:
CV181x/CV180x BSP + MPI SDK 开发文档汇总 (BSP + MPI Software Development Document) (sophgo.com)