STC16F单片机是宏晶科技推出的一款功能强大的16位单片机,具有40K内存、128K Flash的存储空间,并内置了USB、PWM、ADC、SPI、IIC、CAN、LIN等外设,可以被简单理解为STC8H的高性能版本。
目前,STC已经开始送样STC16F40K128-LQFP64。STC16的特点是:它是一款准32位机、有多个累加器结构、支持CAN/Lin、有16位加减乘除指令、高配有32位乘除单元和单精度浮点运算器,其计算能力可媲美M4芯片,甚至超过M3芯片,同时在位操作上也领先于M0芯片。据一些宏晶供应商介绍,实际上STC16是一款32位的8051单片机。由于编译器的限制,其被阉割为16位机,但是它内部的访问仍为32位,用户只能看到16位的位数。同时,STC16还支持传统的8051位,以及在后续版本中强化了的位。
据供应商表示,STC16是STC8051的自然延伸,管脚兼容,具有相同的时钟频率,是能够碾压M0的存在。M0是一种被阉割的16位机,且仍未除去,其位操作不太方便。STC16包含了16位乘除指令集,以及32位乘除单元和单精度浮点运算器,如果采用ARM芯片,则可以直接选择STC32M4。
![image-20231129221938783](https://lxlinux.superbed.verylink.top/item/656748bec458853aef4b13fd.png)
不过,近期,一位21ic坛友提出了灵魂拷问,引发了网友的讨论。
用户tzgok表示,在看了几天STC16F的资料,感觉如下这2个主要问题不解决,国内的技术员很难全面使用它。
1、开发环境问题:如果后续得不到KEIL全面的编译和调试支持,开发和使用会很麻烦,至于第三方提供的“图形化编程”,这玩意只适合学生玩玩,套用老姚的话就是,“不要和趋势作对,你要跟着行情走”,目前KEIL就是趋势,而且KEIL这20多年累积的经验,不是任何一个新出的小软件可以替代的,更何况全球无数的技术员在使用它。
![image-20231129221943143](https://lxlinux.superbed.verylink.top/item/656748bec458853aef4b1484.png)
关注我公众号,后台回复“Keil系列教程”查看更多关于Keil的内容。
2、芯片性能问题:STC16F本身定位为16位MCU,但最高工作频率只有33MHZ,这太鸡肋了,如果不能运行到100MHZ以上,那么16位MCU就毫无优势,因为16位的目标应该是:价格和功耗接近8位机,功能和速度接近32位机。现在连STC8H都跑到48MHZ了,更别说100MHZ的C8051F120,而STC16F居然只有33MHZ,这个太遗憾,说难听点,这个运行速度就是——鸡肋。
![image-20231129221947289](https://lxlinux.superbed.verylink.top/item/656748bec458853aef4b142b.png)
用户autopccopy认为,STC16 就是增强Intel C251内核,当然使用 KEIL 四驾马车之一 的C251 完善支持。速度称以后会72M ~ 140M,一步一步来。既有高速度也有开发的便利性,STC16承上启下。打通8-16-32的产品线。
![image-20231129221951200](https://lxlinux.superbed.verylink.top/item/656748bec458853aef4b1403.png)
但tzgok认为,目前STC16还有四个痛点:
1、目前无法在线仿真。
2、目前的有效FLASH是60K可用,另外60K无法使用。
3、要到后期版本才推出更高频率的版本。
4、目前的EEPROM/IAP也不能用;以后会增加DMA功能。
![image-20231129221956812](https://lxlinux.superbed.verylink.top/item/656748bec458853aef4b1474.png)
“STC的51就是搅局儿的,虽然我用了10年STC,但最后还是放弃了,因为曾经给予很多希望,但最后发现这家伙就是个混世魔王,从头到尾不能仿真,我就不了解为啥还有些人在使用,现在我转向了深圳赛元的,能仿真,手册例程非常正规,用的很爽”,用户taobaofarmer无奈说出心声。
他还说:“我在用国产赛元8051,性能很高,文档例程写的很好,有自己的仿真器,仿真很完善,整个产业链都挺完善的,不像STC,官网乱的跟一窝蚂蚁似的,永远不能仿真,市场就是这样,总是用先进的价格低廉的东西淘汰老旧落后的东西,STC估计也蹦哒不了多久了,但因为还是有一批学习能力差的不能升级的用户,等到这批用户再被淘汰了,那STC倒闭也就差不多到时候了。”
![image-20231129222000883](https://lxlinux.superbed.verylink.top/item/656748bec458853aef4b1470.png)
用户coody表示,这几天测试了STC16F的样片,使用KEIL C251的编译器,主要是测试其扩展的硬件整数运算单元、硬件单精度浮点单元,单精度浮点运算速度比不带硬件浮点的M0、M3快得多。整数运算速度速度也很快。
测试了DFT、FFT、Goertzel滤波算法软解DTMF,采样市电交流电压电流计算电压电流有效值、有功功率、功率因素。
其中FFT运算最耗时间,跑30MHz,ADC使用32K采样,256点FFT(8ms),频点分频率125Hz,int整数运算,蝶形计算时间为4.24ms,128频点幅度计算为0.7ms,计算过程中,ADC会持续32K采样。这个速度非常满意,FFT分析是实时连续的。
数字滤波也比较耗时间,我常用8阶IIR数字滤波器,32位有符号整数运算耗时20us,这个非常好,满足40KHz以内的采样速度要求。单精度运算耗时53us,已经满足低速的要求(采样16KHz以下)。
“我觉得 STC 最大的绊脚石,是没有完善的库函数。51芯片寄存器少,做大一点的项目已经有些复杂了,更不用说 STC16、ARM 和 RISC-V 了。如果官方一直不给库函数,那将是开发者的噩梦,将会限制芯片的推广”,用户guysxpf这样说。
你怎么看待STC16以及STC本身?欢迎留言交流。
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !
![137e00002230ad9f26e78-265x300](https://lxlinux.superbed.verylink.top/item/656748bec458853aef4b146f.png)