Wenn Sie Ihren Kunden die Möglichkeit geben, Ihr Gerät zu flashen, möchten Sie im Allgemeinen, dass sie es nicht blockieren.
Daher besteht die Hauptpriorität darin, eine robuste und sichere Verbindung zum Host-Gerät herzustellen. Meiner Erfahrung nach funktionieren alle Chips in den städtischen und Laborumgebungen, auf die Sie zielen, ziemlich gut.
Berücksichtigen Sie auch die Zeit, die erforderlich ist, um die Komponente zum Laufen zu bringen - Ihre Produktionsanzahl liegt bei Hunderten, und Sie addieren jeweils 2 USD dazu. Ist dieser "Verlust" mehr wert als Ihre (oder die des Entwicklers) Zeit? Ein gut dokumentierter Chip könnte tatsächlich die bessere Wahl sein, auch wenn er mehr kostet.
CH340
Ja, es ist wirklich eine schlechte Idee, zumindest wenn Sie Plug-and-Play möchten. Für mich unter Win 8.1 musste ich den Treiber manuell installieren (CH340SER.exe
) ich von der (chinesischen) Hersteller-Website herunterladen musste, die (zu diesem Zeitpunkt) keine englische Übersetzung hatte.
Die Veranstaltung fand in China statt, was ein Problem für sicherheitsbewusste Personen und für Personen sein könnte, die an organisatorische und / oder politische Regeln gebunden sind. Außerdem wurde es als Suchergebnis von vielen zweifelhaften "Free" -Treiber-Download-Sites übertroffen.
Wenn dies irgendeine ernsthafte Ausrüstung wäre (im Gegensatz zu "nur" einem Arduino), würde das meine Augenbrauen zur Decke heben. Das manuelle Installieren kann auch sehr ärgerlich sein, wenn Ihre Kunden keine dedizierten Geräte zum Flashen haben.
Ansonsten funktionierte dieser Chip wie erwartet.
CP2102
Es gab nicht viel zu sagen, wir haben sofort reagiert und keine Probleme angesprochen. Wäre wahrscheinlich meine Wahl für ein durchschnittliches Design.
FTDI
Ich habe dieses auf einer Standalone-USB-Serial-Konverterkarte und es funktioniert gut. Wie Sie geschrieben haben, ist es ziemlich teuer, aber ich glaube, es ist eine bessere Wahl in rauen Umgebungen (z. B. korrodierte Kontakte an Steckverbindern, auch EMI). Gibt Ihnen möglicherweise ein warmes, unscharfes Gefühl, weil Sie die ursprünglichen Entwickler unterstützen.
Andere Ideen
ISP
Laut der Antwort von @Chetan Bhargava besteht eine Option darin, einen Anschluss für das SPI zu haben und dann einen eigenständigen USB-Serial-Konverter zu verwenden.
Dazu müssen Sie auch einen zuverlässigen und sicher zu verwendenden Anschluss bereitstellen, an den der ISP angeschlossen werden kann. Natürlich können Sie hier mit Stiftleisten billig arbeiten, aber wenn Sie es richtig machen möchten (und / oder Ihren Kunden nicht genug vertrauen ), ist dieser Anschluss möglicherweise teurer als der zusätzliche Chip und ein Standard-USB-Anschluss. Serielle Verbindungen sind schwer zu debuggen, wenn sie nicht funktionieren, im Gegensatz zu USB, wo der Kunde zumindest benachrichtigt wird, dass das USB-Gerät nicht funktioniert.
Wenn Sie einen Standalone-Konverter mit Ihrer Karte bündeln, müssen Sie auch den Preis für die Konverter-Karte bezahlen. Ich würde annehmen, dass dies nicht billiger wäre, als den Chip zu integrieren. Dies könnte funktionieren, wenn jeder Kunde viele Ihrer Platinen besitzt, sodass der Konverter wiederverwendet werden könnte, oder wenn Sie nur die Kosten für die Anschaffung des Programmierers auf die Kundenseite verlagern können.
Wenn diese Option möglich ist, gibt es an dieser Stelle auch Atmels eigenes AVRISP, das hier eine gute Wahl ist, anstatt des einfachen USB-zu-Seriell-Verfahrens, obwohl es etwas veraltet ist. Ich denke, dass es bei etwa 100 oder 200 kbit / s endet, wenn moderne USB-Serial-Wandler in den Megabit-Bereich gehen. Es ist aber sehr robust in Bezug auf (Fehl-) Verwendung.
Eine andere gute Option könnte ein TC2030-Stecker sein. Es werden nur Pads auf der Platine benötigt, um damit arbeiten zu können, es ist jedoch etwas Fachwissen erforderlich (Sie müssen es vor Ort halten, bis die Programmierung abgeschlossen ist).
Kommunikationsschnittstellen
Moderne Mikrocontroller verfügen über eine Reihe weiterer Kommunikationsschnittstellen (Ethernet, WiFi, Bluetooth) und können mit diesen in der Regel geflasht werden. Ein Beispiel wäre der ESP32 , der etwa 6 USD kostet und ein SoC mit allen für eine WLAN-Verbindung erforderlichen Komponenten ist. Außerdem ist es Arduino-kompatibel (Sie können sogar die IDE verwenden) und verfügt über ein sehr umfassendes Beispielset, einschließlich eines WiFi-OTA-Bootloaders. Sie benötigen lediglich einen ISP für die Erstbereitstellung des Bootloaders.
Wenn - wie es sich in Ihrer Frage anhört - Ihr Projekt größtenteils abgeschlossen ist, ist dies wahrscheinlich keine Option mehr.