Hi, TI,我们最近有用C6678器件做NAND Flash的底层驱动程序,网上资料看到starterware里有相关程序,在官网上看到关于C6748器件的Starterware驱动库下载链接,但C6788器件是否有类似的库呢?有的话帮忙附上下载地址;另外为了适配不同位宽/容量的NAND FLASH,例如我们是16位/16G的NAND,程序里如何修改呢?是否有关于starterware里NAND相关视频链接?期待您的回复,感谢!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi, TI,我们最近有用C6678器件做NAND Flash的底层驱动程序,网上资料看到starterware里有相关程序,在官网上看到关于C6748器件的Starterware驱动库下载链接,但C6788器件是否有类似的库呢?有的话帮忙附上下载地址;另外为了适配不同位宽/容量的NAND FLASH,例如我们是16位/16G的NAND,程序里如何修改呢?是否有关于starterware里NAND相关视频链接?期待您的回复,感谢!
c6678没有starterware,但有csl底层驱动库,可以下载下面的SDK,C:\ti\C6678 SDK 5.03\pdk_c667x_2_0_13\packages\ti\csl。
https://www.ti.com/tool/PROCESSOR-SDK-C667X
或者参考我们local FAE编写的例程。
https://e2echina.ti.com/support/processors/f/processors-forum/47664/faq-keystone1#pi239031350=2
请参考下面的FAQ。
置顶贴STK的编译
https://e2echina.ti.com/support/processors/f/processors-forum/185641/c6000
Hi, Shine, 更换旧版本PDK后,CCS软件编译成功。
参考K1_STK_v1.1\docs\KeyStone_1_EMIF_STK_User's_Guide.doc文档配置自己的NAND FLASH(MT29F8G16A)
文档中提到需修“EMIF_NAND_FLASH_test.c”中相关配置,如下图

其中,num0psperpage、dataBytesper0p和spareBytesper0p分别是什么意思?因为我在MT29F8G16A数据手册里没有找到相关介绍。
另外,上图中关于buswidth配置为8bit,对吧?改成16bit,是否改为FLASH_BUS_WIDTH_2_BYTE?
期待您的回信!
没有搞明白上图中各参数含义
上图中各个参数的含义,需要参考C6678 EMIF user guide中的4.4 Async 1 Config Register (A1CR)寄存器配置。
https://www.ti.com/lit/ug/sprugz3a/sprugz3a.pdf
您需要根据外接NAND flash的时序要求配置EMIF口的寄存器,使它们的时序匹配。
Hi, Shine:
十分感谢您的回答。
sprugz3a中关于A1CR寄存器的配置说明,例如下图W_STROBE的说明,WE信号使能时(使能脉冲宽度)持续的EMIF16时钟周期个数。

从K1_STK_v1.1 EMIF里main函数中关于时钟源配置代码,一个时钟周期时间为1/1.333 ns

外接的NAND FLASH,在WE的上升沿采样,高脉冲宽度为7ns,如下图

那么W_STROBE= 7/ (1/1.333) ?
请问是这样嘛?因为是第一次接触TI的DSP,有很多东西不确定,还请您多帮忙。
A1CR里的cylces是EMIF16 clock cycle,EMIF16 clock来源于SYSCLK7,默认是1/6的cpu clock,请参考数据手册上的说明。
SYSCLK7: 1/6-rate clock for slow peripherals (GPIO, UART, Timer, I2C, SPI, EMIF16, etc.) and sources the SYSCLKOUT output pin.
https://www.ti.com/lit/ds/symlink/tms320c6678.pdf