谁知道如何给STC单片机挂快一点的晶振?我把STC烧录软件的广告给弄下去了
虽然有很多人批判STC但是它很便宜,于是我也就用了,不过我给它挂24m(包括)以上的晶振时 总是振不起来Chinese:正在尝试与 MCU/单片机 握手连接 ...
MCU Type is: STC89C52RC
MCU Firmware Version: 4.3C
Chinese:MCU 固件版本号: 4.3C
Double speed / 双倍速: 12T/单倍速
振荡放大器增益: full gain
下次下载时 P1.0, P1.1 与下载无关
内部扩展AUX-RAM: 允许访问(强烈推荐)
下次下载用户应用程序时将数据Flash区擦除: NO
用户软件启动内部看门狗后: 复位关看门狗
内部时钟频率:7.938972M.
外部时钟频率:7.938972M.
We are trying to program ...
Chinese:正在重新连接 ...
Now baud is: / 当前波特率为: 19200 bps.
We are erasing application flash...
正在擦除应用程序区... ( 00:00 )
正在下载... ( 开始时间: 20:38:25 )
Program OK / 下载 OK
VerifyOK / 校验 OK
erase times/擦除时间 :00:00
program times/下载时间: 00:01
Have already encrypt. / 已加密
24m的晶振只振到了7m多 不知为何 电容是22pf的芯片89c52rc 40c
stc烧录工具ourdev_596234LETENY.rar(文件大小:3.05M) (原文件名:STC-ISP(STC官方烧录工具).rar)
反汇编过的ourdev_596235KDR16Y.rar(文件大小:298K) (原文件名:反汇编过.rar)
我对姚永平在软件上做广告很气愤,就给他反汇编了,把上免得广告给去掉了,哈哈
希望有大虾帮帮忙 24M晶振很容易起振的,在晶振两端并个电阻,阻值1-100K之间试 回复【1楼】kevinzcp
-----------------------------------------------------------------------
10k都烧不进程序了
100k 没有改变 你是不是用了usb 转串口 的来烧写? 在烧写程序时好象用的是它内部的RC频率,,这个只是好象,,,烧写完看实际怎么跑的吧 用什么软件反汇编?? 我随便挂个27M的跑STC11L04E,1M电阻+30P电容*2,似乎没出过问题 不会是3次泛音的晶振吧?换个基频24M的试试。 楼主把老姚的上门广告去了,自己加上广告在下面
啊哈哈哈哈 还没发现这样的问题 回复【8楼】skynet 青青草原
楼主把老姚的上门广告去了,自己加上广告在下面
啊哈哈哈哈
-----------------------------------------------------------------------
好同学 回复【3楼】fedora10
-----------------------------------------------------------------------
恩用的串口
STC用串口烧 回复【7楼】NowCan
-----------------------------------------------------------------------
你说的是啥意思 22m的是小一点的可以放到芯片座里的,那个24的只有一个大个的,有小的好几倍大,是不是晶振类型的问题?还有那个电容我也换了好几个,30,,2,18,10 都试过 只有小小变化。 回复【4楼】wsh5188
-----------------------------------------------------------------------
速度和他写的一样 7m就是比12m的慢 回复【5楼】lv998127
-----------------------------------------------------------------------
我也不知道 找了一哥们给弄的,看起来挺简单 老姚的东西没有加密,很容易,我给我哥写了一个程序,他愣是没弄出来(哈哈,我给加密了) 去广告的软件版本不见了不好,
而且,选择的版本不对,少了很多型号如89c514rd+,应该选v4.87版本去广告,才全面一点。 回复【12楼】electron_love
回复【7楼】nowcan
-----------------------------------------------------------------------
你说的是啥意思 22m的是小一点的可以放到芯片座里的,那个24的只有一个大个的,有小的好几倍大,是不是晶振类型的问题?还有那个电容我也换了好几个,30,,2,18,10 都试过 只有小小变化。
-----------------------------------------------------------------------
我没有买过三次泛音的晶振,STC的数据手册最后有个说明,专门讲到这个问题,27M以上的晶振建议不要选择三次泛音晶振,否则容易起振在1/3的频率上。
关于三次泛音晶振,可以参考这个网页 http://www.ise.sdu.edu.cn/web/gaopinzaixian07/jiaoan/3/35.htm 三次泛音晶振,什么样的封装叫做三次泛音晶振?这东西与封装有关系吗?
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_596584YLCPDC.jpg
(原文件名:晶振打大.jpg)
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_596585CBS0TV.jpg
(原文件名:晶振 小.jpg)
好像就像这两个 比较小振的挺好,大一点的不行。
哪个是三次泛音? 百度了一下没看见 ,一会儿去买电子的地方看看。 是3次泛音的晶振吧,换个基频24M的试试 直接无语了,人家最高的晶振还没我的大,修手机的,修电脑的,修电器的,我都进去了,无奈都没有。最无奈的我去电子城问,你有p s two 吗?人家说,啥叫ps头啊?我们没有ps头,难懂他们不这么叫?一修手机的兄弟名言.晶振只有32768的 . 晶振只有32568~
你问他是32768k~还是32768m啊~
今天去逛电子城发现居然有2种,相差1000倍差点买错了~ 现在的情况很无奈 只有三次泛音晶振,别的想买都买不到,用555做外部时钟源高频会不稳定,有没有一种方法把三次泛音晶振能连接的stc的芯片上?中间外加一个隔离的东西,模电数电我都没学啊,听说可以将信号差分放大,但是自己做不出来,芯片只要高频都很很很贵。这问题越来越复杂了 一定要使用泛音晶振啊?一般的11.0592,22.1184等等都很好买啊 回复【23楼】XA144F
-----------------------------------------------------------------------
这些我都有,我想用24m32m40m的晶振,好像都是泛音晶振。 泛音晶振一般是用在通讯上的,你要用可以做一个选频电路,把他的谐波选出来作为信号,也可以用有源晶振,这个高频比较好卖 试试有源晶振,或换单片机,这个你就算能跑到100M也没AVR的快 【26楼】 hsztc
我对比过,比AVR的块. 老丁,怎么对比的?
我对比的结果是同频下慢很多哦,6M的M32我用STC的到22.1184M,感觉差不多了,似乎还能快点。 回复【5楼】lv998127
用什么软件反汇编??
-----------------------------------------------------------------------
静态反汇编:
C32Asm国产的,挺不错;
W32DASM建议下载无极版的;
反汇编+调试OLYDBG 【28楼】 xiaobendan 仲跻东
16M AVR 和 40M的有源晶振跑6T的STC89 比
同频 avr 和 12T的STC89 90感觉 快 4-6倍
同频 avr 和 6T的STC89 90感觉 快 2-3倍
同频 AVR 和 1T的STC 感觉 差不多,但IO输出AVR快
但是STC能使的主频比AVR高 【30楼】 zhxzhx 一丁
也就是说AVR没有STC快?
能贴个1T的STC的指令集看看吗,我没用过STC的?
不过AVR最快的主频都在20MHz,而不是16M啊。几乎所有的型号都有20MHz的版本。 【31楼】 hsztc
对比指令集没有多大意义,各个指令使用的频率不一样,
我用keil C 和CodeVisionAVR 感觉Keil 出的代码比AVR的小
STC 和AVR的指令都不是全是1T的
在STC12C5628AD.pdf里有1T指令指令表,我觉得改善了MOV A(12倍),Rn MOV Rn,A(6倍)和INC DPTR(24倍) 这几个指令意义比较大
SET Bit,CLR Bit 要4个周期,我感觉IO比AVR慢还是对的. ...看到了,大部分指令集中在3T-4T,比我想像的要快,但感觉不会比AVR快。
AVR大分部指令都是1T-2T,而且51是A来A去的,效率不高。
指令执行上平均下来AVR大约在1.5T每条,1T的STC在3T每条。
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_597569PX8G2H.PNG
(原文件名:STC指令.PNG) 【33楼】 hsztc
所以我说差不多,还是差一点的,我这个不是精确比较,因为我两个MCU都用,使用的感觉,而且和编译器关系很大 真快的51是C8051F,不过抗干扰也是真菜,我这个也吃过大亏,我居然用它做DTU,到现场死机死的都没法工作,在实验室还行. STC能集中到3-4T就不错了,要知道51可不是RISC,提高速度不容易 别忘了还有个STM8,虽然是CISC的,但可以做到大部分是1-2T。 哈哈,其实比速度没多大意义,够用就行了 回复【30楼】zhxzhx一丁
【28楼】 xiaobendan 仲跻东
16m avr 和 40m的有源晶振跑6t的89 比
同频 avr 和 12t的89 90感觉 快 4-6倍
同频 avr 和 6t的89 90感觉 快 2-3倍
同频 avr 和 1t的 感觉 差不多,但io输出avr快
但是能使的主频比avr高
-----------------------------------------------------------------------
这是你的YY而已。我前阵子给STC12C5A60S2接了32.768MHZ晶振,做定点小数运算,以为和AVR有得比,谁知道一样的代码,STC比AVR慢多了。 【39楼】 qqsdlpz
你的代码给我,我正要找这样的例子说服上STM呐!
我对STC最大的苦恼是没有仿真!别的到无所谓. 回复【33楼】hsztc
-----------------------------------------------------------------------
大哥你太有才啦,mov a mov b 就能叫慢?那您不要用intel的cpu 那玩意儿,也是mov ax mov bx 一点效率也没有啊。奇怪的逻辑,以此类推x86比你的avr 慢了不知道多少倍,因为x86至今还在mov ax mov bx啊。intel的cpu简直就是垃圾了。哈哈,那龙芯是垃圾中的极品垃圾。
回复【楼主位】electron_love
-----------------------------------------------------------------------
解答您的问题。关于晶体振荡器的问题,所有的基频、泛音晶振原理是一样的通过压电晶体产生频率,你可以这样认为他们的区别在于基频晶振产生的信号比较干净,假设标称频率为f0, 那么基频晶振上电后振荡频率在f0附近非常干净,谐波和f0的对比相差至少30到40db。你所需要的频率可以直接按照标称频率f0取。而泛音晶振标称的频率f0是傅氏变化展开式3频率包含傅里叶展开式中的3 5项,频率成分比较多,而且f0和3次5次谐波对比不大,因此,10M的泛音晶振可能包含了10.5Mhz,9.5Mhz的成分。而所有的谐波都是以f0为中心 呈现正态分布和衰减的。目前市场上的无源晶振以40Mhz为分界,以上一般只有泛音。
也就是说你所谓的单片机跑不起来的原因其实是元件选择错误,和1t 1.5t时钟没有关系,在数字系统中一般晶振都是选择基频晶振,而泛音晶振用于模拟电路中频率的合成提取的,需要配合信号放大、选频电路一起用。如果你非要跑40Mhz以上的频率不是没有办法,最简单的找块废主板把主板上的时钟发生电路切割下来直接用,或者买有源晶振,直接外接时钟用。国外有人把8031跑到120Mhz就是这样用的,不过只能使用高速的外接ram rom。
这个和当年的赛扬、amd超频一样的道理,你要上更高的时钟频率就要确保时钟脉冲清晰准确,和单片机快慢没有关系。就目前国内单片机应用的这些小打小闹还谈不上考虑一条指令要几个时钟周期的程度。现在的avr就是当年6800一个体系的东西,你能说6800就比intel优秀,快?便宜好用就行。 【41楼】 bg8wj
我们现在谈的只是8位,你扯到其它不知道是什么东东的上面,没法跟你讨论。
我只能说intel 的8051 的CPU在AVR面前确实是拉圾,确实是一点效率都没,
只不过它们不是一个时代的产物,这么比不公正,8051在当年的就是牛B的东东。
51单片机并不是说执行mov指令慢,而是累加器使用的频率太高了,太依赖累加器了,
才造成了效率下降。 我用STC12C5A60AD的22.1184M的晶振,比6M下的M32快了不止一倍哦!差不多有2倍左右了。当然和编译器有很大关系,另外,访问XDATA的问题使代码变长了,如果只使用IDATA则可能更快一些。 回复【41楼】bg8wj
现在的avr就是当年6800一个体系的东西,你能说6800就比intel优秀,快?便宜好用就行。
-----------------------------------------------------------------------
回帖请有责任感,不要信口开河:AVR 跟哪门子 6800 有关系?你说 STM8 或者 6502 么也就罢了。
也许你的意思是 6800 与 8080 的比较,跟 AVR 与 MCS-51 的比较?
也就是“体系”二字,不是指 CPU 的架构?
那我也可以告诉你,单就 CPU 而言,确实 Intel 是技不如人的。但是之所以 Intel 是巨人,那是因为他赢在系统上,而不是局部。 【43楼】 xiaobendan
1T的STC最快好像是35MHz的,22.1184M的晶振已经用了2/3了。
而AVR最快能到20MHz,6MHz才用到1/3。M32最高时钟是16MHz,它的20MHz版本叫M324
试下让它们都跑到最高时钟才知道哪个更快。
AVR的8位机还有新的XMEGA可以工作在32MHz,大部分指令是1T的,不过还没玩过。 去掉晶振试试 STC90C54RD+ 那个带4K RAM的,我用晶振轻松上33M,贪图此便宜的大RAM来做8字的LED显示屏。AVR带4K的当时是64,要18多,现在貌似40+
STC的烧写软件的确难看,所以江湖上有位高手做了个,感觉比官方的好用一些。
官方的那个烧写软件,在你第1次,手动更改晶振选项后,还可能烧成内部RC。所以是不是你的7.9M貌似就是内部RC了。。 回复【33楼】hsztc
...看到了,大部分指令集中在3t-4t,比我想像的要快,但感觉不会比avr快。
avr大分部指令都是1t-2t,而且51是a来a去的,效率不高。
指令执行上平均下来avr大约在1.5t每条,1t的stc在3t每条。
(原文件名:stc指令.png)
引用图片
-----------------------------------------------------------------------
不能这样算吧,
AVR是RSIC的,
51是CSIC的,
51有些非1T指令AVR是没有的 回复【41楼】bg8wj
-----------------------------------------------------------------------
解答您的问题。关于晶体振荡器的问题,所有的基频、泛音晶振原理是一样的通过压电晶体产生频率,你可以这样认为他们的区别在于基频晶振产生的信号比较干净,假设标称频率为f0, 那么基频晶振上电后振荡频率在f0附近非常干净,谐波和f0的对比相差至少30到40db。你所需要的频率可以直接按照标称频率f0取。而泛音晶振标称的频率f0是傅氏变化展开式3频率包含傅里叶展开式中的3 5项,频率成分比较多,而且f0和3次5次谐波对比不大,因此,10M的泛音晶振可能包含了10.5Mhz,9.5Mhz的成分。而所有的谐波都是以f0为中心 呈现正态分布和衰减的。目前市场上的无源晶振以40Mhz为分界,以上一般只有泛音。
也就是说你所谓的单片机跑不起来的原因其实是元件选择错误,和1t 1.5t时钟没有关系,在数字系统中一般晶振都是选择基频晶振,而泛音晶振用于模拟电路中频率的合成提取的,需要配合信号放大、选频电路一起用。如果你非要跑40Mhz以上的频率不是没有办法,最简单的找块废主板把主板上的时钟发生电路切割下来直接用,或者买有源晶振,直接外接时钟用。国外有人把8031跑到120Mhz就是这样用的,不过只能使用高速的外接ram rom。
这个和当年的赛扬、amd超频一样的道理,你要上更高的时钟频率就要确保时钟脉冲清晰准确,和单片机快慢没有关系。就目前国内单片机应用的这些小打小闹还谈不上考虑一条指令要几个时钟周期的程度。现在的avr就是当年6800一个体系的东西,你能说6800就比intel优秀,快?便宜好用就行。
---------------------------------------------------------------------------------------
学习了, 谢谢 LZ能不能把最新版STC-ISP的广告也去掉啊,看着不爽 哈哈
页:
[1]