在商业产品上使用CH340G是一个可怕的主意吗?[关闭]


12

我正在开发一种利基产品,它将以相当低的产量(数百个)生产。我正在使用Atmega uC,其中一项要求是用户可以现场刷新的能力。我的计划是将Arduino引导程序与USB-to-UART IC配合使用(我知道这很懒,但是在这种情况下,它可能是最好的选择)。

有很多选择。我现在的原型板使用的是FTDI FT232RL,但这对于生产来说太昂贵了,因为整个板的价格在20美元左右。

我考虑过的IC包括:

  • CH340G
    • 最便宜的选择,但是OSX签名驱动程序的状态如何?我无法确定这是否将完全即插即用。有人知道这是什么状态吗?
  • CP2102
    • 健壮,不用担心已签名的驱动程序等。但是它更昂贵。
  • MCP2200
    • 同样强大,无需担心已签名的驱动程序。与CP2102相比,该如何选择?它们几乎是相同的价格。

除了已签名的驱动程序之外,是否还有其他具有上述选择的“陷阱”?我不想强迫用户安装未签名的驱动程序/在重新刷新过程中添加一个可能很痛苦的过程,但是我也不想仅出于用户可刷新性的目的在BOM成本中增加2美元。

任何一般性指导/建议都将是有用的。谢谢。


3
如果用户确实想重新刷一下电缆,您能提供一条单独的电缆可以购买吗?还是重新刷写对于使用产品必不可少?
DKNguyen,

重新刷新对于产品的使用是必不可少的,因为它可能会在许多不同的场景中使用,并且必须由客户在将来的某个日期针对不同的应用程序完全重新配置。
willem.hill

一个客户通常只拥有其中一台设备,还是有很多?如果每个客户有很多决定,那么Chetan Bhargava可能是一个不错的选择:将编程接口与设备本身分开。
jcaron

使用CH340并必须切换到CP2104来解决问题的产品示例:github.com/sqfmi/badgy#rev-2b
jcaron,

更好的问题是您可以购买CH340芯片吗?我上次检查时没有美国供应商随身携带。
CrossRoads

Answers:


26

最简单的选择,也是我在这里推荐的选择,是使用一种微控制器,该微控制器本身支持USB,并且可以通过USB DFU(设备固件更新)引导加载程序进行编程。这种微控制器的一个例子是ATmega32U4,在Arduino Leonardo上可以看到。另一个是ST STM32F103。即使这些微控制器比您以前使用的微控制器贵一些,但成本的增长可能仍小于分立USB UART接口的成本。使用单个零件还将减少设备的整体尺寸和功耗。


16U2是Arduino Uno和Mega常用的选项,它们与OS X兼容-甚至是较旧的版本。
Greenonline

1
@Greenonline与我提到的32U4相同,只是一个较小的版本。
duskwuff -inactive-

8

Apple提供的CH340驱动程序包括最新版本的MacOS。“ AppleUSBCHCOM”。


2

通常,如果您让客户能够刷新您的设备,则希望他们不要使设备变砖。

因此,提供的主要优先级是与主机设备的牢固且安全的连接。根据我的经验,所有芯片都可以在城市和实验室环境中很好地工作(假设您是针对的)。

还考虑一下使组件正常工作所需的时间-您的生产数量少了几百个,您每个增加了2美元。该“损失”是否价值超过您(或开发者)的时间?记录良好的芯片实际上可能是更好的选择,即使成本更高。

CH340

是的,至少在您需要即插即用的情况下,这确实是一个坏主意。对于Win 8.1的我来说,我需要手动安装驱动程序(CH340SER.exe),该驱动程序必须从(当时)没有英文翻译的(中国)制造商的网站上下载。

它是在中国托管的,对于有安全意识的个人以及受组织和/或政治规则约束的个人而言,这可能是个问题。而且,在许多可疑的“免费”驱动程序下载站点中,它的搜索结果也排名不胜枚举。

如果这是什么严肃的设备(反对“仅仅”使用Arduino),那将使我大为惊讶。如果您的客户没有专用的闪存设备,手动安装也可能会很烦人。

否则,该芯片将按预期工作。

CP2102

没什么好说的,开箱即用,没有提出任何问题。我可能会选择平均设计。

对外直接投资

我在独立的USB-Serial转换器板上有一个,它表现良好。正如您所写,它相当昂贵,但我相信在恶劣环境下(例如连接器上腐蚀的触点以及EMI),它可能是更好的选择。因为您支持原始开发人员,所以可能给您一种温暖的模糊感觉。

其他想法

互联网服务提供商

根据@Chetan Bhargava的回答,一种选择是为SPI提供一个连接器,然后使用独立的USB串行转换器。

这还要求您提供一个可靠且安全使用的连接器供ISP连接。显然,您可以在这里使用引脚连接器,而价格便宜,但是如果您想做对(和/或对客户不足够的信任),那么该连接器可能会比附加芯片和普通USB连接器昂贵。如果串行连接不起作用,则很难调试,这与USB相反,在USB中,客户至少会收到USB设备不起作用的通知。

如果将独立转换器与电路板捆绑在一起,则您也必须为转换器板支付费用。我认为这不会比集成芯片便宜。如果每个客户都拥有您的许多电路板,那么这可能会起作用,因此可以重新使用转换器,或者您可以将购买编程器的费用推给客户方。

如果可能的话,此时,还有Atmel自己的AVRISP,虽然有些过时了,但它是一个不错的选择,而不是普通的USB-to-Serial。我认为它的上限大约为100或200 kbps,而现代USB串行转换器则达到了兆位范围。但这在(误用)使用方面非常强大。

另一个不错的选择是TC2030连接器。它只需要与PCB上的焊盘配合使用,但需要一些专业知识(您必须当场将其握住,直到编程完成)。

通讯接口

现代微控制器还带有许多其他通信接口(以太网,WiFi,蓝牙),通常可以使用这些接口进行刷新。例如,ESP32的成本约为6美元,是一种SoC,具有wifi连接所需的所有组件。它还与Arduino兼容(您甚至可以使用IDE),并具有非常详尽的示例集,包括WiFi OTA引导加载程序。您仅需要ISP来进行Bootloader的初始部署。

如果-在您的问题中听起来像-您的项目大部分已经完成,那么这可能不再是一个选择。


-2

为了使您的产品能够现场编程/使用闪光灯在此处输入图片说明电缆,请使用通用的排针。Arduino引脚排列非常普遍。如果您不是每周更新一次,则无需嵌入USB到串行转换器。对于现场设置,我会增加现场编程设备的成本,而不是增加现场编程能力。


如果您不需要频繁闪烁,则无需嵌入串行转换器。

一些常见的(低成本)USB转串行转换器基于以下芯片组。

FTDI-Windows和Linux驱动程序,但是这些驱动程序可以使电缆变砖-避免使用
CH340-Windows和Linux驱动程序
PL2303-Windows和Linux驱动程序

这些驱动程序可轻松用于Windows和Linux平台。关于苹果我不能说太多,因为我买不起苹果笔记本电脑。

如果现场编程的可能性小于50%,我宁愿将USB-Serial排除在我的项目之外。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.