数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 17918|回复: 118

[C51] 为什么你们选择了STC?

  [复制链接]
发表于 2019-4-22 01:04:23 | 显示全部楼层 |阅读模式
本帖最后由 la45088d1 于 2019-4-22 01:07 编辑

      最近在写STC15W401AS的时候顺便了解了一下STC MCU的内核发现平淡无奇。STC只是将机器周期与时钟源振荡周期的比值从1:12提升到了1:1而已。在MSC8051中,机制还是那样,没什么太大改变。35MHz的频率根本不够用。最近做一个实验,想用STCW401AS定频驱动雾化片。为了让Class-E部分有足够输出,所以使用几个IO口完成boost控制器功能。涉及到PID算法非常耗费时间,期望的调整速率是20KHz,但程序基本完成后才发现有点悬。
      结果今天无意中看到一款叫做C8051F410的MCU才后悔不已,要是我不随大流只懂得MSC8051就是只用STC就好,毕竟论坛上不少人使用的就是STC的,所以之前选型的时候没多想。为什么我如此后悔呢?且看我到来。


      这是C8051F41x系列的Datasheet,可以看到内置高达200KSa/s的12bit ADC,线性度很好。多达24个模拟通道和窗口中断发生器。并且还有12bit电流模式DAC,简直干翻STC有没有?还有3个可配置为16bit的计时器,RTC时钟,16bit CRC硬件单元,SMBus硬件协议。而IO口和Flash,SRAM跟SRTC不相上下,价格更是毫无区别!STC有的,它都有,甚至吊打,它有的STC没有。更重要的是,它还支持在线调试,只要有特定的调试器类似于ARM的J-link:T
      The C8051F41x devices include on-chip Silicon Laboratories 2-Wire (C2) debug circuitry that provides non-intrusive, f ull speed, in-circuit debugging of the production part installed in the end application.Silicon Laboratories’ debugging system supports inspection and modification of memory and registers, breakpoints, and single stepping. No additional target RAM, program memory, timers, or communicationschannels are required. All the digital and analog peripherals are functional and work correctly while debugging.All the peripherals (except for the ADC and SMBus) are stalled when the MCU is halted, during singlestepping, or at a breakpoint in order to keep them synchronized.
       STC是怎么干的?特定型号的MCU加上下载专有固件才可以用串口调试,非常麻烦。而该MCU内核是MSC8051的变异版本,加入了流水线并将时钟频率提升到50MHz,性能高达50MIPS,估计快到35MHz STC15系列的2倍:
      The CIP-51 employs a pipelined architecture that greatly increases its instruction throughput over the standard8051 architecture. In a standard 8051, all instructions except for MUL and DIV take 12 or 24 systemclock cycles to execute, and usually have a maximum system clock of 12-to-24 MHz. By contrast, the CIP-51 core executes 70% of its instructions in one or two system clock cycles, with no instructions taking morethan eight system clock cycles.
      STC是不错的改进型8051 MCU但绝对不是最好的,也并不想想象中那么出色,但为什么你们都选择了STC,而不是Silicon Laboratories呢?我觉得在我的方案中,C8051F410应该比STC15W401AS更适合,更好的性能和更丰富的外设,任何人都不会拒绝。如果我早选择了
C8051F410,我就不会为了35MHz的时钟频率犯愁,不断的精简代码来防止性能不足的问题。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 2家元 +21 收起 理由
kamp + 1 不是一个级别的东东,虽然都是8051.
家睦 + 20

查看全部打赏

 楼主| 发表于 2019-4-22 11:01:24 | 显示全部楼层
fsss007 发表于 2019-4-22 10:25
那么,C8051F41x和STM8比较又如何呢?

两者在算术运算和寻址方式和控制方式差不多,预期同频下STM8和STC表现应该差不多。但是STC没有流水线,指令吞吐量小了一截,STM8小胜;而C8051F4有流水线,并且流水效率高于STM8加上一倍高于STM8主频,所以同频8位下C8051F4小胜STM8,吊打STC,火力全开更是把这两个甩在后面。
但是对于16位数据处理,STM8有些优势,对比于全速运行的C8051F4,差距会明显缩小。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-22 11:03:00 | 显示全部楼层
kkstun 发表于 2019-4-22 09:08
没有最好,只有更好。合适就好。8位单片机重点在控制,不在速度。要速度快选arm的。 ...

那肯定不能为了一个PID直接用ARM,那成本高到哪里去了!做产品老板肯定不会批。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-22 13:19:22 | 显示全部楼层
kkstun 发表于 2019-4-22 12:24
C8051F410好像不便宜吧。

跟STC一样的价位,它们两都不便宜。可是C8051F40x贵的有理由,STC15呢?就算是那些的早期产品,依旧价格不低。

打赏

参与人数 1家元 +20 收起 理由
2545889167 + 20 人家凭手册上的那句全球最大8051厂家卖那么.

查看全部打赏

回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-22 13:25:35 | 显示全部楼层
简燕 发表于 2019-4-22 13:22
我觉得,业余爱好者与职业做产品,在选型取向上不一样.

业余爱好者,不关心性价比才对.5块钱一片,与95块钱一 ...

可是STC真的不好玩呐,要啥没啥,处处受限。业余爱好者就是图个省心又能出效果,这些STC并没有什么优势。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-23 22:50:58 | 显示全部楼层
2545889167 发表于 2019-4-23 22:05
c8051似乎不便宜,没玩过。反正我吧手上的stc全部扔了,没意思的东西,除了手册吹成朵花,实际就是一坨翔。 ...

      8位数据下,STC和STM8同频差距可能真不大。据我所知两者的算术逻辑运算指令周期没有太大差异,当然,我对两者的指令集了解不足,有所误判,最近才学习8051内核的,STM8只看过一眼。
      不过,16位数据下,16位机吞吐量至少比8位机吞吐大一倍,这个在ASM环境下看的很明显。在ARM完善的指令集下,处理64位的加减,逻辑运算都是32位的一倍多时间,乘除不必说了。在8051落后的指令集下这个问题更明显。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-4-30 22:52:34 | 显示全部楼层
autopccopy 发表于 2019-4-30 21:54
看合适。
据我所知,抗干扰性STC强。而且经过实测,C8051F的速度是比不上STC8系列的。
做产品,如果选错了 ...

STC8是加强了寻址速度,原来简单的逻辑运算和算术运算需要访问内存的,速度都加快了。不过要是STC8还是运行在35MHz,那最大性能还是干不过C8051F4的,人家的性能是1MIPS/MHz,STC8是多少有标吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-9 10:20:17 | 显示全部楼层
oscillator 发表于 2019-5-8 22:03
STC有指令手册,极限也是1MIPS/MHz。不过51内核实在太老,再怎么玩出花样来也是128byte+128byte,所谓“ ...

你的应该是假新闻,首先我算是比较详细的看过STC那个牛皮藓Datasheet,并没有发现什么流水线,按照STC的德行,这种东西应该大势宣扬,我并不会认为我漏掉了什么。
其次,STC15系列的性能其实达不到1MIPS/MHz的,之前在哪里看过大概0.61左右。实际上想想就知道,STC15系列多周期指令那么多,又没有流水线怎么可能平均下来1MIPS/MHz。要知道Cortex-M3一大堆单周期指令外加流水线也不过就1.25MIPS/MHz。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-10 09:06:52 | 显示全部楼层
oscillator 发表于 2019-5-9 16:56
STC8是有的,当然了,流水线屠宰的“牛皮藓”也是牛皮藓:

MSP430其实也就是寄存器-寄存器操作能够1MIPS ...

这就对了,前几天有人说了关于STC8的事我还专门去看看,结果发现还不错,某些指令访存速度由两周期变为一周期了,不过有些指令还是慢了。所以说有限的条件下1MHz/MIPS还是有可能的。不过不知道STC流水线的特性如何?只要有流水线,多周期指令和单周期指令之间就不可避免地产生WAW,WAR,RAW冒险,为了解决这个问题要么流水线阻塞牺牲性能,要么使用寄存器重命名或者细分操作步骤加多流水线级数解决。当然最好的办法还是使得冲突的指令分散排列,这个是编译器的事。不过对于传统8051内核没有流水线,新的8051产品中也只有部分存在流水线,编译器不知道有没有类似的优化。就算有,在编译STC8代码时是否开启了,不得而知。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-10 09:10:07 | 显示全部楼层
kkstun 发表于 2019-5-9 22:02
STC确实垃圾,最近用虚拟串口给stc下载,结果死特惨对串口时序要求太高了,无法下载。 ...

这个应是你的问题,目前来看STC串口还是很稳的。目前的USB转USART的ASIC如CH341之流都可以轻松满足你,并且可以跑到最高频率。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-11 10:43:28 | 显示全部楼层
hewayking 发表于 2019-5-11 08:18
stc同一个处理函数   中断只能用一次       其他单片机不知道    能不能多个中断调用    吃过亏  ...

不懂你在说什么。同一个函数完全可以在多个中断中调用。但是你必须注意中断嵌套的情况,就是如果一个中断中调用了这个函数处理了一半,另一个高优先级中断又调用了这个函数,是否会出现异常?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-15 10:20:56 | 显示全部楼层
hewayking 发表于 2019-5-15 08:06
是的就是这种情况   没办法   函数只能复制粘贴改个名再用

看来主要还是内存冲突了,重入函数是有要求的,如果不能写成合适的可重入函数,必要时你可以在函数内声明信号量,第一次调用时加锁,如果第一次调用没有成功返回,那就禁止函数再次被调用执行,第二次,第三次,第N次都直接返回不处理,直到回到第一次调用的为止执行完成后再释放信号量使得下次可以正常执行整个函数。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-17 12:15:48 | 显示全部楼层
wave 发表于 2019-5-17 10:24
我只知道很多人和很多公司选STC就是因为便宜。低端的一些产品里都是STC的单片机(豆浆机,电磁炉,电饭锅 ...

STC便宜就是个笑话,现在8位机还买4-5元左右均价叫便宜,你看看Cortex-M0,Cortex-M0+,Cortex-M3的低密度产品卖多少钱?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-20 18:30:34 | 显示全部楼层
595953427@qq 发表于 2019-5-20 12:47
我有两个问题想问一下楼主;
1:你后来选的这个芯片是多少钱?
2:你的雾化片频率是多少?是用扫频的方式驱 ...

STC15W401AS TSSOP-20 2RMB左右;
1.7MHz,定频驱动。据实测高频雾化片频率稳定,基本不随温度变化明显漂移,类似晶振,使用扫频驱动未免过于滑稽,只要保证1.7MHz的驱动信号不漂移即可。因此使用了37.4MHz晶振22分频得到驱动信号。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-21 23:11:04 | 显示全部楼层
595953427@qq 发表于 2019-5-21 22:15
STC的单价我不关心,我问的是C8051F410,听说很贵的。
你做雾化器是做着玩,还是开发产品?如果是做着玩 ...

我就是做着玩的,所以技术问题还是可以讨论的,不过涉及市场营销,用户需求分析,人力资源管理之类的问题就不要问我了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-18 09:55 , Processed in 0.436801 second(s), 16 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表