微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > 大家帮我看看我的hpi程序,谢谢了!

大家帮我看看我的hpi程序,谢谢了!

时间:10-02 整理:3721RD 点击:
我现在在做arm2410和DM642的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的情况,不知你有没有遇到这种情况,或是怎么解决的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top