主题 : Tiny2451 485驱动问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 83908
精华: 0
发帖: 23
金钱: 120 两
威望: 24 点
综合积分: 46 分
注册时间: 2012-12-14
最后登录: 2014-06-26
楼主  发表于: 2014-04-09 14:49

 Tiny2451 485驱动问题

        最近公司产品使用Tiny2451平台,设备需要通过485控制从机。所以需要在原有的UART驱动中加上485芯片的方向管教控制,现在的硬件设计使用了GPE11~GPE13作为UART0~UART2对应的485方向管教控制IO。
        实现方式参考:友善6410开发板RS232改RS485(内核驱动修改)
        现在的问题是,驱动已经可以正确的设置GPE11~GPE13的配置值和数据值,能发送数据,但不能接收数据,然后用万用表和逻辑分析检查GPE11~GPE13的电平,一直都是高电平(值1)。下面是驱动的调试信息,端口值和配置寄存器的值,配合S3C2451芯片的数据手册来看,配置和值都是正确的,但IO口上的电平就是没有变化。
     [  539.475000] begin uart 1, begin start_tx 140, cfg 4294967281, GPECON a56aaaaa, value 0, GPEDAT c7c5, GPESEL 0, GPEUDP 55400000
[  539.475000] uart 1, start_tx 140, cfg 4294967281, GPECON a56aaaaa, value 1, GPEDAT d7c3, GPESEL 0, GPEUDP 55400000
[  539.480000] uart 1, stop_tx 140, cfg 4294967281, GPECON a56aaaaa, value 0, GPEDAT c7c3, GPESEL 0, GPEUDP 55400000
[  539.495000] begin uart 2, begin start_tx 141, cfg 4294967281, GPECON a56aaaaa, value 0, GPEDAT c7c5, GPESEL 0, GPEUDP 55400000
[  539.495000] uart 2, start_tx 141, cfg 4294967281, GPECON a56aaaaa, value 1, GPEDAT e7c3, GPESEL 0, GPEUDP 55400000
[  539.500000] uart 2, stop_tx 141, cfg 4294967281, GPECON a56aaaaa, value 0, GPEDAT c7c3, GPESEL 0, GPEUDP 55400000
[  539.510000] begin uart 3, begin start_tx 333, cfg 4294967281, GPECON a56aaaaa, value 0, GPEDAT c7c1, GPESEL 0, GPEUDP 55400000
[  539.510000] uart 3, start_tx 333, cfg 4294967281, GPECON a56aaaaa, value 1, GPEDAT c7c5, GPESEL 0, GPEUDP 55400000
[  539.515000] uart 3, stop_tx 333, cfg 4294967281, GPECON a56aaaaa, value 0, GPEDAT c7c3, GPESEL 0, GPEUDP 55400000

另外,一开始怀疑是SPI驱动的干扰,后面把SPI驱动也禁止了,结果一样。
请各路高手指点指点,已经折腾两天了,实在没有法子了。
级别: 新手上路
UID: 83908
精华: 0
发帖: 23
金钱: 120 两
威望: 24 点
综合积分: 46 分
注册时间: 2012-12-14
最后登录: 2014-06-26
1楼  发表于: 2014-04-09 14:52

 回 楼主(jackfung) 的帖子

Linux版本是3.6