[技术求助]

HPI口驱动程序

[复制链接]
383|9
手机看帖
扫描二维码
随时随地手机跟帖
jlyuan|  楼主 | 2019-1-4 13:20 | 显示全部楼层 |阅读模式
我现在在做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| | 2019-1-4 13:23 | 显示全部楼层
不能做后面的操作了啊

使用特权

评论回复
jlyuan|  楼主 | 2019-1-4 13:25 | 显示全部楼层
是啊,后来查到2410每次读操作只能读取半字,HPIA_H和HPIC_H总是相同的随机数

使用特权

评论回复
jlyuan|  楼主 | 2019-1-4 13:29 | 显示全部楼层

我认为没有读到东西,HPIA_L和HPIC_L内的值是相应HPIA和HPIC寄存器的高半字。

使用特权

评论回复
jlyuan|  楼主 | 2019-1-4 13:31 | 显示全部楼层
是地址设置的有问题?

使用特权

评论回复
yszong| | 2019-1-4 13:35 | 显示全部楼层
你的HAS怎么接了

使用特权

评论回复
dengdc| | 2019-1-4 13:39 | 显示全部楼层
我也遇到和楼主同样的问题,就是nWAIT信号一旦变低后就无法恢复高电平,硬件的接发基本和楼主是一样的。

使用特权

评论回复
dengdc| | 2019-1-4 13:42 | 显示全部楼层
不知道楼主解决这个问题没有,或者有没有其他高手知道问题出在哪里,欢迎和我联系,交流指导一下,谢谢

使用特权

评论回复
jlyuan|  楼主 | 2019-1-4 13:46 | 显示全部楼层
好的,咱两私下来联系吧,先结贴了

使用特权

评论回复
xyz549040622| | 2019-1-7 12:29 | 显示全部楼层
linux没有搞过,支持下!

使用特权

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

本版积分规则

880

主题

12030

帖子

4

粉丝