我用的arm-s3c2410和dsp-c64x利用HPI进行通信,目前已经可以利用ARM的数据和地址总线对dsp进行读写了,但是当进行大量数据的读写时会出现错误,
严重的会造成ARM死机,而此时DSP的HPIC寄存器的HRDY位变成0,不变,接下去的传输就都不正确了,觉得既然ARM少量数据传输正确的话,时序应该是没问题.
比如:
有会把写数据变成写地址的,或读数据变成读地址情况,,因为这种情况也只要DSP对一根地址线的电平锁存值出错,就会发生了
在高速传输时发生这种情况应该还是正常的吧,
但如果这样的话,觉得有可能是因为写数据变成写地址时,会有把地址的写到其他控制寄存器的范围,然后再进行写数据时,可能对这些控制寄存器进行修改,造成DSP跑飞, 不知有没有也遇到这种情况的,又是怎么解决的
我是用废旧了电脑主板上的PCI插槽拆下后接到DSP的HPI口,再用连线与ARM对应的管脚相连的
ARM和DSP的连接如下
DSP(DM642) ARM(S3C2410)
Data[15:0] <-> Data[15:0](数据总线)
HCNTL0 <- ADDR2(地址总线)
HCNTL1 <- ADDR3(地址总线)
HR/-W <- ADDR4(地址总线)
HHWL <- ADDR5(地址总线)
HDS1 <- nWE
HDS2 <- nOE
HCS <- nGCS5
-HAS <-> VCC
-HINT -> INT5
HREADY接非门后接nWait
两位,我的数据通信都不通呢,急用,能看看你们的源码吗?