Was brauche ich, um meinen Code auf einen Mikrocontroller zu übertragen?


8

Ich habe gelernt, wie man einen Controller codiert, aber nie den Code auf das physische Gerät geschrieben. Ich versuche herauszufinden, was ich bestellen muss, um ein grundlegendes eingebettetes System zu entwickeln.

Wenn ich beispielsweise einen PIC18F1330 habe, habe ich MPLAB IDE und XC8 Compiler. Großartig, also habe ich den Code kompiliert und bin bereit, ihn auf den Controller zu setzen. Was muss ich tun, um meinen kompilierten Code auf meinem PC auf den Controller zu übertragen?

Ich habe Dinge wie einen In-Circuit-Debugger und ein PIC-Kit gesehen. Ich bin gerade an diesem Punkt verloren.


Sobald ich ein PICkit habe, kann ich mit dem PICkit meinen PC physisch an den Mikrocontroller anschließen?
Adam

Ja, es gibt einen Anschluss am PICKit, ICD usw., den Sie für die In-Circuit-Programmierung und das Debuggen an Ihre Platine anschließen.
Spehro Pefhany

Antworten:


4

Es gibt verschiedene Möglichkeiten, Ihren Code auf einen Mikrocontroller zu flashen.

Im Internet finden Sie eine Menge selbst erstellter Programmierer, die jedoch normalerweise auch selbst erstellte Software haben und nicht (gut) in die MPLAB-IDE integriert sind.

Die billigste Lösung von Microchip ist ein PicKit für ~ 40 €, das nur über USB an den PC angeschlossen wird. Obwohl das PicKit einige Debugging-Optionen bietet, gibt es auch den leistungsstärkeren 'In Circuit Debugger'-ICD für ~ 180 €, der mehr Debugging-Funktionen bietet, aber natürlich auch die Chips flashen kann.

Ich hatte immer das Gefühl, dass das PicKit für mich ausreicht.

Es gibt Versionen von Drittanbietern, da Microchip Firmware und Schaltpläne für das PicKit veröffentlicht. Wenn Sie diese jedoch kaufen, stellen Sie sicher, dass Sie wirklich das bekommen, was Sie denken, was Sie bekommen. Ich habe einmal ein Angebot für PicKit 3 gesehen, war mir aber nicht sicher, ob es kein PicKit 2 ist.


Nur als Kommentar: Es gibt Microchip-MCUs, die sich selbst flashen können. Zum Beispiel haben wir die PIC18F2450 / 2550/4450/4550-Familie mit eingebettetem USB verwendet und einen Bootloader darauf gelegt. Wenn ein Jumper geschlossen ist, wechselt die MCU beim Start in den Bootloader-Modus, und Sie können Ihre MCU mit Ihrem Code flashen. Das Zeug ist alles von Microchip erhältlich.

Um dies zu verwenden, müssen Sie einige Änderungen an Ihrem Code vornehmen. Und natürlich benötigen Sie einen normalen Programmierer, um den Bootloader auf der MCU zunächst zu flashen. Daher ist diese Funktion nicht sinnvoll, wenn Sie einen Programmierer haben. Aber es ist schön, wenn Sie Firmware-Updates für Ihre Kunden wünschen.


12

Da Sie die MPLAB-IDE mit dem XC8 C-Compiler verwenden, können Sie die Kompatibilität über das Menü Konfigurieren-> Gerät auswählen überprüfen (grüne Anzeige bedeutet vollständig unterstützt, Gelb ist teilweise und Rot wird nicht unterstützt).

Derzeit sind Pickit 3, ICD3 oder RealICE die beste Wahl (in der Reihenfolge des steigenden Preises).

Hier sind die kompatiblen Programmierer, Debugger:

Sie möchten wirklich sowohl Debugging-Unterstützung als auch Programmierunterstützung.

Geben Sie hier die Bildbeschreibung ein

Sobald die Gerätetreiber installiert sind, können Sie sie auswählen und eine Verbindung herstellen (ein bestimmtes Gerät kann zu einem bestimmten Zeitpunkt nur als Debugger oder Programmierer installiert werden):

Geben Sie hier die Bildbeschreibung ein

Wenn Ihr Programm kompiliert ist (entweder in Debug- oder Release-Form), können Sie den Mikrocontroller mit den folgenden Schaltflächen programmieren:

Geben Sie hier die Bildbeschreibung ein

Das PICkit oder eine andere Debug- / Programmiereinheit verfügt physisch über einen Anschluss, den Sie an Ihr System anschließen. Es gibt 6 Pins, von denen 5 einschließlich Strom und Masse verwendet werden.

Geben Sie hier die Bildbeschreibung ein


4

Zum Zeitpunkt des Schreibens gibt es drei Hauptmethoden, um eine Binärdatei auf einen Mikrocontroller zu brennen. Abhängig von einem bestimmten Mikro sind möglicherweise 3 davon verfügbar. Die älteste Methode ist der gerätespezifische Programmierer / Debugger. Aktuelle für Microchip-Teile sind Pickit3 / ICD3, sie sind mit allen aktuellen PIC-Mikros und einigen älteren kompatibel. Sie können sie nicht zum Programmieren von Teilen anderer Hersteller verwenden.

Die zweite Methode wird als Bootloader bezeichnet. Es ist ein kleines Programm, das in das Mikro eingebrannt wurde, bevor Sie das Teil in Besitz genommen haben. Der Bootloader ermöglicht die Programmierung über die Standardschnittstelle (n) des Mikros - UART, SPI, Ethernet usw. ARM-Chips werden häufig mit einem vorinstallierten Bootloader sowie AVR geliefert. Sie benötigen keine proprietäre Programmierausrüstung, wenn ein Bootloader vorhanden ist, aber Sie können das Debuggen in einem Schritt nicht einfach durchführen.

Der dritte heißt JTAG. Es ist eine semi-generische Schnittstelle, mit der Sie viele verschiedene Teile programmieren und auch debuggen können. Sie benötigen ein Gerät namens JTAG-Dongle. Einige PIC-Teile haben JTAG. ARM-Chips haben normalerweise JTAG und viele haben keine andere Debug-Schnittstelle.


3

Allgemeines Rezept:

  1. Geben Sie Ihren Code in einem Texteditor in der Sprache Ihrer Wahl ein
  2. Übersetzen Sie diese Sprache mit einem Compiler in Maschinencode. Maschinencode ist eine Liste von Hexadezimalzahlen: Einige stellen eine Anweisung dar, der Rest sind Argumente / Parameter für diese Anweisungen. Wird allgemein als "HEX-Datei" bezeichnet. Jedes Programm besteht aus dieser Abfolge elementarer Anweisungen und ihrer Parameter.
  3. Übertragen Sie diesen Maschinencode in den Programmspeicher Ihres Geräts. Dies erfolgt mit einem Programmierer. Der Programmierer wird mit einem Treiber geliefert, bei dem es sich um eine Software handelt, die den Programmierer steuert: Geben Sie ihm eine HEX-Datei, den Rest erledigt er. Der Programmierer liest Ihre HEX-Datei und wackelt mit den Programmierzeilen des Geräts (ähnlich wie Morsecode) auf codierte Weise, um den Programmspeicher tatsächlich zu schreiben. Wenn das Programm geladen wird, wird das Gerät neu gestartet und das Gerät beginnt automatisch mit der Ausführung von Code ganz am Anfang des Programmspeichers. Das ist dein Code. Dies ist grob gesagt, aber es ist ziemlich genau das, was Sie jetzt wissen müssen.

Du bist fast da . Sie haben die integrierte Entwicklungsumgebung, die 1 und 2 auf sehr benutzerfreundliche Weise ausführt. Es hat sogar Schnittstellen zu Programmierern, so dass Sie sich keine Gedanken darüber machen müssen, was eine HEX-Datei ist (klicken Sie auf "Wiedergabe" und Sie sind fertig).

Sie benötigen jedoch immer noch den physischen Programmierer, um Ihr Gerät mit dem PC zu verbinden - es gibt eine Nummer für PICs. Pickit ist einer von ihnen. Wenn Sie sich ernsthaft mit Embedded-Programmierung beschäftigen möchten, sollten Sie wahrscheinlich in einen In Circuit Debugger (ICD) investieren. Es ist ein Programmierer und auch etwas, mit dem Sie Variablen und Register im Mikro einsehen oder stöbern und sogar ein Programm nach Belieben durchlaufen und stoppen können.


3

Ein Mikrocontroller-Programmiergerät ist das, was Sie brauchen. Dies ist eine Hardware, die mit Ihrem PC und dem Mikrocontroller verbunden wird, um die erforderlichen Funktionen zum Laden des Programms auf den Chip auszuführen. In Circuit Debugger ist ein Gerät, das mehr Funktionen als ein Programmierer bietet, wie das Debuggen Ihres Codes, während er auf dem Chip ausgeführt wird. Sie können entweder den ICD oder das PIC-Kit verwenden , um den uC zu programmieren. Wenn Sie möchten, können Sie auch eine sehr einfache Schaltung wie den JDM- Programmierer verwenden.

Beachten Sie, dass MPLAB IDE PIC Kit und ICD unterstützt. Wenn Sie jedoch einen JDM-Programmierer verwenden, müssen Sie eine andere Software wie PICPgm verwenden , um Ihren kompilierten Chip zu laden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.