搜索
bottom↓
回复: 14

请问stmf103 的USART1->DR赋值后到真正串口输出的延迟时间

[复制链接]

出0入0汤圆

发表于 2016-5-4 23:16:36 | 显示全部楼层 |阅读模式
先看代码 RS485_T_EN;USART1->DR=0x55;while((USART1->SR&0X40)==0);RS485_R_EN;
初衷是 时能发送线后 立即发送数据到串口寄存器 发送完毕后 关闭发送线
实际上用示波器查看 USART1->DR=0x55; 赋值后 过约200us在TX够才看到真正的拉低信号(起始位)
而且200us不是固定的  范围大概在2us~200uS跳动 对调试485 的收发使能线 是一个麻烦事情 得到的波形也不干净 (大部分情况能正常通讯)
请问大家是如何解决这个问题?

注:关闭了所有中断 也没有用DMA

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2016-5-4 23:21:30 | 显示全部楼层
可以判断发送是否完成.

出0入0汤圆

 楼主| 发表于 2016-5-4 23:25:04 | 显示全部楼层
附上照片  困扰三天了 无头绪 请大家帮忙了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-5-5 00:03:26 | 显示全部楼层
首先485的DE信号就应该提前数据信号给出,你现在这样貌似没有问题,两个信号之间的时间差只要在器件和总线约规的容忍范围内就没问题,另外你这个确实有点不正常,不过我看你示波器用的是2V/格,也就是说是在收发器后面测量的波形,你收发器的传输延时考虑进去了没有?
DE信号只有0.4V是不是太低了?接近TTL or CMOS信号标准的下限了,这样会不会导致器件收发转换的时候存在不确定性?
建议直接从单片机管脚上取这两个信号。

出0入0汤圆

发表于 2016-5-5 09:18:54 | 显示全部楼层
楼主还健在呀,数据前面还有个起始位的

出0入0汤圆

发表于 2016-5-5 09:41:55 | 显示全部楼层
干嘛去纠结这个时间,直接判断是否发完就OK

出0入0汤圆

 楼主| 发表于 2016-5-5 21:59:46 | 显示全部楼层
把视频传到优酷上面了v.youku.com/v_show/id_XMTU1OTA5OTc4OA==.html?sharefrom=iphone
我测试的就是STM32 TXD的信号 RS485的转发芯片几乎是n秒级的延迟 可以忽略不计
这个现象直接造成了在485总线上发送的数据的起始位前发出一个短暂的高电平(正常来说rs485无数据时候是0v,而不是rs232的+12V),这个高电平 在实际用中暂时可以正常通讯,但心里总是 有担心的;
AVR的串口启动时间是固定的 ,就没有这样的问题
换了2个开发板 都是一样的 目前貌似是stm硬件问题  解决方法: 通过外部IO中断方法实现 :在TXD上 与 IO相连  当有起始位的时候 IO引起外部中断 瞬间拉高读写线,延迟在ns级别。

出0入0汤圆

发表于 2016-5-6 08:28:32 来自手机 | 显示全部楼层
楼主还没有搞懂485,空闲为高电平。

出0入0汤圆

发表于 2016-5-6 08:56:39 | 显示全部楼层
启动时会明显延时,其他时候需时1-bit。
RM Figure 281:
Setting the TE bit drives the USART to send an idle frame before the first data frame.

出0入0汤圆

发表于 2016-5-6 12:33:20 | 显示全部楼层
延迟时间小于一个bit的时间,具体多少,跟UART模块内部的工作状态决定
做设计的时候,不可以把此延迟数值当作固定的

出0入0汤圆

 楼主| 发表于 2017-8-9 23:11:03 | 显示全部楼层
  问题已解决
9楼说的对  stm32固有的特性  不要去纠结了
其实所有芯片的所有定时器也好 波特率也好
在启动定时器的瞬间 不可能是瞬间开始的 它还要等系统定时器的一个完整分频周期结束后,在新的一个周期来的瞬间 挂上档位 才开始计数。

解决方法:抛弃软件换向,采用硬件换向
自动切换方向的 max13487芯片 要么使用三极管做硬件电平切换。已经大批量生产,硬件方案是最省心的
另外:stm32做多主机通信不建议用rs485 ,很不灵活    用CAN成本几乎一样 ,灵活性大大增加

出0入0汤圆

发表于 2017-8-11 17:56:49 | 显示全部楼层
www.btcnc.net 发表于 2017-8-9 23:11
问题已解决
9楼说的对  stm32固有的特性  不要去纠结了
其实所有芯片的所有定时器也好 波特率也好

厉害了我的哥  一年过去了

出0入0汤圆

发表于 2017-8-11 22:39:06 | 显示全部楼层
我觉得没有必要去纠结这个时间问题,没太大影响

出0入0汤圆

发表于 2017-8-12 04:56:54 来自手机 | 显示全部楼层
STT 发表于 2017-8-11 17:56
厉害了我的哥  一年过去了

估计搞定很久了,兄台回想起还有个帖子得给后来者指引

出110入26汤圆

发表于 2017-8-12 09:37:27 来自手机 | 显示全部楼层
谢谢楼主分享经验
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-21 18:28

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表