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.
在使用EMIF模块中遇到两个问题。
1.使用sysconfig工具配置EMIF模块时,“set Access protection”一定要选择其中一个,使得这CPU fetch、CPU write、DMA write不能同时开启:
我看到自动生成的代码中,该选项是调用了这个函数:
实际上是操作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模式下进行的。
期待你的回复。