打印
[技术问答]

SC92F7463B在3.3V系统下无法仿真

[复制链接]
1071|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
taobaofarmer|  楼主 | 2020-1-21 15:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先说明下,以前用过8003和7421,都是5V系统,仿真和脱机运行没有任何问题,这次采用的主控单片机是SC92F7463B,3.3V系统供电,我把SC-LINK的电压档位跳线到了3.3V,程序编译链接没有任何问题,下载也没有问题,然后发现控制一个IO口的高低电平都不行,定时器无法进入中断,UART接收到数据的时候也无法进入中断,一顿折腾,耗时几个小时没整明白怎么回事儿,实在没办法了我把SC-LINK的电压档位跳线改到了5V,重新编译下载程序,运行,一切OK,这充分说明赛元的MCU在3.3V系统中是无法仿真的,为何这个问题在赛元的官方资料里没有任何说明呢?赛元对这一问题如何解释,如何解决呢?

使用特权

评论回复

相关帖子

沙发
赛元MCU3| | 2020-1-22 12:49 | 只看该作者
3.3V仿真确实比较少用,等我们实际测试后再答复你,目前赛元工程师基本上都休假了,等节后工程师上班后,实际测试完再答复你,请多包涵!
另外,3.3V仿真可以注意一下LVR的设置,以及RST管脚的电平状态,另外可以测一下在3.3V供电下MCU端的电压,查看SC-LINK是否真正输出了3.3V到MCU端。

使用特权

评论回复
板凳
taobaofarmer|  楼主 | 2020-1-23 15:43 | 只看该作者
我没用外部供电,用的是SC-LINK的3.3V给板子供电的

使用特权

评论回复
地板
赛元MCU1| | 2020-2-10 13:47 | 只看该作者
关于3.3V供电仿真异常的问题,实际测试确实存在这个问题,目前具体原因还在分析,有结论了再答复您;
当前的解决办法,实际测试发现在main函数调用第一个函数之前加入一个_nop_()语句3.3V下就可以正常仿真了,可以先用这个办法实现3.3V下仿真,或者是改用5V下仿真来调试程序;加入_nop_()语句的位置如下图所示C:\Users\喵喵喵\Desktop\刘倩lizzie

使用特权

评论回复
5
赛元MCU1| | 2020-2-10 13:50 | 只看该作者
关于3.3V供电仿真异常的问题,实际测试确实存在这个问题,目前具体原因还在分析,有结论了再答复您;
当前的解决办法,实际测试发现在main函数调用第一个函数之前加入一个_nop_()语句3.3V下就可以正常仿真了,可以先用这个办法实现3.3V下仿真,或者是改用5V下仿真来调试程序;加入_nop_()语句的位置如下图所示

aebd065276be521d1218c1f91ffc642.png (29.89 KB )

aebd065276be521d1218c1f91ffc642.png

使用特权

评论回复
6
taobaofarmer|  楼主 | 2020-2-11 11:44 | 只看该作者
这个不一定是所有情况的解决方案吧?希望赛元持续跟进这问题,彻底找到原因和解决办法

使用特权

评论回复
7
gejigeji521| | 2020-2-21 21:40 | 只看该作者
看手册的说明了。

使用特权

评论回复
8
杨寅辉| | 2020-2-23 15:56 | 只看该作者
赛元MCU1 发表于 2020-2-10 13:50
关于3.3V供电仿真异常的问题,实际测试确实存在这个问题,目前具体原因还在分析,有结论了再答复您;
当前 ...

这个办法说明,内部电路的稳定性确实有待加强的,除了官方,鬼能想要初始化之前要加延时的。

使用特权

评论回复
9
yiyigirl2014| | 2020-2-23 21:53 | 只看该作者
延时给电路充满电?

使用特权

评论回复
10
taobaofarmer|  楼主 | 2020-2-24 11:31 | 只看该作者
那些国际大公司,推出来的MCU产品一般情况下比较大的BUG很少,他们的设计、测试流程非常正规严谨,国内新兴的这些1T 51核的设计公司,目前的状态都是半成品一边推出一边依靠用户做实验,在用户使用的过程中不断发现各种BUG,然后厂家在汇总了N多的BUG之后集中改版升级一次,产品还是逐渐向好的方向发展的,我们给予国产公司支持,任何一个企业发展都需要个过程的,最重要的一点是用户发现BUG之后,官方要勇于承认事实的存在,不断改进,推陈出新,最后把产品达到完美化

使用特权

评论回复
11
赛元MCU1| | 2020-2-27 18:33 | 只看该作者
taobaofarmer 发表于 2020-2-11 11:44
这个不一定是所有情况的解决方案吧?希望赛元持续跟进这问题,彻底找到原因和解决办法 ...

你好,3.3V下不能仿真的问题已经找到原因了,之前推荐的加入_nop_()语句的方法不能完全解决问题只是减小了出问题的概率,并且我们分析5V下也是有概率出错的,只是5V下出错的概率很小,这个不是芯片的问题,是烧录器固件的问题,烧录器固件的仿真部分在逻辑操作顺序上搞错了,我们目前在更新固件,等固件验证好了就会提供出来,固件已经在计划中,预计下个月可以正式给出来

使用特权

评论回复
12
taobaofarmer|  楼主 | 2020-2-28 10:37 | 只看该作者
赞一个,赛元这种勇气和敬业精神肯定能把企业做的更好,产品做的更好,我目前一直致力于把很多基于STM8S的产品移植到赛元的51上,以后会用的越来越多,希望赛元推出更多的额超级8051,另外还有个问题,目前代码区存放位置必须从0X100位置开始,这是为何呢,将来的产品能不能把这个小问题解决掉?另外一个,目前的仿真器必须通过断电的方式给板子复位,那有时候就很麻烦了,甚至有些场合这种调试方法无法进行,这个问题在未来的仿真器上能不能解决呢?其实哪怕仿真线再多出一根RESET脚也是 可以接受的

使用特权

评论回复
13
赛元MCU1| | 2020-2-28 14:38 | 只看该作者
taobaofarmer 发表于 2020-2-28 10:37
赞一个,赛元这种勇气和敬业精神肯定能把企业做的更好,产品做的更好,我目前一直致力于把很多基于STM8S的 ...

多谢您的理解与支持;关于代码区存放必须从0x100位置开始的问题赛元主要是考虑到安全问题,目前赛元MCU Flash ROM的起始265Byte区间是无法MOVC寻址的,如果程序代码没有使用到MOVC指令是完全可以放在前256Byte区间的,禁止MOVC寻址的目的是为了提高加密等级,防止他人在芯片中插入读ROM数据的程序,从而将芯片中的代码读出来,前256Byte空间禁止MOVC寻址就无法被读出,对于一个项目程序中比较关键的算法代码可以放到ROM的前256Byte区间,这样他人就无法**,从而增加加密等级,这个是比其他一些MCU品牌多加的功能,当然这个问题确实也给客户带来了很多困扰,因为现在的MCU加密都已经做的很好了,即使不增加前256Byte禁止MOVC寻址的限制,要想**代码也是很困难的,成本不亚于重新开发一个项目,所以这个空间很少有人去利用它,因为要考虑到不能MOVC寻址的限制,而C语言编程又不能像汇编语言一样很容易知道是否用到了MOVC指令,所以很多人就干脆舍弃前256Byte的空间,其实是可以用的,只要在前256Byte空间避开MOVC指令就可以了。
另外一个问题,目前仿真器是没有多出这根Reset脚的,芯片上是有Reset脚的,这个我们可以考虑看一下以后怎么做,可能没有这么快确定什么时候做,这个也是综合考虑市场需求决定的,我们现在是抓主要需求,把产品做好,产品线拓宽,先扩大市场份额,毕竟我们还有很长的路要走,确实没那么完美

使用特权

评论回复
14
taobaofarmer|  楼主 | 2020-2-29 09:52 | 只看该作者
本帖最后由 taobaofarmer 于 2020-2-29 09:57 编辑

在各项技术指标上降低用户使用的难易度是很重要的一件事情,比如这ROM前256个字节不能用MOVC的问题,除了赛元之外其它8051的厂家都没有使用过这种手段,这样就让赛元的8051变得不兼容和有点儿怪异了,另外也会让很多初学者卡在这里不知道怎么解决了,我们现在看是很容易解决的,但初学者随便有个小沟沟坎坎都卡住,你们说的这个为了防止**这个理由是有一定道理的,但不走寻常路不一定是好办法,92系列没有内部独立ID,我想办法模拟一个ID,我是这样解决加密问题的,上位机产生一个4字的随机数通过UART下发给MCU,MCU把这4个字位置的CODE代码读出,把它作为unique id来进行过常规的加密,所以加密的问题都是靠用户的水平来解决的,你们这种独树一帜的方法我个人不太支持,最简单的说,这个问题,会导致所有由其它厂家MCU转向赛元8051的人在熟悉的过程中走一个弯路,从而觉得赛元的8051怎么这么特别呢。另外仿真的问题,我用过不少MCU,没见过仿真器必须通过断电的方式来给目标板复位的,这个就更奇葩了,在有些特殊的应用里,调试过程中是不允许给板子断电的,板子一断电,很多参数就变了没了,无法继续调试,无法保护现场,这方面,你们做的有点儿只考虑自己的角度了,我用过这儿多MCU,刚上手调试的时候,都困扰了我挺久,怎么回事儿,板子怎么无法复位呢,因为我没断开板子的外部供电,这对于初学者来说更是一个坎儿,你们交换一下角度,用心去体会一下,会感觉到上面说的这两点确实有点儿特立独行与众不同。STM8仿真也是4根线,它有一个独立的RESET脚,还有一根线是SWIM,这根线是ST独有的时钟数据共用的线,这个技术较先进,赛元不一定要这样做,但我觉得可以把VCC脚去掉,不用给板子供电,然后加上RESET脚,再封上一个JLINK的外壳,这样有困难吗?

18295e59be2ac20e7.png (1.35 KB )

18295e59be2ac20e7.png

425665e59c315bceb1.png (1.23 KB )

425665e59c315bceb1.png

714365e59c3ba0aefd.png (1.23 KB )

714365e59c3ba0aefd.png

使用特权

评论回复
15
hedongliang| | 2020-2-29 11:28 | 只看该作者
我也遇到这个问题,用的SC92F8456 3.3V供电,现在不知道怎么解决。。。不能仿真也太难受了

使用特权

评论回复
16
taobaofarmer|  楼主 | 2020-2-29 12:21 | 只看该作者
厂家会解决这个问题的,给他们点儿时间,估计也不会太久,这不会是个很棘手的问题估计

使用特权

评论回复
17
hedongliang| | 2020-2-29 14:20 | 只看该作者
发现是不支持动态跟踪,可以打断点,查看!!!

使用特权

评论回复
18
赛元MCU1| | 2020-3-10 14:29 | 只看该作者
taobaofarmer 发表于 2020-2-29 12:21
厂家会解决这个问题的,给他们点儿时间,估计也不会太久,这不会是个很棘手的问题估计 ...

您好,再次感谢您的问题反馈和耐心等待,目前3.3V无法仿真的问题我们已经修改了固件,并完成了内部验证,固件请见附件,此固件虽然完成了内部验证,但是还未经过客户端量产验证,为了小心起见,建议贵司先使用此固件做调试开发,量产时还是采用我们官网上的固件,等此固件在客户端使用一段时间确定没有问题后,我们会将此固件更新上网,届时便可以进行量产了,在使用过程中发现任何问题都可以和我们联系,谢谢!

SCLINK固件.rar

34.98 KB

可解决3.3V供电无法仿真的问题

使用特权

评论回复
19
taobaofarmer|  楼主 | 2020-3-11 12:26 | 只看该作者
好的,我先试下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

71

主题

460

帖子

3

粉丝