2577|5

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求教MSP430F417模拟串口115200波特率 [复制链接]

模拟串口时,要得到115200波特率,如何设置1bit值和半个bit值的数值,请指教。谢谢

最新回复

楼主,这个通信最讲究稳定, 正常 用 UART HW 接口,这里只有 送收时钟的误差, 软件模拟,要把误差做的最小,只能采用 硬件的计数器,把时间设定到理想最中点, 然后开中断,在中断里面进行 数据shift in, shift out, 完成后设定 done_flag. 这个一定要计算奥,理论上论证过不了,实际哪怕跑通了,也是不能保证的。 祝你成功!  详情 回复 发表于 2016-6-23 20:47
 
点赞 关注

回复
举报

1950

帖子

4

TA的资源

版主

沙发
 
是用GPIO模拟吗,
一个bit 8.680us = 1000,000 / 115200.
理想的话,用中断来控制数据移位貌似不错,
数据质量不好的话,这个噪音过滤还的考虑考虑
 
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
5525 发表于 2016-6-23 07:12
是用GPIO模拟吗,
一个bit 8.680us = 1000,000 / 115200.
理想的话,用中断来控制数据移位貌似不错,
数 ...

是用IO口模拟的。1bit设置为9;0.5bit设置为4,试过了不行。

点评

1个bit设定,9.0us, 这个和理想 8.680us, 相差 0.320us. 正常 UART都是 一byte一同步, 一次同步送10bit, 最后那个bit 采样点偏差就是 3.2us. 在加上,你的时钟和对法时钟的误差,还有你软件模拟送的这个误差,有  详情 回复 发表于 2016-6-23 20:43
 
 
 

回复

39

帖子

0

TA的资源

一粒金砂(中级)

4
 
你的时钟是多少呢?用时钟除以波特率就是一位的时间了
 
 
 

回复

1950

帖子

4

TA的资源

版主

5
 
qiuqian3623 发表于 2016-6-23 09:10
是用IO口模拟的。1bit设置为9;0.5bit设置为4,试过了不行。

1个bit设定,9.0us, 这个和理想 8.680us, 相差 0.320us.
正常 UART都是 一byte一同步, 一次同步送10bit, 最后那个bit 采样点偏差就是 3.2us.
在加上,你的时钟和对法时钟的误差,还有你软件模拟送的这个误差,有点玄啊。

0.5 bit,设置 4 这个开始就加入了0.680us的误差,
总误差就是特有可能偏大
(0.680us + 3.2us+送时钟误差+收时钟误差+收软件误差) > 4.340us
 
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 

回复

1950

帖子

4

TA的资源

版主

6
 
楼主,这个通信最讲究稳定,
正常 用 UART HW 接口,这里只有 送收时钟的误差,
软件模拟,要把误差做的最小,只能采用 硬件的计数器,把时间设定到理想最中点,
然后开中断,在中断里面进行 数据shift in, shift out, 完成后设定 done_flag.

这个一定要计算奥,理论上论证过不了,实际哪怕跑通了,也是不能保证的。

祝你成功!
 
个人签名MicroPython中文社区https://micropython.org.cn/forum/  
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表