怎么最简单得到115200Hz的方波

[复制链接]
楼主: lfc315
手机看帖
扫描二维码
随时随地手机跟帖
yzqok| | 2018-3-15 11:05 | 显示全部楼层
支持 老t大哥的方法靠谱

使用特权

评论回复
cjseng| | 2018-3-15 11:11 | 显示全部楼层
我觉得用一个8脚的1T单片机,直接用定时器定时翻转IO就可以了,反正又不干别的事,定时精度还是能保证的。

使用特权

评论回复
lfc315|  楼主 | 2018-3-15 11:14 | 显示全部楼层
cjseng 发表于 2018-3-15 11:11
我觉得用一个8脚的1T单片机,直接用定时器定时翻转IO就可以了,反正又不干别的事,定时精度还是能保证的。 ...

有没有具体的单片机型号呀?

使用特权

评论回复
gx_huang| | 2018-3-15 11:33 | 显示全部楼层
mcu5i51 发表于 2018-3-15 10:07
数据是AA,”开始位“为0,之后的数据应该为1,0xAA=0b10101010,停止位为1

不见得,UART是先发送低位数据位的

使用特权

评论回复
cjseng| | 2018-3-15 12:25 | 显示全部楼层
lfc315 发表于 2018-3-15 11:14
有没有具体的单片机型号呀?

STC的就有很多啊,不过都是不带外部晶振的,有一定的个误差,要求不高的话可以。
16脚或20脚的STC有带外部晶振的,比起4060之类的还是简单些。

使用特权

评论回复
fzyuan| | 2018-3-15 15:15 | 显示全部楼层
mcu5i51 发表于 2018-3-15 10:07
数据是AA,”开始位“为0,之后的数据应该为1,0xAA=0b10101010,停止位为1

UART的基本原理还应该学习一下。

使用特权

评论回复
pener| | 2018-3-15 17:35 | 显示全部楼层
NE555芯片了解一下

使用特权

评论回复
tyw| | 2018-3-15 18:26 | 显示全部楼层
本帖最后由 tyw 于 2018-3-15 18:29 编辑

去淘只有源晶振吧, 大伙太数码了, 这活儿让模电干简洁省事.哈哈

有源晶振的接法.pdf (225.51 KB)

使用特权

评论回复
ZG11211| | 2018-3-15 20:47 | 显示全部楼层
估计出来都是梯形波

使用特权

评论回复
linqing171| | 2018-3-15 21:08 | 显示全部楼层
老T叔的这个抖动可以高达1~2个时钟周期,因为正在执行的指令,比如长跳转或者触发指令,是不能进入中断的,必须等着当前指令结束后才能进入中断。
串口的start是低电平,先出来的是低位,然后逐渐高位,最后的stop是高电平。但是这个必须要填数,还要占中断,主程序就不能有更高优先级的苛刻任务了。
所以我认为用AVR等MCU,有变频PWM输出的定时器、PCA等等外设,才是最好的。

使用特权

评论回复
ddllxxrr| | 2018-3-16 10:14 | 显示全部楼层
用51单片机定时器,即可实现,输出为任何了个管脚

使用特权

评论回复
wsmysyn| | 2018-3-16 12:48 | 显示全部楼层
有成本要求么?
没有的话,可以使用CDCE913 PLL芯片,可编程的三路频率输出,最高到230MH,或者同类型频率较低的芯片,内部带eeprom的,编程后,再次上电就可以直接输出115.2KHz
IIC接口,通信简单。

使用特权

评论回复
gx_huang| | 2018-3-16 13:22 | 显示全部楼层
tyw 发表于 2018-3-14 19:38
用51单片机+11.0592的晶振,如何产生115200的波特率?
本来感觉这个小意思,直接初始化定时器1,程序如下: ...

其实51的定时器,很多有定时器溢出管脚触发翻转输出的功能,可以输出方波,除了初始化定时器,不需要其它软件MCU时间消耗,频率误差也只有晶体的误差,没有MCU执行周期的误差。

使用特权

评论回复
gx_huang| | 2018-3-16 13:29 | 显示全部楼层
以下是51芯片T2定时器输出方波的例子,零误差。
其它很多芯片,定时器都可以输出方波,纯硬件的。
如果MCU有PWM,也可以PWM输出方波。
TIM图片20180316132509.png
TIM图片20180316132630.png

使用特权

评论回复
gx_huang| | 2018-3-16 13:34 | 显示全部楼层
当然,普通定时器中断,软件输出方波,也是可以的。
如果软件不作任何处理,输出方波的时间会前后抖动。
如果软件进行处理,定时器最高优先级,主程序检测定时器是否快到溢出了,进入全NOP的一段程序,可以保证每次定时器中断不会有前后抖动。
不过,此法,没有一定水平的人,玩不好。
很久以前,做寻呼机的波特率时钟源,就这么玩过,我的成本最低。博士的成本最高,用FPGA。

使用特权

评论回复
delin17| | 2018-3-16 13:48 | 显示全部楼层
用串口发的,有没有考虑停止位,开始位

使用特权

评论回复
苏山人家| | 2018-3-16 18:01 | 显示全部楼层
本帖最后由 苏山人家 于 2018-3-16 18:03 编辑

低成本的那就找个晶振分频,或者找个单片机写个小程序就好,现在的单片机也很便宜。上面说有说用串口模拟的,既然都有串口了直接用定时器多好啊。哪怕用串口模拟那也要用同步模式啊,异步上面又起始位停止位还有校验位会乱的。
现在单片机最小系统也很少元件,不过如果精度要求高,那这个单片机你还是的用个外部晶振才行。

使用特权

评论回复
通宵敲代码| | 2018-3-16 18:34 | 显示全部楼层
找个两毛线的OTP片子,
想要多少Hz的都行啊。

使用特权

评论回复
jimsboy| | 2018-3-16 18:44 | 显示全部楼层
delin17 发表于 2018-3-16 13:48
用串口发的,有没有考虑停止位,开始位

当然要考虑了啊。
一开始,是高电平,先来一个低电平作起始位,长度一个波特率周期,然后送10101010然后接着一个位的停止位1,接着又是下一个的开始位0,如此循环

使用特权

评论回复
cjseng| | 2018-3-16 23:09 | 显示全部楼层
ddllxxrr 发表于 2018-3-16 10:14
用51单片机定时器,即可实现,输出为任何了个管脚

12T、6T的51可能无法实现,除非定制晶振。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则