数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 23961|回复: 74

[C51] 关于STC8的那点事,供爱好者参考

[复制链接]
发表于 2019-8-19 10:38:33 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

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

x
最近搞了个准备开源的VFD驱动板(板上有高通字库、DS3231、ESP8266模块,CH330N串口芯片),为了VFD爱好者方便使用(基本都只会51),单片机使用的是STC最新的STC8A8K64S4A12,这个应该是STC最高级型号了,淘宝价3.4元,价格超过了STM32F051C8T6 ,使用后,还是挺失望的。有几个问题,第一次加入的硬件I2C极为不稳定,因为STC8的I2C总线,实际上是不支持真正意义上的分频的,所以,根本无法获得一个准确的I2C 时钟频率,而且,I2C不支持上升时间、下降时间的调节(广为诟病的STM32 I2C问题,就是在使用中没有注意这两个,实际是没有问题的),导致I2C兼容性极差。表现出来的就是用硬件I2C驱动DS3231时,有时候能正确读出,有时不能,最后不得不用软件模拟,稳定可靠。ADC,慢速的读取问题不大(1HZ),高速读取时(33KHZ),读取的数据杂乱无章,再按照官方电路做了ADC电压参考,并严格隔离数字地和模拟地后依然没有改善,为了这个问题前后打板4次依然无果(STM32,随便搞下都很稳定),这个后续继续研究,网上也有人遇到同样问题。再说说输入捕获PAC,用这个功能做了换个NEC红外遥控解码,但是STC8的输入捕获,不支持单通道上升沿和下降沿的同时捕获,是不能准确获取高低电平准确时间的,幸好NEC编码是个不等时长的编码,只捕获两个下降沿计算总脉冲时长就行,影响不大。硬件SPI总线兼容性还不错,没有发现大问题。串口2使用注意下,如果同时使用ADC需要在ADC转换结束后,把ADC电源关掉,否则就串口2会影响ADC采样数据。在使用串口接收中断后,就不能用printf函数了,表现为卡死,自己编了个类似的函数,解决问题。号称的支持最高33MHZ的外部晶振,也不太稳定,在使用33MHZ的外部晶振时,经常程序无法下载,用24MHZ的内部时钟就没有问题。最后吐槽下下载方式,2019年了,还在使用20+年前的串口下载方式十分的不解,这种方式貌似成本最低,最适合DIY爱好者,但是对于一个开发者来说简直是噩梦,每次下载程序都要去开关下电源,虽然有自动下载器,其实很也不是很稳定,同是51内核的台湾新塘着使用NU-LINK下载,十分的方便。

https://www.mydigit.cn/forum.php?mod=viewthread&tid=72430

打赏

参与人数 3家元 +23 收起 理由
asklaibao + 5 STC真成了死太惨了,自作孽啊!.
杨雪飞 + 8 謝謝分享
家睦 + 10

查看全部打赏

 楼主| 发表于 2019-8-19 14:43:22 | 显示全部楼层
触景情伤 发表于 2019-8-19 13:43
玩玩stm8吧!有惊喜…

其实我一直都是玩STM8和STM32的,第一次搞STC的MUC,感觉这个STC太不完善了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-19 16:59:44 | 显示全部楼层
thinkabout44 发表于 2019-8-19 16:19
别说stm32了,就是arm级的,也是会有问题

STM32就是ARM。STM32的I2C总线没有发现什么问题,有问题的多是没有设置好那些时间。比如用默认的参数去读写24CXX,基本失败了40%。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-20 11:32:20 | 显示全部楼层
mapleft 发表于 2019-8-20 10:07
只有STM32 这种垃圾的CPU 的IIC 才需要设置上升沿河下降沿的;
AVR ,ATMEL 的ARM , TI 的ARM LPC的ARM 的II ...

你这种说法真的不正确,每种芯片对时序要求都是不一样的,虽然大多数情况下,几乎不用设置也能用,但不排除个例。STM32的I2C总线,我也只是遇到再读写24CXX时需要设置,别的不设置也可以完美使用。看AT24CXX的手册就知道,它对数据建立时间、数据保持时间有最小要求,如果不设置就无法正确读出,这不是STM32的问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-20 15:41:27 | 显示全部楼层
mapleft 发表于 2019-8-20 12:13
设置个P ,我说的那些 CPU就没有这个上升下降沿的设置寄存器; 人家设置的芯片压根就不用设置;
人家不用 ...

F1在设置好上升和下降时间后,可以完美的读写AT24CXX,而读取BH1750FVI、SHT20、SHT30这些都是可以默认参数读取的。对于24CXX确实兼容性有些差,但是设置好时序,并参照ST官方历程,加上判断I2C总线是否就绪,24CXX是否就绪判断后,就没有问题了。而读写ST之家的M24M01,完美的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-21 16:37:26 | 显示全部楼层
autopccopy 发表于 2019-8-20 21:22
从STC8初版A版开始试用,一直到G版。虽然用得不多,但IIC硬件驱动OLED是正常的。ADC官方测试称是精度最好可 ...

你可以去了解下新塘的51是怎么下载的,传统的东西不一定是最好的。作为一个芯片,不可能是针对爱好者市场吧?不管是开发和量产化,新塘的方式都远快于STC这种方式快得多。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-22 10:40:08 | 显示全部楼层
cbcb4cb 发表于 2019-8-20 18:13
捕获是指ccp的pca计数器?
CCAPPn :允许 PCA 模块 n 进行上升沿捕获
CCAPNn :允许 PCA 模块 n 进行下降沿 ...

我仔细看了下手册,确实是可以。:lol:
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-25 11:25:18 | 显示全部楼层
ww5223017240 发表于 2019-8-24 17:18
新塘的还没用过,不知道要不要专用的下载器,stc嘛就不要指望做大东西了,我就拿来做点小东西还能用用,稍 ...

新塘的51用的NU-LINK下载,这个下载器也可以用来下载新塘之家的ARM。这个很方便,只要在Keil里面点下栽就行了。新塘也支持STC这种下载模式,但是官方不推荐。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-26 09:42:34 | 显示全部楼层
ww5223017240 发表于 2019-8-25 12:01
相对STC来说下载器贵很多,比STM的都贵,虽然是一次投资,其实这东西写个bootloader也可以用串口下载的吧 ...

虽然那个下载器贵很多,但是工作效率提高不是一点点。毕竟现在都是讲究效率的时代。而且新塘的C51比STC完善得多,不会出现这样那样的BUG。当提到STC的时候,论坛里面往往都会说到STC某某工很厉害,某某工怎样怎样。所以给我的感觉是STC是一个2个人搞出来的公司,个人的力量毕竟是有限的,公式化运作才会出好用的东西。1元钱的新塘再易用性和功能完善性上秒杀STC,只是新塘51没有像STC产品链那么的丰富。不会话说回来,谁会去使用3.4元的STC8而不去使用3.2元的STM32 F0 呢?
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-4-29 20:03:25 | 显示全部楼层
jack_kk 发表于 2019-11-16 19:32
遇到ADC的,你先看下是不是打开了ADC电源马上进行的的转换,要等一会才能开始,要不就不要关掉ADC电源,
遇 ...

实际上,STM和新塘也是支持串口下载的,但是没有谁会去用,因为仿真器下载实在是太方便了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-22 20:30 , Processed in 0.280801 second(s), 15 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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