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.

TMS320F28377D: sysconfig配置EMIF的问题;EMIF异步访问执行时序问题

Part Number: TMS320F28377D
Other Parts Discussed in Thread: SYSCONFIG, C2000WARE

在使用EMIF模块中遇到两个问题。  

1.使用sysconfig工具配置EMIF模块时,“set Access protection”一定要选择其中一个,使得这CPU fetch、CPU write、DMA write不能同时开启:

我看到自动生成的代码中,该选项是调用了这个函数:

EMIF_setAccessProtection(myEMIF1_CONFIGBASE, myEMIF1_SELACCESS);

实际上是操作EMIF1ACCPROT0寄存器:


手册上好像并未说明CPUfetch、CPU write、DMA write这三个操作不能同时使用,

而且C2000 中的相关例程(并未使用sysconfig)也未调用EMIF_setAccessProtection()这个函数。

2. 我尝试使用EMIF与FPGA进行通信,使用了CS2 接口。(异步访问)

一个奇怪的情况是当我在DSP尝试读-写-读时,

实际在FPGA中捕捉到的时序是读-读-写:(这个时序是稳定的出现的而不是偶发的)

(由于硬件设计错误导致EMIF的地址总线相较FPGA向左偏移一位,但这与描述的现象无关)

上图中P_a连接EM1A[9:0],p_d连接EM1D[15:0],p_we和p_wr分别连接EM1WE和EM1OE。

我不太确定这是否和接口的turn Around(cycles)的设置有关, 

但即使我把这个参数延长至1000ns,FPGA读到的时序仍然是如此。

当我尝试在读-写-读中间插入一两个指令,比如:

此时FPGA捕捉到的时序就正常了:

这是什么原因造成的?


相关信息:

使用的C2000Ware_5_01_00_00.

CCS版本是12.8.1.00005,编译器是22.6.1.LTS。

以上操作都是在debug模式下进行的。


期待你的回复。