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

[复制链接]
8257|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 | 显示全部楼层
试试看结果...
lyjian 发表于 2012-7-1 07:59 | 显示全部楼层
同时输出四路每隔125ns变换一次的信号
********************************
同时输出四路那和输出一路再分成四路有什么区别?
用5410AD的PCA功能来做,输出四路轻轻松松。
独自探索 发表于 2012-7-1 14:20 | 显示全部楼层
你是想输出4MHZ的方波吧?
独自探索 发表于 2012-7-1 14:28 | 显示全部楼层
STC 有一个可编程时钟输出功能,,你研究一下吧.

评分

参与人数 1威望 +1 收起 理由
ttl_web + 1 赞一个!

查看全部评分

johnsonz99 发表于 2012-7-1 17:06 | 显示全部楼层
用带PWM的单片机能够实现。
 楼主| gxfamily 发表于 2012-7-2 10:13 | 显示全部楼层
同时输出四路每隔125ns变换一次的信号
********************************
同时输出四路那和输出一路再分成四路有什么区别?
用5410AD的PCA功能来做,输出四路轻轻松松。 ...
lyjian 发表于 2012-7-1 07:59


四个信号变化周期一样,但高低电平不一定一样。。所以要分别输出
 楼主| gxfamily 发表于 2012-7-2 10:18 | 显示全部楼层
STC 有一个可编程时钟输出功能,,你研究一下吧.
独自探索 发表于 2012-7-1 14:28


你说的是定时器的时钟输出吗?STC只有两个,而我要四路信号,这么高的频率相位很难同步吧
 楼主| gxfamily 发表于 2012-7-2 10:20 | 显示全部楼层
用带PWM的单片机能够实现。
johnsonz99 发表于 2012-7-1 17:06


PWM只有两个,四路信号需要两片单片机,相位无法同步啊
独自探索 发表于 2012-7-2 10:30 | 显示全部楼层
本帖最后由 独自探索 于 2012-7-2 10:32 编辑

同步?你的要求,用一般的单片机永远也不可以同步....用FPGA吧
 楼主| gxfamily 发表于 2012-7-2 10:34 | 显示全部楼层
做不到的,进入中断都要几百nS了,再加堆栈保护,出栈,返回,都需要时间
coody 发表于 2012-6-29 16:52


单片机底层的堆栈啥的我不是很了解哦,我是这样想的,24MHz晶振,1T模式下机器周期是42ns,指令周期一般也就42ns,定时器8位自动重装没到125ns进一次中断,不知可行吗?你的意思是不是说单片机除了执行指令外,还会在其它一些操作上耗费时间?
hotyong 发表于 2012-7-2 11:01 | 显示全部楼层
如果你对中断等真的不了解的话,你先把中断成一个函数,先不管出入栈什么的,,进去至少42ns,出来也要42ns,定时到了你总要做件事吧,中断函数里不可能空着吧,要不还有什么意义呀,就算一条指令42ns,共126ns了。已经超标了。
如果你的输出信号确实是类似于PWM之类的信号,那还是PWM之类的内部外设应该可以,如果不是那就用CPLD或FPGA吧。
一般的单片机是除了执行指令要时间外其它的不占时间的,一些CPU速度高的如STM32可能需在FLASH等待时间,因为FLASH没那么快,
wukunshan 发表于 2012-7-2 13:20 | 显示全部楼层
超过2MHZ的方波,楼主就不要考虑率用单片机了。你这个4MHZ的方波实现很简单呀,简单且经济的方案就是:用一个4MHZ的有源晶振+HC245收发缓冲芯片,可以实现8路同步输出。

评分

参与人数 1威望 +1 收起 理由
ttl_web + 1 很给力!

查看全部评分

lyjian 发表于 2012-7-3 21:44 | 显示全部楼层
超过2MHZ的方波,楼主就不要考虑率用单片机了。你这个4MHZ的方波实现很简单呀,简单且经济的方案就是:用一个4MHZ的有源晶振+HC245收发缓冲芯片,可以实现8路同步输出。 ...
wukunshan 发表于 2012-7-2 13:20

51要输出一个2MHZ的方波太简单了,直接T2的方波输出功能就行
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

查看全部评分

科_技 发表于 2014-6-3 14:50 | 显示全部楼层
yhn1973 发表于 2014-6-5 09:11 | 显示全部楼层
单纯输出4路4M方波,现在的51很容易做到,但要输出4路由相位关系的4M方波就基本上不可能了
coody 发表于 2014-6-5 12:04 | 显示全部楼层
STC的1T MCU输出独立的几路10MHZ以下的方波是没有问题的,定时器,BRT都可以,但是你要几路几MHZ的信号有相位差,就基本不可能了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

17

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部