打印
[技术求助]

HPI口驱动程序

[复制链接]
778|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jlyuan|  楼主 | 2014-12-11 21:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在在做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的读写有问题

相关帖子

沙发
wyjie| | 2014-12-11 21:18 | 只看该作者
不能做后面的操作了啊

使用特权

评论回复
板凳
jlyuan|  楼主 | 2014-12-11 21:20 | 只看该作者
是啊,后来查到2410每次读操作只能读取半字,HPIA_H和HPIC_H总是相同的随机数

使用特权

评论回复
地板
jlyuan|  楼主 | 2014-12-11 21:20 | 只看该作者
我认为没有读到东西,HPIA_L和HPIC_L内的值是相应HPIA和HPIC寄存器的高半字。

使用特权

评论回复
5
jlyuan|  楼主 | 2014-12-11 21:23 | 只看该作者
是地址设置的有问题?

使用特权

评论回复
6
yszong| | 2014-12-11 21:23 | 只看该作者
你的HAS怎么接了

使用特权

评论回复
7
dengdc| | 2014-12-11 21:24 | 只看该作者
我也遇到和楼主同样的问题,就是nWAIT信号一旦变低后就无法恢复高电平,硬件的接发基本和楼主是一样的。

使用特权

评论回复
8
dengdc| | 2014-12-11 21:25 | 只看该作者
不知道楼主解决这个问题没有,或者有没有其他高手知道问题出在哪里,欢迎和我联系,交流指导一下,谢谢

使用特权

评论回复
9
jlyuan|  楼主 | 2014-12-11 21:26 | 只看该作者
好的,咱两私下来联系吧,先结贴了

使用特权

评论回复
10
jlyuan|  楼主 | 2014-12-11 21:26 | 只看该作者
多谢大家了哈

使用特权

评论回复
11
shenmu2012| | 2014-12-15 15:19 | 只看该作者
过来参考学习的啦。。

使用特权

评论回复
12
comeon201208| | 2014-12-15 19:11 | 只看该作者
跟楼上各位参考学习的啊。

使用特权

评论回复
13
UAT-hank| | 2015-11-17 11:34 | 只看该作者
這麼精彩的問題, 怎麼私聊...不跟大家分享呢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

880

主题

12030

帖子

4

粉丝