开发过16C2550的请进

mochen5460 2008-08-26 07:28:02
我目前在使用UART芯片TL16C2550PFB(G4)开发产品,在做通信测试时发现可以发送数据,但不能接收数据.
硬件方面:
1. CPU为Motorola的MC9S12DG128B.
2. UART芯片只使用了一个通道A, 未使用MODEM相关的和中断相关的引脚. 控制引脚A2,A1,A0,CSA,CSB,IOR,IOW 直接与CPU的IO口(PORTK)的引脚相连.

软件方面:
1. 开发环境为MC9S12DG128B自带的CodeWarrior版本开发,波特率为9600,测试时只使用了最简单的收发功能,查询接收和发送.
2. 另一端为PC机+RS232-RS422转接器+串口调试助手


结果是:发送数据正常,而不能接收. 在接收时,用示波器测量,发现UART芯片的RXA引脚有波形,而数据引脚D0-7无波形.

请问: 1. TL16C2550PFB(G4)支持不支持这种Motorola的连接方式,即控制引脚直接与CPU的IO口相连?
2. 在CPU读取TL16C2550PFB(G4)的数据时,时序有没有特别需要注意的地方?
3. 有没有相关可以参考借鉴的经验?
...全文
295 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjscu3 2009-12-27
  • 打赏
  • 举报
回复
我也遇到了这问题。
superqboy 2008-08-28
  • 打赏
  • 举报
回复
答楼主:
1、TL16C2550PFB(G4)支持不支持这种Motorola的连接方式,即控制引脚直接与CPU的IO口相连?
TL16C是TTL电平兼容的,可工作在DC5V,DC3.3V,DC2.5V情况下,可以直接与MCU的IO口直连。
若担心MCU的管脚驱动能力,可以在数据线上增加外部上拉。

2、在CPU读取TL16C2550PFB(G4)的数据时,时序有没有特别需要注意的地方?
基本时序为:
A2-A0 -> 使能CS -> RD/WR(置L) -> Data -> RD/WR(置H)-> 释放CS。注:数据均在RD/WR信号上升沿锁存。其他寄存器操作都是在重复调用上述基本读写流程,按照datasheet说的操作即可。
注意一些关联寄存器的配置,如DLL,DLM配置前对LCR.7的操作,诸如此类。

3、 有没有相关可以参考借鉴的经验?
看楼主的情况硬件上面多半不会有问题了,发送正常可以说明并口数据连接正常。但如用中断方式那么请检查下中断请求信号是否工作正常。(查询方式就无关紧要了),估计大概是驱动没写好吧(本人瞎猜...)。
TI的Uart扩展系列与ST或NXP出品系列基本是兼容的,所以可参考的驱动类资料还是很多的。楼主可以看下Linux 2.2.26内核自带的Ser_hpdca.c里面对16C550的操作方法,寄存器基本相同(连名字都一样),只不过是单通道。

希望上述信息对楼主有用:)

mochen5460 2008-08-28
  • 打赏
  • 举报
回复
谢谢楼上,该问题已经解决,看起来是片子的问题,换了块芯片就好了.开始的时候认为能发送数据,片子一定就是好的,所以一直没怀疑是片子的问题.
楼上的解答很详细,分都给你了
venus_zone 2008-08-27
  • 打赏
  • 举报
回复

不需要安装相应的驱动程序吗
又或者串口没有问题吧

6,163

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧