大家帮我看看我的hpi程序,谢谢了!
/* HPIC 寄存器*/
#define HPIC_L *(volatile u16*)(HPI_BASE+0x0) //00 0 0
#define HPIC_H *(volatile u16*)(HPI_BASE+0x2) //00 1 0
/* HPIA 寄存器*/
#define HPIA_L *(volatile u16*)(HPI_BASE + 0x4) //01 0 0
#define HPIA_H *(volatile u16*)(HPI_BASE + 0x6) //01 1 0
/* HPID 自增模式 */
#define HPID_A_L *(volatile u16*)(HPI_BASE + 0x8) //10 0 0
#define HPID_A_H *(volatile u16*)(HPI_BASE + 0xa) //10 1 0
/* HPID 固定寻址*/
#define HPID_F_L *(volatile u16*)(HPI_BASE + 0xc) //11 0 0
#define HPID_F_H *(volatile u16*)(HPI_BASE + 0xe) //11 1 0
其中HR/W接的是主机的R/W信号,HCNT[1-0]对应主机的A[3-2],HHWL对应A1,HRDY取反后接主机的nWAIT。用的是HPI16模式。
现在linux的驱动中中断已经可以正常工作了,初始化HPIC也基本没问题了,可是HPIA的读写有问题,也就不能做后面的操作了。
后来查到2410每次读操作只能读取半字,HPIA_H和HPIC_H总是相同的随机数,我认为没有读到东西,HPIA_L和HPIC_L内的值是相应HPIA和HPIC寄存器的高半字。
请大家帮忙看看是那里有问题呢,是地址设置的有问题还是什么别的原因,谢谢!
我的那个程序现在可以正确读写HPIC和HPIA了,这段时间我改了两个地方,
一是HPI的HR/W信号改接了ARM板的地址线A4,另一个就是使能了ARM板的bank5的nWAIT位,以前只是连接了HRDY和nWAIT,但是没有使能nWAIT。
现在我用固定地址读取一个地址(HPIA)的数据,读取正确,但有时就出现DM642的HRDY信号为高,1.79V,取反后nWAIT信号为低,且保持,ARM板就挂在这里了,出现死锁的状态。
对于这个不正常的电压,我开始以为是DM642板设计的问题,后来觉得既然有时读对,那么应该是我的驱动程序的问题,是不是时序不对啊,什么原因会产生这么一个奇怪的电压呢?
请高手指点一下,谢谢!
你的HAS怎么接了
直接接的高电压
现在那个1.79V的问题也解决了,可能是原来焊盘不清洁造成的吧,现在高压变成了3.3V,电压正常了,可是那个死锁的状态还是存在,就是一旦HRDY信号为高,就不会变低了,不知是为什么?读对时也是只能读对一个地址内的值。
是驱动程序的时序错误呢,还是硬件有问题呢?请高手指点!
准备用HPI,在ARM和DSP上,还没有开始写程序
现在用地址固定的方式可以读对连续地址的值了(前提是HRDY信号一直为低).只是那个HRDY信号变高后仍然不能变低,不知是因为时序错误导致HRDY信号的问题,还是因为HRDY信号的问题导致时序错误.
为什么EEWORLD的工程师们没人回复一下呢?
[ 本贴由 wuhanboy 于 2006-6-23 03:34 PM 最后编辑 ]
我也遇到和楼主同样的问题,就是nWAIT信号一旦变低后就无法恢复高电平,硬件的接发基本和楼主是一样的。不知道楼主解决这个问题没有,或者有没有其他高手知道问题出在哪里,欢迎和我联系,交流指导一下,谢谢。xuanjiajie@163.com
请问楼主,有无联系方式?
我们现在也出现了这个问题
设置和楼主是一样的
但是
2410没有r/w的信号的啊
读和写的信号是分开
楼主说到hpi的r/w与arm的r/w是连接的
是怎么设置的呢?
我们现在是用了一跟地址线区分读与写的操作的
我的邮箱是athena_W@163.com
请楼主能留下联系方式,不吝赐教,谢谢
遇到和楼主一样的问题了
但是我们使能了wait信号以后
调试器就死机
不用wait信号
则能够读出半字
想请教楼主的问题是否解决了?
如何解决的呢?
谢谢
本人联系方式是:athena_w@163.com
qq:267299972
期待楼主的答复,非常谢谢
不知道楼主还在不在
急求此问题解决方法
万分感谢
好久没来,发现大家的问题都很类似,大家可以联系我,qq:4599957。
arm死机是因为HPI的HRDY管脚一直处于高电平
问题是HPI的HRDY怎么会一直处于忙信号呢,还有我出现这种情况时,HPI的HPIC寄存器的HRDY位也为0回不到1了
试过不用nwait管脚,虽然肯定不会出现死机的情况,但是也有HPI的HPIC寄存器的HRDY位也为0回不到1的情况,不知你有没有遇到这种情况,或是怎么解决的