T113-S3 RTS时序问题
-
用T113-S3的串口1,2,3作为RS485接口
用串口的RTS引脚作为RS485收发控制
但是发现数据发送完成了,RTS依然有效,持续持间差不多30ms(9600波特率)
把波特率调高,改成115200,数据发送完成了,RTS依然有效,持续持间差不多30ms,这个明显RTS持续时间太长了,如何解决?或者问题可能在哪里?
用 stty -F /dev/ttyS1 crtscts 使能RTS控制
echo 3333333 > /dev/ttyS1
用linux命令测试的
图中绿色的TXD信号
黄色的是RTS信号
不必纠结RTS高低电平有效问题,我们的485电路设计的DE/RE引脚接有有反相器反向的 -
@steelen 30ms 感觉有点长啊, 这个能设置吗?
-
@kakatoo 不是有点儿长,是太长了
-
感觉RTS是超时复位了,估计是驱动问题
-
@yuzukitsuru 好像硬件不支持自动流控
-
@steelen 楼主,你好。我最近调rtl8821cs的蓝牙。发现开了流控,下载固件的时候就会通讯失败。关了流控就好了。想请教一下,你这个问题解决了吗
-
@qinlinbin 硬件流控有BUG,需要关闭硬件流控设置,自己软件实现
-
@yuzukitsuru 大佬,那这个问题修复了吗
-
-
初级485功能介绍
初级485功能是选定一个外部gpio脚,用于TTL->485转换芯片的发送使能功能
但此gpio具体要接在转换芯片的哪一个管脚上,以及高低电平代表的含义,以转换芯片的使用手册为准
典型MAX3485电路链接:
https://www.elecfans.com/dianzichangshi/20180118618448.html
DE和RO为使能管脚。DE为低电平、RE为低电平时为接收;DE为高电平、RE为高电平时为发送;RO和DI为数据管脚。RO为接收,DI为发送;因此我们经常将DE和RE直接连接,用一个IO口控制。
dts配置
需要添加以下三个成员:
- sunxi,uart-rs485
- 0:485模式关闭
- 1:485模式使能
- sunxi,uart-485fl
- 0:485 gpio管脚数值为0时表示发送状态
- 1:485 gpio管脚数值为1时表示发送状态
- sunxi,uart-485oe-gpios
- 用于外部转换芯片使能信号的gpio引脚,GPIO_ACTIVE_HIGH含义为默认为高电平
示例:
uart1: uart@2500400 { ... status = "okay"; //添加以下三行 sunxi,uart-rs485 = <1>; sunxi,uart-485fl = <1>; sunxi,uart-485oe-gpios = <&pio PG 8 GPIO_ACTIVE_HIGH>; };
- sunxi,uart-rs485
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号