当前位置: 代码迷 >> WinCE >> 扩展串口芯片驱动的有关问题
  详细解决方案

扩展串口芯片驱动的有关问题

热度:60   发布时间:2016-04-28 12:52:07.0
扩展串口芯片驱动的问题
PXA270+WinCE6.0 通过总线扩展串口 芯片 ST16c554 扩出了4个串口
对串口了解不够,请问一下,写扩展串口的驱动需要注意哪些?
对比芯片资料发现里面寄存器的配置与16550差别不大,是不是可以继承16550的pdd层?
mdd层需要修改吗,还是要单独取出来?

------解决方案--------------------
差别不大。只是一些FIFo大小不一致吧。

嘿嘿就是根绝那个改的。网上很多例子了。good luck
------解决方案--------------------
探讨
PXA270+WinCE6.0 通过总线扩展串口 芯片 ST16c554 扩出了4个串口
对串口了解不够,请问一下,写扩展串口的驱动需要注意哪些?
对比芯片资料发现里面寄存器的配置与16550差别不大,是不是可以继承16550的pdd层?
mdd层需要修改吗,还是要单独取出来?

------解决方案--------------------
楼主还是去看看牛人ARM-WinCE的一片文章:

WinCE中串口驱动及接口函数介绍
http://blog.csdn.net/nanjianhui/archive/2008/07/09/2627755.aspx
------解决方案--------------------
移植public 下的吧
------解决方案--------------------
基本可以参照2440的串口驱动来做,因为本人只对2440的比较熟悉,呵呵,原理一样的。
看看你扩展的中断是否是外部中断。注册表部分改改,驱动部分主要就是三个方面,一个是初始化,一个是发送处理,一个是接收处理。
本人做过VK3224的扩展串口,这个芯片实在烂,一开始我也是想按PDD架构做的,发现很难实现,串口之间造成冲突,只能实现一个口。后来就采用简单流驱动解决了
------解决方案--------------------
有可能是flow control的問題~
你先把預設32 bytes FIFO interrupt
改1byte就中斷~
要是可以 再去看看是不是DCB參數
關於RTS_CONTROL_HANDSHAKE 跟RTS_CONTROL_ENABLE的問題
之前我有遇過上述的情況
------解决方案--------------------
探讨
就是设成了1byte也没又产生中断,但是读lsr的话,data ready位是置位的,另外ier的设置,bit0是置位了的,这一位是fifo中使能接收数据有效中断和超时中断的。不明白还有什么地方可以影响到中断的产生。

------解决方案--------------------
路过看看..............
------解决方案--------------------
很久没来,出现了许多好的帖子,帮顶。
------解决方案--------------------
搞了几天,我的可以了,发现和硬件关系不是很大,修改不多。注意PXA270 的自带串口驱动 ,多多借鉴。
  相关解决方案