TI中文支持网
TI专业的中文技术问题搜集分享网站

tl16c554接收中断问题

GPMC外界tl16c554扩展串口,发送正常,但是在接收时,驱动参考的是8250.c在startup中使能中断

    up->ier = IER_RLSI | IER_RDI;   //这里并没有使能调制解调器中断
    serial_out(up, IER, up->ier);

中断使能寄存器(IER)

位 0:在 IER0 被置位时,它会在 FIFO模式中使能接收数据有效中断和超时中断。位 1:在 IER1 被置位时,发送器保持寄存器为空中断被使能。
位 2:在 IER2 被置位时,接收器线路状态中断被使能。

位 3:在 IER3 被置位时,调制解调器状态中断被使能。

但是在向tl16c554发送数据时,会一直中断,然后读IIR(中断标识寄存器)时,读到的尽然是0(调制解调器状态中断)

中断辨识寄存器(IIR)0x60——接收器线路状态(最高优先级)0xc0或0x40——接收器数据就绪或接收器字符超时0x02——发送器保持寄存器为空0x00——调制解调器状态

而且我在中断中又一次确认过,IER确实设置的是0x05,为什么我没有使能这个中断,他尽然会产生这个中断,我是不是应该怀疑芯片是假的啊。还是有其他原因。

Jian Zhou:

请问你的16C554以前在其他平台上验证过吗?

leo chen:

能不能详细说说你是怎么做的,对这个感兴趣

liu yang2:

回复 Jian Zhou:

没有,从一个经销商那里采购的,之前都没有上过平台,刚开始调试发送,在串口助手看到的是无规律的掉数据而且数据不能发的太多,数据一多,发送FIFO空中断都没有了,最后发现电压未对,改为5V后发送正常,然后开始调试接收,各种神奇的问题都出现了。只要是IER0 置位,串口调试助手这边只要一发数据,调试解调器就一直中断,然后置位IER3 使能调试解调器中断,结果就什么中断都不产生了;或者是产生了数据有效的中断(LSR0置位),但是读RBR寄存器全是0,这个芯片怎么这么闹心啊。按理说发送一切正常,那我的GPMC与16C554的通信是没有问题的,波特率设置也没有问题,接收只需要在startup里面打开接收中断就OK,产生中断后读取中断标识寄存器IIR,如果是接收中断,然后判断线路LSR0是否置位,如果置位就可以读取RBR。手册已经过了好多遍了,感觉驱动没有地方需要修改了。

liu yang2:

回复 leo chen:

leo chen,这个芯片已经很常见了吧,只需要对应接到GPMC的管脚就好了。

赞(0)
未经允许不得转载:TI中文支持网 » tl16c554接收中断问题
分享到: 更多 (0)