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

文章主要介绍了一下,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

你可能感兴趣的:(TMS320C6678外部存储器SPI FLASH硬件设计以及软件调试)