您尚未登录。

楼主 # 2021-11-22 09:57:39

swhkt
会员
注册时间: 2021-11-19
已发帖子: 16
积分: 16

全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

目前我们平台T507使用的驱动是kernel/linux-4.9/drivers/tty/serial/sunxi-uart.c。
目前我的是修改是在tx发送的时候拉高GPIO,stop的时候拉低,但是发现发送字符超过一定数据的会有必现发送数据丢失,看起来的原因是GPIO拉早了,需要去判断fifo为空的时候才能拉低GPIO,我参考了 https://whycan.com/t_4012.html 这个提问加了下面的修改,机器都不能开机了,串口也用不了,请问有没有大神指点下,谢谢!

                while (port->ops->tx_empty(port) != TIOCSER_TEMT)
              
                    ;
                }

离线

#1 2021-11-22 10:47:05

tigger
Moderator
注册时间: 2021-06-18
已发帖子: 172
积分: 111

Re: 全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

全志官方SDK已经支持四线UART,

dts配置一下就可以了。

离线

楼主 #2 2021-11-22 10:58:24

swhkt
会员
注册时间: 2021-11-19
已发帖子: 16
积分: 16

Re: 全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

tigger 说:

全志官方SDK已经支持四线UART,

dts配置一下就可以了。

我是T507平台,我的驱动没支持,我们没有直接对接原厂。朋友你的驱动也是用sunxi-uart.c。这个的吗?

离线

#3 2021-11-22 11:00:08

tigger
Moderator
注册时间: 2021-06-18
已发帖子: 172
积分: 111

Re: 全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

首先看下硬件datasheet,这组UART是不是4线的?

离线

楼主 #4 2021-11-22 11:16:03

swhkt
会员
注册时间: 2021-11-19
已发帖子: 16
积分: 16

Re: 全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

tigger 说:

首先看下硬件datasheet,这组UART是不是4线的?

是四线的。

离线

#5 2021-11-22 11:19:19

tigger
Moderator
注册时间: 2021-06-18
已发帖子: 172
积分: 111

Re: 全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

是哪一组串口,我帮你看下。

离线

楼主 #6 2021-11-22 11:22:34

swhkt
会员
注册时间: 2021-11-19
已发帖子: 16
积分: 16

Re: 全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

tigger 说:

首先看下硬件datasheet,这组UART是不是4线的?

能不能贴一下你的dts是怎么配置的?

离线

楼主 #7 2021-11-22 11:23:32

swhkt
会员
注册时间: 2021-11-19
已发帖子: 16
积分: 16

Re: 全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

tigger 说:

是哪一组串口,我帮你看下。

uart2 。

离线

#8 2021-11-22 11:33:39

tigger
Moderator
注册时间: 2021-06-18
已发帖子: 172
积分: 111

Re: 全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

swhkt 说:
tigger 说:

是哪一组串口,我帮你看下。

uart2 。

找到 dts 文件,看下是不是四线配置。

离线

楼主 #9 2021-11-22 11:47:50

swhkt
会员
注册时间: 2021-11-19
已发帖子: 16
积分: 16

Re: 全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

tigger 说:
swhkt 说:
tigger 说:

是哪一组串口,我帮你看下。

uart2 。

找到 dts 文件,看下是不是四线配置。

  uart2_pins_a: uart2@0 {
                             allwinner,pins = "PH5", "PH6", "PH7", "PH8";
                               allwinner,pname = "uart2_tx", "uart2_rx",
                                                 "uart2_rts", "uart2_cts";                                                                            
                                allwinner,function = "uart2"
                               allwinner,muxsel = <3>;

看dts是有配置的,但是PH8被我们已经用来当485的power了。PH7是就是那个控制脚。按你刚刚跟我讨论的话,是不是我在dts里面打开这个东西就可以实现485了?
linux,rs485-enabled-at-boot-time

离线

#10 2021-11-22 11:52:01

哇酷小二
管理员
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,388
积分: 1902
个人网站

Re: 全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

应该是PH8 CTS控制RS485收发。





离线

楼主 #11 2021-11-22 12:04:57

swhkt
会员
注册时间: 2021-11-19
已发帖子: 16
积分: 16

Re: 全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

哇酷小二 说:

应该是PH8 CTS控制RS485收发。

那按硬件的接法我们已经没有办法用全志现成的dts配置了? 只能把这个控制当是普通的GPIO来控制了,回到我一开始的问题了。

离线

#12 2021-11-22 13:37:07

cube
会员
注册时间: 2021-03-11
已发帖子: 288
积分: 202.5

Re: 全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

swhkt 说:
哇酷小二 说:

应该是PH8 CTS控制RS485收发。

那按硬件的接法我们已经没有办法用全志现成的dts配置了? 只能把这个控制当是普通的GPIO来控制了,回到我一开始的问题了。

你现在硬件用哪个IO控制485收发?

离线

楼主 #13 2021-11-22 13:40:51

swhkt
会员
注册时间: 2021-11-19
已发帖子: 16
积分: 16

Re: 全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

cube 说:
swhkt 说:
哇酷小二 说:

应该是PH8 CTS控制RS485收发。

那按硬件的接法我们已经没有办法用全志现成的dts配置了? 只能把这个控制当是普通的GPIO来控制了,回到我一开始的问题了。

你现在硬件用哪个IO控制485收发?

之前的贴错了 都是用PI,IO控制用的 P17(UART2-RTS)。

离线

#14 2021-11-22 13:43:05

哇酷小二
管理员
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,388
积分: 1902
个人网站

Re: 全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

@swhkt
那先飞线测试吧,你的dts如果配了四线,那么按理CTS就是控制485的收发。等你好消息。





离线

楼主 #15 2021-11-22 13:47:30

swhkt
会员
注册时间: 2021-11-19
已发帖子: 16
积分: 16

Re: 全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

哇酷小二 说:

@swhkt
那先飞线测试吧,你的dts如果配了四线,那么按理CTS就是控制485的收发。等你好消息。

硬件改不了。如果能修改硬件,我们都可以直接把485芯片的ID直接接到TX去,让硬件自己控制。

离线

楼主 #16 2021-11-22 13:48:49

swhkt
会员
注册时间: 2021-11-19
已发帖子: 16
积分: 16

Re: 全志android 系统 uart驱动里面控制一个io脚实现rs485功能,应该如何修改

uart2_485.png
这是个硬件的连接图

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn