STM32克隆人:好的、坏的和丑陋的

2020-10-23 03:45:58

每当一款产品变得流行起来,其他公司就会开始有搭便车的冲动,这只是个时间问题。这种现象是多年来生产出如此多可怕的玩具和电子游戏的主要原因。然而,它也推动了电子世界的发展。因此,意法半导体极为成功的基于ARM的系列微控制器(MCU)的仿制、克隆和彻头彻尾的假冒也就不足为奇了。

假货可能是最有问题的,因为那些芯片假装是真正的STM32部件,一直到IC封装上的标记,而与它们假装的部件的兼容性可能会有很大差异。对于带有自己标记的仿制品和克隆,事情就更模糊了,因为人们可以合理地假装,那些公司恰好恰好设计了MCU,纯粹是巧合的,这些MCU恰好与那些非常流行的竞争MCU设计完全管脚和寄存器兼容。那将是最真诚的奉承。

让我们来看看周围有哪些赝品和仿制品,如果你最终拥有了一个,这意味着什么。

今年早些时候,基尔·弗雷泽(Keir Fraser)发布了一份关于一些假冒STM32F103 IC的信息摘要,这些IC出现在所谓的“蓝色药丸”(Blue Pill)和他们的Github上的类似电路板上。伪造品在包装上带有与正品STM32相同的标记,但通常可以通过包装上的酒窝图案或丝印质量来识别。

这些赝品并不总是功能齐全的。正如弗雷泽所指出的,这些部分中的许多甚至不能被正确编程,甚至不能像通用的“闪烁”示例那样简单地运行代码。有可能这些赝品实际上是有缺陷的STM32F103模具或类似的,是通过不合法的渠道出售的。

也许更阴险的是那些近乎伪造的赝品,乍一看可能是真的,但被上面的标识所暴露:“STM32FEBKC6”。这不是合法的ST部件代码,这应该是第一个提示。这是另一个可能只会给你带来悲伤的克隆,因为即使它真的起作用了,它也是STM32F103设计的精简版本,没有功能。找到关于它的详细信息也很困难。

这就留下了最棘手的克隆,即前面提到的CS32F103。这个克隆程序的工作原理与真实版本相似,可以很好地运行为STM32F103编译的Blinky。这些MCU中的一些甚至可能被标记为ST部分,使得它们很难确定。

其中一些是由长实(中科芯微)制造的,这是一家中国公司,显然已经制造了STM32F103型的功能完整版本,以至于他们已经修复了ST数据表中列出的一些勘误表。CNXSoft上的一篇文章提供了有关该MCU的更多细节。

人们很快就会遇到这个芯片的一个主要不同之处,那就是当对它进行编程时,会收到意想不到的消息:0x2ba01477";。原因是STM32F103 MCU报告ID 0x1ba01477,使程序员感到困惑。例如,在OpenOCD中,可以通过使用配置脚本来修复此问题,该配置脚本不指定CPUTAPID(0),也不指定CS32 MCU报告的此ID。

也许最著名的STM32克隆制造者之一是GigaDevice,它的GD32MCU。正如SMD Prutser在一系列文章中指出的那样,GD32F103似乎是STM32F103的更快、更强大的版本。它有更高的最高时钟速度和更快的闪存存储,一个拆封的单元显示他们在封装内使用了两个芯片。一个用于MCU,另一个用于闪存,允许以相当灵活的方式更改其产品范围内的闪存大小。

乍一看,GD32 MCU看起来比STM32F1系列更有吸引力,在时钟速度(72 MHz比108 MHz)和闪存存储方面有了显著提高。虽然GD32上的闪存应该非常慢,因为它是串行SPI ROM,但它在MCU管芯上使用SRAM来“缓存”闪存意味着它最终比片上闪存快得多,即使在全MCU时钟速度下也不需要等待状态。

使用更多SRAM而不是纯闪存的一个缺点是,它会增加功耗,特别是在休眠模式下。当在固件运行之前将SPI ROM的内容复制到SRAM中时,它还会导致(小)启动延迟。根据应用程序的不同,这可能是有利的,也可能是不利的。当然,这与ESP8266 MCU的方法相同,ESP8266 MCU也使用外部SPI ROM存储固件。

然而,当谈到其他GD32设备时,他们似乎不那么热衷于直接克隆。他们的GDF303 MCU保持了与GDF103相同的外围设备,尽管STM32F3的外围设备可以说更好。这也禁止将其用作STM32F3xx板的即插即用解决方案。根据人们对STM32F1外围设备的看法,这也可能会影响人们使用那些GD32 MCU的决定。

虽然我知道前面提到的假的和克隆的,但我最近还是遇到了一个新的。这涉及到从一家德国大型进口商和转售商手中购买一些“蓝色药丸”STM32F103电路板,这些电路板是各种制造商TAT的转售商。我对此并不感到自豪,但我需要一些便宜的电路板用于BlackMagic探头,而且它们的价格很划算。在亚马逊列表的评论中,一些人提到他们得到了一个真正的板子,而另一些人则提到它是“假的”。

出于病态的好奇心,我得到了几块这样的电路板,看到我实际上收到的蓝色药丸电路板并没有搭载承诺的STM32F103C8T6 MCU,而是一块标有CH32F103C8T6的电路板,我既震惊又高兴。从好的方面看,它并没有声称自己是“ST”的一部分。

这款CH32F103单片机是由一家名为WCH的中国公司生产的,提供了(仅限中文的)数据手册和参考手册供下载。粗略地看一眼,数据手册和Manaul都显示了一个实际上与STM32F103完全相同的芯片,具有相同的存储器映射和外围寄存器。

将其连接到ST-Link/V2加密狗并使用OpenOCD连接会导致与使用STM32F1xx配置文件时CS32F103 MCU相同的CPUTAPID错误。在按照其他人的建议对stm32f1xx.cfg文件进行相同的更改后,我可以将Nodate STM32项目中的‘Blinky’示例闪存到电路板上,而没有进一步的问题。

这表明至少基本的RCC(复位和放大时钟控制)、GPIO和SysTick功能足够相似,可以进行这样的基本测试。接下来,我将不得不探索它是否也以与我在其他几个板上的STM32F103 MCU相同的方式处理USART、DMA、SPI、I2C和I2S功能。如果这个MCU有点像CS32F103部件,那么答案可能是“是”。

至于卖家在我联系他们关于这些蓝色药丸电路板上没有广告中的STM32部件时的反应,他们承认他们知道这一点,并声称“两个月后”他们又会有真正的STM32部件的电路板。诚然,这带来的问题比它回答的问题多得多,尤其是为什么他们会故意出售没有广告中的MCU的主板。

我们当中目光敏锐的人可能已经注意到,几乎所有这些克隆都涉及ST的第一代Cortex-M MCU(STM32F1系列)。除非你需要为商业项目购买Blue Pill电路板,否则这不太可能只会让业余爱好者和其他喜欢为随机项目购买一堆3美元的Cortex-M3电路板的人感到恼火。如果有人从信誉良好的卖家如Digikey和Mouser那里订购MCU和开发板,也不太可能有太大的担忧。

蓝色药丸和黑色药丸电路板最近也进行了一些大修,更新版本采用了基于STM32F4的MCU。虽然比基于STM32F103的同类产品稍贵一些,但它们确实为STM32F4系列带来了相当多的资源和更舒适(在我看来)的外围设备。这些可能会使STM32F103的市场枯竭,随之而来的是无数的克隆、假冒和复制品。

直到第一批假冒的、克隆和复制的STM32F401和STM32F411 MCU上市,这是自然而然的。因为这显然是这个游戏的名字。