打印
[ZLG-ARM]

sc16isxx启动红外模式问题

[复制链接]
1347|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
blade4414|  楼主 | 2007-11-28 14:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用两片SC16IS760做红外通讯。红外收发管GP2W1001YP,电路参考PHILIPS的DEMO板。
做UART测试时,不焊红外收发管,直接连接两片760的RXD,TXD,收发正常。
做IRDA测试时,焊上红外收发管,接收中总有错误。

读SC16IS760的LSR,经常得到0xe1和0xe9,760的datasheet如此说:
7 LSR[7] FIFO 数据错误。
逻辑0=无错误(正常默认条件)。
逻辑1=接收FIFO 数据中至少有一个奇偶错误、帧错误或间隔指示。当FIFO
中不再出现错误时该位被清零。
6 LSR[6] THR 和TSR 为空。该位是发送空指示器。
逻辑0=发送器保存和移位寄存器都不为空
逻辑1=发送器保存和移位寄存器都为空
5 LSR[5] THR 为空。该位是发送保存寄存器空指示器。
逻辑0=发送保存寄存器不为空
逻辑1=发送保存寄存器为空。如果TX FIFO 使能,那么主机可将多达64 字
符的数据装入THR。
4 LSR[4] 间隔中断。
逻辑0=无间隔条件(正常默认条件)。
逻辑1=出现间隔条件且相关的字符为00h(RX 在一个字符时间帧内持续为低
电平)。
3 LSR[3] 帧错误。
逻辑0=正在从RX FIFO 中读取的数据无帧错误(正常默认条件)。
逻辑1=正在从RX FIFO 中读取的数据出现帧错误(接收的数据中没有有效的
停止位)。
2 LSR[2] 奇偶错误。
逻辑0=无奇偶错误(正常默认条件)。
逻辑1=正在从RX FIFO 中读取的数据出现奇偶错误。
1 LSR[1] 超时错误。
逻辑0=无超时错误(正常默认条件)。
逻辑1=出现超时错误。
0 LSR[0] 接收器中的数据。
逻辑0=接收FIFO 中无数据(正常默认条件)。
逻辑1=RX FIFO 中至少有一个字符。

也就是说有帧错误,这个错误怎么来的,不明白。

另外,如果我发送端760停止发送,接收端760也可以收到一个字节0xFE,实测接受760的RX,发现电平一直为高,为什么这种情况下也能收到一个字节?

举个例子:
发送ASC:1
接收:0xfe 0x7f 1

发送ASC:1 2
接收:0xfe 0x7f 1 2

似乎接收总比发送多个 0xfe 0x7f, 同时伴随着760的帧错误。

要做过760控制红外收发管的朋友吱一声吧

相关帖子

沙发
blade4414|  楼主 | 2007-11-28 15:36 | 只看该作者

继续

讨论一下,没人做红外吗?

使用特权

评论回复
板凳
blade4414|  楼主 | 2007-11-28 16:56 | 只看该作者

补充一下。

收发SC16IS760的CLK都是12M,MCU访问收发760的SPI速度略有差异都在6M左右。

UART波特率设为19200(不确定与760-SIR-1.15M有什么关系,但如果两边拨特率不同,红外铁定收错数),两边初始化一样,用示波器观察发的TXD后收的RXD发现一个现象:RXD引脚电平为TXD电平取反,但TXD中的正脉宽比RXD中反向的负脉宽明显要宽,(但起点一样),同样的设置为什么“数据位”的宽度不一样,这是调试出现帧错误的原因吗?

使用特权

评论回复
地板
blade4414|  楼主 | 2007-11-29 11:32 | 只看该作者

再问

没有人用IRDA吗?

使用特权

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

本版积分规则

32

主题

35

帖子

1

粉丝