Es ist nicht so schwarz und weiß. In der AVR-Familie gibt es mehr als ein serielles Protokoll. Eines ist schmerzhafter als das andere. Die AVRs sind insofern nett, als Sie den Chip zurückgesetzt haben. Wenn Ihr Programm also etwas Dummes tut, wie die Programmierstifte neu zu verwenden (ja, das wurde schon mehr als einmal gemacht) und der Chip so konstruiert ist, dass er nicht zurückgesetzt werden kann, sind Sie es möglicherweise nicht Es kann neu programmiert werden, aber manchmal gibt es auch andere Lösungen.
Es geht um den Chiphersteller und darum, welche Funktionen er zu welchen Kosten dort einsetzen möchte. Ein 8-Pin-Teil mit mehreren Pins für die Programmierung wäre eine wirklich schlechte Idee, selbst eine doppelte Verwendung könnte schlecht sein, da der Benutzer möglicherweise nicht in der Lage ist, sein Board so zu gestalten, dass es diese Pins tatsächlich verwendet und vor Ort programmierbar macht. Wenn Sie jedoch genügend Stifte haben, können Sie sogar einige widmen, wenn Sie sie nicht muxen möchten. Es ist Sache des Chipherstellers / Designers, zu entscheiden, welches Protokoll oder welchen Satz er verwenden möchte. Wie bereits erwähnt, möchten sie es manchmal schaffen, sodass Sie ihre Tools kaufen müssen, weil sie das Protokoll geheim und geschützt halten. Sie bieten möglicherweise mehrere Lösungen, um es dem Benutzer einfacher zu machen.
Einige, heutzutage, ermöglichen eine Selbstprogrammierung. Das mcu kann seinen eigenen Flash aus Code programmieren, der auf dem mcu ausgeführt wird. Das öffnet die Tür für Bootloader. In einem solchen Fall können Sie jederzeit Ihr eigenes Protokoll erstellen, sodass Sie sich nicht auf den Anbieter verlassen müssen. Aber einige von ihnen haben eine oder zwei Schichten von Bootloadern, eine, die sie platzieren und vor deren Verwendung schützen. Ich denke, der AVR ist Hardware, der andere ist Software, der Bootloader, den die Arduino-Leute platzieren und mit einem Uart verwenden. Es ist nicht ungewöhnlich, vor allem bei ARM-basierten, eine serielle, USB- und möglicherweise SPI-Funktion auf dem eingebauten, vom Chiphersteller, dem Bootloader, platzierten Gerät zu haben. Befestigen Sie einen Eingangs-Pin beim Zurücksetzen oder Setzen von Pins, und der Bootloader übernimmt die App und startet sie nicht, sondern wartet darauf, dass Sie das Feldprogramm ausführen. NXP, ST, Atmel sind Anbieter, die dies tun.
Einige sind zwar nur jtag, jetzt mit dem reduzierten Pin-SWD-jtag bieten sie dies oft als Lösung zusammen mit den anderen an, und einige sind nur jtag. Aber weil wir keine parallelen Flash-Teile mehr verwenden, die alle mit demselben Protokoll programmiert sind und Sie nur eine Abstraktion zum Lesen und Schreiben von Adressen benötigen, spielen die jtag-Tools häufig nicht mit dem Erlernen der Protokolle aller möglichen Chips, also auch Sie Verwenden Sie ein spezielles Tool von ihnen oder machen Sie es auf eine andere Weise (zum Beispiel nach meinen Wünschen, schreiben Sie ein Programm und laden Sie es herunter und lassen Sie es die Selbstprogrammierung verwenden, einige der Lösungen (stlink usw.) laden tatsächlich ein Programm oder Design herunter und dann spricht das Tool mit dem heruntergeladenen Objekt, um die Aufgabe zu unterstützen.
Dies liegt jedoch bei Ihnen als Benutzer, um dies zu den Dingen hinzuzufügen, nach denen Sie suchen müssen, wenn Sie das mcu für Ihr Projekt auswählen. Wie programmieren wir es? Werden Sie diese Dinge massenweise programmieren, pro Board programmieren und die IKT sich darum kümmern lassen? Aber was ist Ihre Lösung für die Softwareentwickler, bevor Sie zur Massenproduktion kommen? Werden sie zu Bricking Boards, weil es auf den Prototyp-Boards keine Lösung gibt, die neu programmiert werden kann? Oder legen Sie etwas offen usw. Wenn der Chip keine guten Lösungen bietet, erhöht dies nur die Entwicklungskosten. Arbeiten Sie auf jeden Fall mit Ihren Softwareentwicklern zusammen, bevor Sie das Board entwerfen. Andernfalls reichen oft ein paar Uart-Pins und ein Gurt oft aus, um einen Bootloader zu erstellen, falls noch keiner vorhanden ist. Oder ein Strap und ein Jtag können ihre Anwendung sehr früh stoppen, wenn der Strap gesetzt ist, und dann mit jtag übernehmen, um entweder zu debuggen, Programme herunterzuladen oder den Chip neu zu programmieren.
Früher Sie haben gerade den Abschlussball entfernt und gelöscht, ihn dann in einen Programmierer gesteckt oder ihn löschen lassen und den nächsten gelöschten genommen und programmiert, indem Sie ihn wieder in den Sockel in der Platine gesteckt haben. Das oder zog das mcu selbst heraus und legte es in den Radiergummi und / oder Programmierer.
Die meisten haben jetzt eine Feldprogrammierlösung oder Sie können Ihre eigene Feldprogrammierlösung (in Software) erstellen, wenn genügend Pins vorhanden sind. Wenn nicht, machen Sie eine Steckdose für die Entwicklerprototypen und eine Vorrichtung für die Neuprogrammierung oder werfen Sie die Teile einfach weg, bis die Entwickler es richtig machen.