ARM-Mikrocontroller, wo ich anfangen soll [geschlossen]

Ich hatte zuvor an Arduino gearbeitet, aber ich denke, es war für die Benutzer sehr vereinfacht. Jetzt will ich richtig lernen. Ich beschloss, mit dem Lernen von ARM-Mikrocontrollern zu beginnen. Also habe ich LPC1114 DIP gekauft, weil ich es auf einem Steckbrett machen kann. Ich wollte kein fertiges Board verwenden. Wie gehe ich vor? Gibt es Tutorials zum Programmieren? Ich habe einen Code gefunden und versucht, daraus zu lernen. Wie programmiere ich meinen Mikrocontroller? Ich stecke hier irgendwie fest.

Bearbeiten: Ich habe mich für ARM entschieden, nachdem ich einige Vergleiche gelesen hatte. Da LPC1114 im Vergleich zu 8-Bit-AVR 32 Bit ist, dachte ich, dass das Erlernen von ARM für größere Projekte nützlich wäre.

Es ist durchaus möglich zu lernen, wie man eine MCU auf niedriger Ebene mit einem Arduino-Gerät verwendet, indem man einfach die Arduino IDE ignoriert. Es ist nicht zu spät, einen Rückzieher zu machen, wenn Sie sich unwohl fühlen.
Schritt 1. Wählen Sie die Firmware-Entwicklungs-Toolchain, die zu Ihrer Situation und Ihren Zwecken passt. (Es ist gut, dass Sie sich entschieden haben, sich von vorgefertigten Entwicklungsboards fernzuhalten.)
Ich stimme @IgnacioVazquez-Abrams zu. Das mache ich die ganze Zeit. Wenn ich einen schnellen Test benötige, verwende ich die Arduino IDE und wenn ich die Hardware streng kontrollieren möchte, programmiere ich das Arduino-Board mit der Standard-AVR-Toolchain von der Befehlszeile aus. ARM-Controller sind viel komplexer als AVRs, die Lernkurve wird viel steiler sein, aber es ist sicher machbar.
@IgnacioVazquez-Abrams Ich möchte mit ARM arbeiten. Wie hilfreich ist es, zuerst AVR zu lernen, bevor man zu ARM wechselt?
@zud: Sofern Sie nicht mit einer wirklich exotischen MCU arbeiten, z. B. einer Malbolge-Engine, sind die meisten MCU-Fähigkeiten auf jede Architektur übertragbar, sogar über die Trennung von Harvard / Von Neumann.
@NickAlexeev - eigentlich wäre ich etwas anderer Meinung, mich von den vorgefertigten Boards fernzuhalten. Es kann sehr nützlich sein, mit einem bekanntermaßen guten Board zu beginnen, um die Toolchain und das Programmierer-Setup zu überprüfen, und dann zu einem ähnlichen Ziel auf einem benutzerdefinierten Board (/breadboard) zu wechseln. Eine Sache, die ST zum Beispiel mit ihrer „Discovery“-Serie wirklich gut gemacht hat, war die Herausgabe von Boards der 12-Dollar-Klasse, die einen Ziel-ARM an Bord haben, und auch eine zweite MCU, die als Programmierer für entweder das Onboard-Ziel oder (über ein 4 -Draht-SWD-Kabel) den Chip, den ein Experimentator auf seiner eigenen benutzerdefinierten Platine platzieren kann.
@ChrisStratton Der niedrige Preis des Entwicklungsboards ist der größte Nichtfaktor. Tatsächlich ist das ein Köder.
Sie können es gerne so sehen, aber die praktische Seite ist, dass es sich jeder (als Impulskauf) leisten kann, einen Programmierer und eine bekanntermaßen gute Testplattform zu haben, um es als Referenz zu versuchen, wenn das benutzerdefinierte Board nicht sofort funktioniert. Es zeigt auch, dass alles, was benötigt wird, um einen SWD-Adapter herzustellen, eine MCU im Wert von 6 $/qty1 ist.
@ChrisStratton Du hast meinen Punkt nicht verstanden. Nun ja.
Nein, ich denke, Sie verfehlen den Punkt – es ist leicht zu schlussfolgern, dass billige Werkzeuge in einem professionellen Umfeld irrelevant sind, aber das stimmt nicht – und nicht nur, weil Ingenieure sie kaufen können, ohne eine Bestellung genehmigen zu lassen. Wichtiger ist, dass die billigen Tools tatsächlich funktionieren müssen, oder es spricht sich herum und der ganze Sinn, sie anzubieten, wird zunichte gemacht. Im Gegensatz zu denen, die 300 Dollar für einen Programmierer wollen – an und für sich kein Problem, außer dass sie sich bei diesem Preis anscheinend mehr Mühe geben, das System gegen Kloner abzusichern, als dafür zu sorgen, dass es für Kunden tatsächlich gut funktioniert.

Antworten (2)

Glücklicherweise verfügt der LPC1114FN28 über einen Bootloader, der es ermöglicht, ihn über eine serielle Verbindung zu programmieren. Hier ist eine Webseite, die den "Getting Started"-Prozess beschreibt: http://vilaca.eu/lpc1114/

Ich würde dennoch aus zwei Gründen empfehlen, ein Board (z. B. LPCXpresso ) zu kaufen: Es ist einfacher, damit anzufangen, und es ist für JTAG/SWD-Debugging vorgesehen. Als Anfänger ist man schnell entmutigt, wenn man an seinem Programm nur feststellen kann, dass es "irgendwo" abstürzt.

(Es scheint Snobismus gegenüber vorgefertigten Entwicklungsboards zu geben; ich kann das Argument verstehen, dass man als Endergebnis eines Hobbyprojekts ein voll integriertes "Produkt" bauen sollte, aber wenn Sie nur Experimente durchführen wollen, um Dinge zu lernen, müssen sie sparen viel Zeit und sind wiederverwendbar.)

Ich empfehle dringend, dass Sie sich eine Debugging-Schnittstelle besorgen, mit der Sie dieses Gerät programmieren und debuggen können. Der billigste und schnellste Weg, um loszulegen, ist wahrscheinlich, ein LPCExpresso-Board zu kaufen und die LPCExpresso-Software zum Programmieren zu verwenden. Das LPCExpresso-Board besteht eigentlich aus zwei Boards: Es gibt einen Prozessor, der als Debugging-Schnittstelle verwendet wird, und der zweite Prozessor ist das "Ziel". Sie können eines dieser Boards mit einem LPC11xxx als Zielprozessor erhalten, und es ist ziemlich einfach, die Debugging-Schnittstelle physisch vom Zielprozessor zu trennen. Dann können Sie die Debugging-Schnittstelle verwenden, um Ihre LPC1114 DIP-Geräte zu programmieren. Ich habe dies getan, aber ich verwende ein teureres JLink-Debugging-Gerät.

Beachten Sie, dass Sie herkömmliches JTAG nicht mit den LPC11-Teilen verwenden können, Sie müssen die ARM Single-Wire Debug (SWD)-Schnittstelle verwenden.