Ich habe gelernt, einen Controller zu codieren, habe den Code aber nie wirklich auf das physische Gerät übertragen. Ich versuche herauszufinden, was ich bestellen muss, um mit der Entwicklung eines einfachen eingebetteten Systems zu beginnen.
Wenn ich zum Beispiel einen PIC18F1330 habe, habe ich MPLAB IDE und XC8-Compiler. Großartig, also habe ich den Code kompiliert und bin bereit, dies auf dem Controller zu platzieren. Was muss ich haben, um meinen kompilierten Code auf meinem PC auf die Steuerung zu übertragen?
Ich habe Dinge wie einen In-Circuit-Debugger und ein PIC-Kit gesehen. Ich bin an dieser Stelle einfach verloren.
Es gibt mehrere Möglichkeiten, Ihren Code auf einen Mikrocontroller zu flashen.
Im Web findet man ziemlich viele selbstgebaute Programmierer, aber die haben meistens auch selbstgemachte Software und sind nicht (gut) in die MPLAB IDE integriert.
Die günstigste Lösung von Microchip ist ein PicKit für ~40€ welches einfach per USB an den PC angeschlossen wird. Obwohl das PicKit einige Debugging-Optionen hat, gibt es auch den leistungsfähigeren 'In Circuit Debugger' ICD für ~180€, der mehr Debugging-Funktionen hat, aber natürlich auch die Chips flashen kann.
Ich hatte immer das Gefühl, dass das PicKit für mich ausreichend ist.
Es gibt Versionen von Drittanbietern, da Microchip Firmware und Schaltpläne für das PicKit veröffentlicht, aber wenn Sie sie kaufen, stellen Sie sicher, dass Sie wirklich das bekommen, was Sie denken, was Sie bekommen. Ich habe mal ein Angebot für PicKit 3 gesehen, war mir aber nicht sicher, ob es sich nicht um ein PicKit 2 handelt.
Nur als Kommentar: Es gibt Mikrochip-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 installiert. 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 anfänglich auf der MCU zu flashen. Diese Funktion macht also keinen Sinn, wenn Sie einen Programmierer haben. Aber es ist schön, wenn Sie Firmware-Updates für Ihre Kunden wünschen.
Da Sie die MPLAB-IDE mit dem XC8-C-Compiler verwenden, können Sie die Kompatibilität im Menü Configure->Select Device überprüfen (grüne Anzeige bedeutet vollständig unterstützt, gelb teilweise und rot nicht unterstützt).
Im Moment wäre die beste Wahl Pickit 3, ICD3 oder RealICE (in der Reihenfolge steigender Preise).
Hier sind die kompatiblen Programmierer, Debugger:
Sie möchten wirklich Debugging-Unterstützung sowie Programmierunterstützung haben.
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):
Wenn Ihr Programm dann kompiliert ist (entweder in Debug- oder Release-Form), können Sie den Mikrocontroller mit den unten gezeigten Schaltflächen programmieren:
Physisch hat das PICkit oder eine andere Debug-/Programmiereinheit einen Anschluss, den Sie mit Ihrem System verbinden. Es gibt 6 Pins, von denen 5 verwendet werden, einschließlich Strom und Masse.
Zum Zeitpunkt des Schreibens gibt es drei Hauptwege, um eine Binärdatei auf einen Mikrocontroller zu brennen. Abhängig von einem bestimmten Mikro können 3 davon verfügbar sein. 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 damit keine Teile anderer Hersteller programmieren.
Die zweite Methode wird als Bootloader bezeichnet. Es ist ein kleines Programm, das in das Mikro eingebrannt wird, bevor Sie das Teil in Besitz nehmen. Der Bootloader ermöglicht die Programmierung über die Standardschnittstelle(n) von Micro – 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 einzelnen Schritten nicht einfach durchführen.
Der dritte heißt JTAG. Es ist eine halbgenerische 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.
Ein Mikrocontroller-Programmiergerät ist das, was Sie brauchen. Das ist eine Hardware, die mit Ihrem PC und dem Mikrocontroller verbunden ist, um die notwendigen Funktionen zum Laden des Programms auf den Chip auszuführen. In-Circuit-Debugger ist ein Gerät, das mehr Funktionen als ein Programmierer hat, wie z. B. das Debuggen Ihres Codes, während er auf dem Chip läuft. Sie können den uC entweder mit dem ICD oder dem PIC-Kit programmieren. Oder, 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.
Allgemeines Rezept:
Sie haben es fast geschafft . Sie haben die integrierte Entwicklungsumgebung, die 1 und 2 auf sehr benutzerfreundliche Weise erledigt. Es hat sogar Schnittstellen zu Programmierern, so dass Sie sich keine Gedanken darüber machen müssen, was eine HEX-Datei ist (drücken Sie "Play" 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 Reihe von PICs. Pickit ist einer von ihnen. Wenn Sie ernsthaft mit eingebetteter Programmierung beginnen 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 anzeigen oder anstupsen und sogar ein Programm nach Belieben durchlaufen und stoppen können.
Adam
Spehro Pefhany