易灵思Ti60F100 Flash处理方案
转载自:Ti60F100 Flash处理方案 (qq.com)
Ti60F100内部合封一片flash。在使用过程中有很多人遇到过这样或者那样的问题,比如RISCV 不能读写flash,程序无法加载。在这里简单总结下。
(1)使用SPI Flash block。
在interface中选择SPIFlash。右键添加spiflash block.在SPI Flash Resource中选择SPI_FLASH0.
这里需要注意的是Ti60F100通过RISCV 直接操作flash会需要在flash的接口上打一拍。否则会读写失败。请注意下图对哪些信号打拍。
(2)不使用SPI flash Block而直接添加flash的GPIO,如下图。
1、因为内部flash与外部GPIO相连。所以也可以不使能SPI flash Block,而直接在interface中添加IO,并使能寄存器。直接把内部flash当成外部flash使用。
2、并把路径
X:\Efinity\2022.1\pt\db\die\block_models\spi_flash_not_used.xml
下面WP_N和HOLD_N的state参数修改成上拉。input with weak pullup
经过以上操作就可以正常使用。
(3)硬件设计注意上拉。
另外外部CCK如果在加载过程受影响,可能会出现加载失败、JTAG受SPI影响不能进入UserMode,所以要把flash的SSN,CCK,CDI0和CDI1都进行上拉。
注意CDI2/3没有做为IO引到管脚上,如果没有例化interface里的flash block ,程序加载完成后这2个脚默认是下拉的。
==========================