一般的に、顧客にデバイスをフラッシュする機能を提供する場合、顧客にそれをブリックしないようにします。
したがって、提供する主な優先事項は、ホストデバイスへの堅牢で安全な接続です。私の経験では、すべてのチップは、あなたがターゲットにしていると思われる都市部や実験室の設定でかなりうまく機能します。
また、コンポーネントを正しく動作させるのに必要な時間も考慮してください。生産数は数百台で、それぞれに2ドルを追加します。その「損失」はあなたの(または開発者の)時間よりも価値があるのでしょうか?十分に文書化されたチップは、たとえそれがもっと高くても、実際にはより良い選択かもしれません。
CH340
はい、少なくともプラグアンドプレイが必要な場合は、本当に悪い考えです。Win 8.1の場合、ドライバーを手動でインストールする必要がありました(CH340SER.exe
)当時)英語の翻訳がなかった(中国語)製造元のWebサイトからダウンロードありました。
これは中国で開催されましたが、これはセキュリティ志向の個人や組織的および/または政治的ルールに縛られている人々にとって問題になる可能性があります。また、多くの疑わしい「無料」ドライバーダウンロードサイトによる検索結果としても上位にランクされました。
これが深刻な機器である場合(「単なる」Arduinoとは対照的に)、それは私の眉毛を天井まで上げます。顧客がフラッシュ専用の機器を持っていない場合、手動インストールも非常に面倒な場合があります。
それ以外の場合、このチップは期待どおりに機能しました。
CP2102
言うまでもなく、箱から出して働いて、何の問題も持ち出しませんでした。たぶん、平均的なデザインには私の選択でしょう。
FTDI
私はこれをスタンドアロンのUSB-Serialコンバータボードに搭載しており、うまく機能しています。あなたが書いたように、それはかなり高価ですが、私はそれが荒い環境(例えば、コネクタの腐食したコンタクト、EMI)でより良い選択かもしれないと信じています。元の開発者をサポートしているので、温かいあいまいな気持ちになるかもしれません。
他のアイデア
ISP
@Chetan Bhargavaの回答によると、オプションはSPI用のコネクタを持ち、スタンドアロンUSB-シリアルコンバーターを使用することです。
これには、ISPが接続するための信頼性が高く安全なコネクタを使用する必要もあります。ここではピンヘッダーを使用して安上がりにすることができますが、それを正しく行いたい場合(および/または顧客を十分に信用しない場合))場合、このコネクタは追加のチップや標準のUSBコネクタよりも高価になる可能性があります。シリアル接続は、ユーザーが少なくともUSBデバイスが機能していないことを通知されるUSBとは対照的に、機能しない場合はデバッグが非常に困難です。
スタンドアロンコンバーターをボードにバンドルする場合、コンバーターボードの価格も支払う必要があります。これはチップを統合するよりも安くないと思います。これは、各顧客が多くのボードを所有しているためにコンバーターが再利用される場合、またはプログラマーを顧客側に獲得するためのコストを払うことができる場合に機能します。
このオプションが可能であれば、この時点で、Atmel独自のAVRISPもあります。これは、少し時代遅れではありますが、単純なUSB-to-Serialの代わりにここで良い選択です。最新のUSB-Serialコンバーターがメガビットの範囲に入る100または200 kbps程度で上限になると思います。しかし、(誤)使用に関しては非常に堅牢です。
別の良いオプションはTC2030コネクタです。動作するにはPCB上のパッドのみが必要ですが、ある程度の専門知識が必要です(プログラミングが終了するまでその場で保持する必要があります)。
通信インターフェース
最新のマイクロコントローラーには、他の多くの通信インターフェース(イーサネット、WiFi、Bluetooth)も付属しており、通常これらを使用してフラッシュできます。例としては、約6米ドルのコストがかかり、wifi接続に必要なすべてのコンポーネントを備えたSoCであるESP32があります。また、Arduino互換(IDEを使用することもできます)であり、WiFi OTAブートローダーを含む非常に徹底的なサンプルセットがあります。ブートローダーの初期展開にはISPのみが必要です。
あなたの質問にあるように-あなたのプロジェクトがほぼ終了した場合、これはおそらくもうオプションではありません。