DSP

TMS320C6678外部存储器SPI FLASH硬件设计以及软件调试

2019-07-13 11:12发布

文章主要介绍了一下,TMS320C6678 DSP的SPI FLASH的硬件设计需要注意的问题以及相应的软件调试的问题。 ------作者:jiangwenj02【转载请注明】 一、SPI FLASH 硬件设计 TMS320C6678 SPI模块拥有SPISCS0、SPISCS1、SPICLK、SPIDIN、SPIDOUT5个管脚,其中SPISCS0、SPISCS1为片选管脚,SPICLK为SPI提供时钟,SPIDIN是数据接受管脚,SPIDOUT为数据传送管脚。选用芯片N25Q128A11ESF40G,将管脚连接好就可以。参考官方设计板就可以。 二、SPI FLASH 软件调试 多核DSP为了简化BOOT流程,在内部集成了一段ROM,大小为128KB,存储RBL指令代码。RBL将外部主机或者flash存储器中的程序搬移到内存之中。我们选择用SPI挂载16MB的NOR Flash。该flash大小合适,接线简单。将配置DSP BOOT方式的管脚GPIO[0..15]连接到FPGA。这样在DSP正常启动之后,GPIO还可以作为DSP和FPGA的通信桥梁。 BOOT采用SPI FLASH,其中DSP BOOTMODE[2:0]选择boot器件,选择SPI,即DSP BOOTMODE[2:0]=6;N25Q128 FLASH 为24为地址的flash,因此DSP_BOOTMODE[9] = 1。 在调试FLASH存储器是否能正常工作的情况下,不将DSP设置在boot工作方式下。 调试程序选择K1_STK_v1.1提供的开源代码,K1_STK_v1.1中对SPI的测试代码为SPI工程。只测试SPI FLASH将前边的测试选项改成如下: #define SPI_LOOPBACK_TEST 0 #define SPI_NOR_FLASH_TEST 1 #define SPI_EDMA_TEST 0

注意:在最开始调试SPI FLASH的时候,我也是一直调不通,根本没有办法从FLASH中读取数据。一直到不到原因,重新购买的芯片也不行。后来直接换了一款芯片N25Q128A11ESF40G,以前用的是官方板上的芯片,然后就好用了。个人认为原因是N25Q128A21BSF40F这款芯片已经停产了,市面上的都有问题。所以一定要选没停产的芯片,价格还便宜。
程序下载地址:http://download.csdn.net/detail/a137376864/9795887