OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2625|回复: 1

阿波罗STM32F429 RS485通讯使能端通过PCF8574控制的延时问题

[复制链接]

7

主题

64

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
3190
金钱
3190
注册时间
2013-12-8
在线时间
438 小时
发表于 2019-9-21 16:08:29 | 显示全部楼层 |阅读模式
我的单片机是原子的阿波罗STM32F429 与施耐德的PLC通过Modbus协议进行485通讯。
单片机为主站,PLC为从站。
调试时发现PLC能够收到单片机的下发通讯报文,并能正确动作,但单片机收到的PLC回复报文死活不对。
我在通讯链路中加入USB转485对整个的通讯报文监视发现PLC的回复报文是正确的,但单片机就是收不到正确报文。
我通过对比报文发现单片机收到的报文比PLC发出报文少了开始的近11个字节的数据。
为了查找这个原因,我在线跟踪后发现485芯片的读取控制端用的是PCF8574的P6口,这个是IIC接口,485芯片从发送模式改为接收模式需要运行这个PCF8574_WriteBit(RS485_RE_IO,en)函数,而运行这个函数需要将近25ms的时间,就是这个25ms造成了有部分数据无法接收。从而使得MODBUS通讯一直报错无法正常通讯。
最后希望把485端口的控制端直接用IO控制,减少切换时间。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

43

主题

228

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1073
金钱
1073
注册时间
2012-1-10
在线时间
237 小时
发表于 2019-9-23 10:09:29 | 显示全部楼层
方案2:将串口转485的芯片换成带自动切换(发送/接收)类型的芯片。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-16 15:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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