打印

STC单片机的1T模式问题,这方案可不可行?

[复制链接]
7065|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gxfamily|  楼主 | 2012-6-29 16:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想用STC12C5410AD单片机的I/O口同时输出四路每隔125ns变换一次的信号,方法是:外接24MHz晶振,利用它的1T模式,使用定时器定时中断每到125ns向P1口赋一个值。
我是这么想的,不知道可不可行?
或者有什么更好的办法吗?不过我只用过STC单片机。。。。

相关帖子

沙发
coody| | 2012-6-29 16:52 | 只看该作者
做不到的,进入中断都要几百nS了,再加堆栈保护,出栈,返回,都需要时间

使用特权

评论回复
板凳
StephenZRT| | 2012-6-29 17:42 | 只看该作者
传说中有一种叫CPLD/FPGA 的东西

使用特权

评论回复
地板
ningling_21| | 2012-6-29 17:55 | 只看该作者
试试看结果...

使用特权

评论回复
5
lyjian| | 2012-7-1 07:59 | 只看该作者
同时输出四路每隔125ns变换一次的信号
********************************
同时输出四路那和输出一路再分成四路有什么区别?
用5410AD的PCA功能来做,输出四路轻轻松松。

使用特权

评论回复
6
独自探索| | 2012-7-1 14:20 | 只看该作者
你是想输出4MHZ的方波吧?

使用特权

评论回复
7
独自探索| | 2012-7-1 14:28 | 只看该作者
STC 有一个可编程时钟输出功能,,你研究一下吧.

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
ttl_web + 1 赞一个!
8
johnsonz99| | 2012-7-1 17:06 | 只看该作者
用带PWM的单片机能够实现。

使用特权

评论回复
9
gxfamily|  楼主 | 2012-7-2 10:13 | 只看该作者
同时输出四路每隔125ns变换一次的信号
********************************
同时输出四路那和输出一路再分成四路有什么区别?
用5410AD的PCA功能来做,输出四路轻轻松松。 ...
lyjian 发表于 2012-7-1 07:59


四个信号变化周期一样,但高低电平不一定一样。。所以要分别输出

使用特权

评论回复
10
gxfamily|  楼主 | 2012-7-2 10:18 | 只看该作者
STC 有一个可编程时钟输出功能,,你研究一下吧.
独自探索 发表于 2012-7-1 14:28


你说的是定时器的时钟输出吗?STC只有两个,而我要四路信号,这么高的频率相位很难同步吧

使用特权

评论回复
11
gxfamily|  楼主 | 2012-7-2 10:20 | 只看该作者
用带PWM的单片机能够实现。
johnsonz99 发表于 2012-7-1 17:06


PWM只有两个,四路信号需要两片单片机,相位无法同步啊

使用特权

评论回复
12
独自探索| | 2012-7-2 10:30 | 只看该作者
本帖最后由 独自探索 于 2012-7-2 10:32 编辑

同步?你的要求,用一般的单片机永远也不可以同步....用FPGA吧

使用特权

评论回复
13
gxfamily|  楼主 | 2012-7-2 10:34 | 只看该作者
做不到的,进入中断都要几百nS了,再加堆栈保护,出栈,返回,都需要时间
coody 发表于 2012-6-29 16:52


单片机底层的堆栈啥的我不是很了解哦,我是这样想的,24MHz晶振,1T模式下机器周期是42ns,指令周期一般也就42ns,定时器8位自动重装没到125ns进一次中断,不知可行吗?你的意思是不是说单片机除了执行指令外,还会在其它一些操作上耗费时间?

使用特权

评论回复
14
hotyong| | 2012-7-2 11:01 | 只看该作者
如果你对中断等真的不了解的话,你先把中断成一个函数,先不管出入栈什么的,,进去至少42ns,出来也要42ns,定时到了你总要做件事吧,中断函数里不可能空着吧,要不还有什么意义呀,就算一条指令42ns,共126ns了。已经超标了。
如果你的输出信号确实是类似于PWM之类的信号,那还是PWM之类的内部外设应该可以,如果不是那就用CPLD或FPGA吧。
一般的单片机是除了执行指令要时间外其它的不占时间的,一些CPU速度高的如STM32可能需在FLASH等待时间,因为FLASH没那么快,

使用特权

评论回复
15
wukunshan| | 2012-7-2 13:20 | 只看该作者
超过2MHZ的方波,楼主就不要考虑率用单片机了。你这个4MHZ的方波实现很简单呀,简单且经济的方案就是:用一个4MHZ的有源晶振+HC245收发缓冲芯片,可以实现8路同步输出。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
ttl_web + 1 很给力!
16
lyjian| | 2012-7-3 21:44 | 只看该作者
超过2MHZ的方波,楼主就不要考虑率用单片机了。你这个4MHZ的方波实现很简单呀,简单且经济的方案就是:用一个4MHZ的有源晶振+HC245收发缓冲芯片,可以实现8路同步输出。 ...
wukunshan 发表于 2012-7-2 13:20

51要输出一个2MHZ的方波太简单了,直接T2的方波输出功能就行

使用特权

评论回复
17
zbysdz| | 2012-8-12 00:40 | 只看该作者
本帖最后由 zbysdz 于 2012-8-12 00:41 编辑

STC15F4K60S4
5个可编程时钟输出功能(对内部系统时钟或外部管脚的时钟输入进行时钟分频输出):
① T0在P3.5输出时钟;
② T1在P3.4输出时钟;
③ T2在P3.0输出时钟;
④ T3在P0.6输出时钟;
⑤ T4在P0.4输出时钟,
以上5个定时器/计数器输出时钟均可1~65536级分频输出。
在1T模式,选用24MHz晶振机器周期是41.6~ns,3个周期是124.9~ns,
调整匹配电容完全可以实现125ns
可编程时钟初装值为#65533,即#FFFDH

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
ttl_web + 1
18
科_技| | 2014-6-3 14:50 | 只看该作者
mark

使用特权

评论回复
19
yhn1973| | 2014-6-5 09:11 | 只看该作者
单纯输出4路4M方波,现在的51很容易做到,但要输出4路由相位关系的4M方波就基本上不可能了

使用特权

评论回复
20
coody| | 2014-6-5 12:04 | 只看该作者
STC的1T MCU输出独立的几路10MHZ以下的方波是没有问题的,定时器,BRT都可以,但是你要几路几MHZ的信号有相位差,就基本不可能了

使用特权

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

本版积分规则

0

主题

17

帖子

0

粉丝