14320|45

1377

帖子

2

TA的资源

五彩晶圆(初级)

楼主
 

国产替代 MCU 踩坑记 [复制链接]

 
 

  作为一名蝴蝶粉,对STM32缺货涨价事情表示遗憾。但是不论做产品还是DIY玩,成本也不可能不在乎(说不在乎也是有限度的)。

  去年下半年我设计了一个作品(算少量批量做的产品),板子上有些地方需要个MCU进行简单的控制。因为我用 STM32 系列用得最熟悉,就选了差不多最便宜的 20 脚 STM32F030F4P6 来用。当时两块多一片吧,也不是最便宜的 MCU 方案,但这样对我来说开发起来最快。一个月后第二批采购的时候,同一卖家的报价就涨了不少,不过还是继续用了。再过了一个月,居然又涨了价,于是我换成了引脚兼容的 STM32L010F4P6,从STM32天猫店买的,四元不到。虽然比原来的还是贵,但比当时的 F030F4P6 要便宜。

  再后来,STM32F030 的价格离谱了(虽然 MCU 成本占比并不大),我就开始选择国产替代了。

  尝试 #1, CKS32F030F4P6.  据说是二进制兼容 STM32F030 的,价格又便宜。买来样片一试,居然可以用 ST-Link 下载,被 ST-Link Utility 识别为 STM32F030 了。原来的 HEX 不作改动直接烧写,运行效果和 STM32 一样。因为我要的功能很简单,只是我用到的功能验证没有问题,不代表 100% 和 STM32 兼容。便宜好用,可是,今年初也缺货涨价了。

  尝试 #2. HK32F030MF4P6.  当我发现国产替代的 MCU 也开始缺货,就考虑下其它方案了,不排除以后用 C51 带代替。因为还有引脚兼容要考虑,我把 PCB 修改成了兼容 STM8S003 的,不兼容 STM32F030 了。接着,发现了 HK32F030MF4P6 这个奇特的型号。这家厂家还有叫做 HK32F030F4P6 的型号,后者是和 STM32F030 引脚兼容的。而前者,却是兼容 STM8S003. 我测试样品发现它并不能被 ST 的工具识别,只能用 OpenOCD 来自己写脚本程序下载了。虽然引脚分布变了,但一看手册我发现这和 STM32 的寄存器基本上是一回事,所以用个 STM8S 的小板子放了段代码进去,运行点灯没问题,就投板子做去了。

  尝试 #3. XM1008F6P6.  最近的事情,我有另一个作品用 STM32F031F6P6 的需要再做,但因为缺货也得找替代型号了。CKS32F031 已经买不到了。搜索找到这个型号号称可以兼容 ST 的 F030/031, 价格还不贵。好象厂家正在做推广,买样片还包邮顺丰,那就先验证。居然又是可以被 ST 工具识别成 STM32F0 的,但是我的代码烧进去不能正常工作了。

 

  下面说踩的坑了: XM1008 这个,我遇到原来 STM32 代码不兼容的地方有两个。(1) GPIO.BSRR 这个寄存器,在 STM32 中是可以 32-bit/16-bit/8-bit 读写的,但是在 XM1008 上面,BSRR 的高16位用一个半字操作来写,就无效了——源代码改一下就能解决。但是这暗示着 XM1008 可能在寄存器的访问方式上与 STM32 不完全一致。(2) 这个其实是我在 STM32 的代码中有bug, 但是STM32却按我的意图工作了,在 XM1008 上严格地失败。我操作 SYSCFG 的 CR 寄存器改变内存映射,却没有在 RCC 中将 SYSCFG 使能。这个错误操作在 STM32 上居然成功起了作用。

 

  HK32F030MF4P6 的坑,因为板子刚焊回来,是才调试的。这里的坑倒是费了我不少工夫找问题。这个芯片,可以看成 STM32F030 的一个变种。虽然比较头文件的寄存器定义,跟 STM32 看起来是一样的……(但是魔鬼可能在细节里面)我修改过引脚使用的程序烧进去就不工作了,而且不能重新烧程序,SWD 口连不上……

  我的程序用了 STOP 模式,靠外部中断唤醒。按照 STM32 上的经验,在 STOP 模式下是能用 SWD 调试的,除非把 DBGMCU 里面允许低功耗调试的开了。奇怪的是,我用复位引脚也不能让 SWD 连上(Connect under reset),这个 MCU 变砖了一样。

  为了找问题,我用了实验板和另外一片芯片,在代码中加了一段延时用于调试器介入。我发现了 MCU 的 SCB.CR 的 SLEEPDEEP 位不设置的话,外部中断可以唤醒,也就是在普通 Sleep 模式工作是正常的。为什么用 STOP 模式就不正常呢?而且,在 STOP 模式进入之后,不但外部中断不能唤醒,复位脚也不起作用。

  后来我注意到这产品手册上提到,除了电源脚外,引脚都可以做 GPIO.  哦,是,NRST 脚也可以做 GPIO. 仔细核对,NRST 脚也就是 PA0. 而我的代码将默认引脚都设置成 analog 模式去了。所以,要给 PA0 设置成 AF 才可以作复位。

  复位脚问题解决了。但是 STOP 模式下还是不能复位。奇怪了,我测量了下工作电流,还没有达到 STOP 模式那么低。再对照下手册,HK32F030M 有 Sleep, Deep Sleep, STOP 模式,比 STM32F030 多了一个 Deep Sleep. 而我测量的电流,似乎和 Deep Sleep 差不多。难道休眠模式错了?

  按照手册给出的说明,我设置 SLEEPDEEP 位进入 STOP 模式并没有问题。这坑从哪里来的?

   然而,我将 PWR.CR 的 LPDS 位写1之后,居然就成功了。电流也小了,也可以NRST脚复位了。

 

最新回复

楼主写的真是太好了~~   详情 回复 发表于 2021-7-9 10:51

赞赏

1

查看全部赞赏

点赞(6) 关注(6)
 
 

回复
举报

2万

帖子

71

TA的资源

管理员

沙发
 

坑不少,好在解决了!谢谢楼主分享哈哈

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 
 

回复

5260

帖子

239

TA的资源

管理员

板凳
 

你这淘替代的能力很强啊, XM1008F6P6,都没听过的品牌,你是咋淘到的

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复

2万

帖子

343

TA的资源

版主

4
 

现在有的MCU刚一出生,就号称可以替代STM32,,,楼主的分享值得借鉴

坑确实多

 
 
 

回复

1377

帖子

2

TA的资源

五彩晶圆(初级)

5
 
nmg 发表于 2021-4-1 11:00 你这淘替代的能力很强啊, XM1008F6P6,都没听过的品牌,你是咋淘到的

淘宝搜到的。

 
 
 

回复

1377

帖子

2

TA的资源

五彩晶圆(初级)

6
 

补充一个 HK32F030M 的坑:

从STOP模式恢复以后,内部RC振荡器(HSI)的频率稳定时间比STM32明显长了。我的程序中唤醒之后就启用了定时器来检测外部脉冲沿,结果就是推算的时间不准确。

 
 
 

回复

1万

帖子

2853

TA的资源

管理员

7
 

有好多都不知名的替代啊。昨天还是前天还看到个也是介绍替代的,什么GOF的,百度搜半天就看到咱论坛网友分享的那个贴

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

是我呀,管理员大人,不过我们目前只有替代103CBT6的  详情 回复 发表于 2021-6-16 18:18
 
 
 

回复

1万

帖子

16

TA的资源

版主

8
 

楼主比较幸运,我的 XM1008。ST LINK根本就不识别,加焊也识别不了。一脚踢飞,永不启用。

点评

还是要有定力。  详情 回复 发表于 2021-4-1 19:21
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 
 

回复

661

帖子

0

TA的资源

纯净的硅(初级)

9
 

感谢楼主分享

 
 
 

回复

6105

帖子

4

TA的资源

版主

10
 

感觉前路漫漫尽是埪啊。如何是好。

 
 
 

回复

1300

帖子

0

TA的资源

纯净的硅(中级)

11
 

小厂家的还是不要使用为好。103香水股票应该封杀严惩!中国应该停止提供封装,出口化学酸性,原材料和半导体硅材料。

 
 
 

回复

1300

帖子

0

TA的资源

纯净的硅(中级)

12
 
ddllxxrr 发表于 2021-4-1 13:33 楼主比较幸运,我的 XM1008。ST LINK根本就不识别,加焊也识别不了。一脚踢飞,永不启用。

还是要有定力。

 
 
 

回复

1300

帖子

0

TA的资源

纯净的硅(中级)

13
 

投机倒把的代理应该严惩不贷。现在的商家需要好好整顿了!

 
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

14
 

雅特力试试呢。好像兼容性挺强的。电气、寄存器这上千上万个参数,遇到了可能就是麻烦事,关键是能兼容,但是最后的结果依据环境有偏差,这才麻烦。

个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

6105

帖子

4

TA的资源

版主

15
 
本帖最后由 damiaa 于 2021-4-14 09:18 编辑

XM1008 拿几片试试。  

点评

不过这芯片估计最多只能是暂时替代。一是价格也不低了。二是除了datasheet外。没有任何资料。也没库文件。 还是推荐雅特力。  详情 回复 发表于 2021-4-14 09:18
 
 
 

回复

6105

帖子

4

TA的资源

版主

16
 
damiaa 发表于 2021-4-13 16:09 XM1008 拿几片试试。  

不过这芯片估计最多只能是暂时替代。一是价格也不低了。二是除了datasheet外。没有任何资料。也没库文件。

有时间静下心来移植的话还是推荐雅特力。

点评

准备拿点试试。 采购告诉我:问淘宝。直接说缺货。 惊 还不知道能不能用!          直接回:算了。不要了。  详情 回复 发表于 2021-4-14 12:12
 
 
 

回复

6105

帖子

4

TA的资源

版主

17
 
damiaa 发表于 2021-4-14 09:18 damiaa 发表于 2021-4-13 16:09 XM1008 拿几片试试。   不过这芯片估计最多只能是暂时替 ...

准备拿点试试。

采购告诉我:问淘宝。直接说缺货。

惊 还不知道能不能用!  

       直接回:算了。不要了。 

 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(中级)

18
 

华大的单片机坑多吗?最近入门替换103

 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(中级)

19
 

现在虽然网络很发达,但有些资讯绝对封闭!受贸易战影响,进口芯片涨价可以理解,但国内的芯片价格也一起发疯……

 
 
 

回复

1368

帖子

6

TA的资源

版主

20
 

虽我缺芯,但楼主很用心,棒棒哒

个人签名专注智能产品的研究与开发,专注于电子电路的生产与制造……QQ:2912615383,电子爱好者群: void
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表