Wie sollte man von einem Arduino als Programmierer zu einem externen Programmierer wechseln?

12

Teil zwei einer dreiteiligen Serie über den Übergang von Arduino zu einem einfachen AVR-Mikrocontroller und minimalen unterstützenden Komponenten ( Teil eins , Teil drei )

Ich habe eine Menge Leute gesehen, die das im Internet gefragt haben.

Ich weiß bereits, wie man ein Barebones ATmega328 mit einem Arduino als Programmierer programmiert und verwendet . Ich möchte jetzt einen externen Programmierer mit der Arduino IDE verwenden.

Wie soll ich bei diesem Übergang vorgehen? Was soll ich lernen (Es wäre schön, wenn ein Mini-Tutorial für einige der Teile als Teil der Antwort zur Verfügung gestellt würde.)

Manishearth
quelle
2
+1, ein ausgezeichneter Kandidat für eine Referenzfrage, ich freue mich auf einige gut strukturierte und detaillierte Antworten, die für Anfänger einfach zu befolgen sind und keine "Etch-a-Board" -Antworten.
Anindo Ghosh
Ich bin verwirrt. Sie möchten, dass die Schritte von einer Methodik zur nächsten wechseln. Was erwarten Sie als Antwort? Tutorials für die direkte Verwendung eines externen Programmierers sind die eigentlichen Tutorials.
Asheeshr
@AshRj: Übergang und Neustart sind zwei verschiedene Dinge. Wenn man weiß, wie man ein Arduino benutzt, muss man wissen, worin die Unterschiede in den verschiedenen Codes bestehen (und wie man einen Programmierer benutzt).
Manishearth
@Manishearth Was meinst du mit "ohne Bootloader"?
Polar
@Polar: Grundsätzlich möchte ich nicht, dass der Arduino-Bootloader da ist, um mir zu helfen (was passiert, wenn Sie einen Arduino als Programmierer verwenden), ich möchte nur einen nackten ATmega, auf dem der gesamte Code mein Code ist.
Manishearth

Antworten:

6

Hinweis: Dieses Mini-Tutorial basiert auf den offiziellen Informationen hier auf der Arduino-Website. Es beinhaltet auch die Verwendung der offiziellen Arduino IDE.

Hinweis 2: Die zu Produkten bereitgestellten Links können entweder Farnell- Links (da sie Datenblätter enthalten) oder die tatsächlichen Produktseiten auf der Website des Herstellers sein.


Schritt 1: Besorgen Sie sich einen externen Programmierer

Das erste, was Sie beachten müssen, ist, dass Sie einen externen Programmierer benötigen, um den Bootloader zu umgehen und die 1K- oder 2K-Speicherkapazität zurückzugewinnen, die er belegt (12,5% der Speicherkapazität) gesamten Speichers) zurückzugewinnen. Sie könnten einen verwenden AVR-ISP , ein STK-500 , oder einen Parallelport - Programmierer - die offizielle Arduino Website Anleitungen dafür hier . Beachten Sie, dass Sie nicht über den Parallelprogrammierer mit der Karte kommunizieren können - es wird empfohlen, dafür ein serielles Kabel zu verwenden. Der Hauptvorteil eines Parallelprogrammiergeräts besteht darin, dass es viel billiger ist als die anderen, wenn Sie etwas löten möchten. Sie benötigen nur ein paar (3) Widerstände und ein paar Anschlüsse, während Sie von einem ISP gesichert werden können zu £ 30 / $ 50 (Umrechnungskurs ist ungefähr).


Schritt 2: Bearbeiten Sie die Arduino-Voreinstellungsdatei

Als Nächstes müssen Sie die Arduino-IDE konfigurieren, damit Sie den Bootloader umgehen können. Stellen Sie sicher, dass Sie die Arduino IDE NICHT geöffnet haben! Die Einstellungsdatei preferences.txtbefindet sich abhängig von Ihrem Betriebssystem an den folgenden Speicherorten:

  • C:\Documents and Settings\<Username>\Application Data\Arduino\preferences.txt (Windows)
  • /Users/<Username>/Library/Arduino/preferences.txt (Mac)
  • ~/.arduino/preferences.txt (Linux)

Um in Windows zur Einstellungsdatei zu gelangen, gehen Sie zum Startmenü und dann zu %appdata% (Hinweis: Ich verwende Windows nicht regelmäßig, zögern Sie nicht, mich zu korrigieren). Navigieren Sie dann zu Arduino und dann zupreferences.txt

Verwenden Sie auf einem Mac entweder Terminal und gehen Sie wie folgt vor:

cd ~/Library/Arduino
open .

Oder verwenden Sie im Finder Springen (Cmd-Shift-G) und geben Sie ein ~/Library/Arduino . Beide führen Sie zu einem Finder-Fenster mit preferences.txtin.

Auf Unix-Systemen beginnen Ordner mit einem '.' (wie .cache, .git) sind standardmäßig ausgeblendet, daher müssen Sie unter Linux das Terminal verwenden und Folgendes eingeben:

cd ~/.arduino
nautilus .

Hinweis: Sie können Nautilus bei Bedarf durch ersetzen gnome-open . Ich weiß, dass beide auf den gängigen Linux-Varianten funktionieren, aber Sie haben möglicherweise Probleme mit einigen der eher "exotischen" Varianten.

Wenn Sie die preferences.txtDatei gefunden haben, öffnen Sie sie und ändern Sie den Namen upload.usingvon bootloaderin den Namen eines der Programmierer im ./hardware/programmers.txtUnterverzeichnis. Wenn Sie den Bootloader nur von einer Karte entfernen möchten, ./hardware/boards.txtkönnen Sie den <board>.upload.usingParameter in ändern , und alle anderen Karten verwenden den Bootloader weiterhin. Speichern Sie dann einfach die relevante Datei und schließen Sie sie (mein Arduino ist gerade abgestürzt und ich habe fast die Antwort verloren, möglicherweise, weil ich das vergessen habe).


Schritt 3: Laden Sie die Skizze hoch

Sobald Sie die relevante Datei bearbeitet haben, öffnen Sie die Arduino IDE erneut und laden Sie die Skizze wie gewohnt hoch. Wenn Sie gerade bearbeitet haben ./hardware/boards.txt, verfügt nur diese bestimmte Karte nicht über den Bootloader. Wenn Sie jedoch bearbeitet preferences.txthaben, verfügen nicht alle Karten über den Bootloader.


Schritt 4: Ersetzen Sie den Bootloader

Wenn Sie den Bootloader (aus welchem ​​Grund auch immer) wieder auf Ihren Boards haben möchten, entfernen Sie zuerst entweder den <board>.upload.usingParameter oder setzen Sie ihn upload.usingzurück auf bootloader. Dann müssen Sie den Bootloader wieder auf die betroffenen Boards brennen - diese Antwort erklärt einigermaßen gut eine Methode, dies zu tun, und es gibt eine einfachere Methode, den Arduino-Bootloader nur mit nur einem ISP hochzuladen (den Sie von früher haben sollten). auf der offiziellen Seite hier .

Polar
quelle
Ich glaube, ich war nicht klar, ich habe die Frage bearbeitet, um dies deutlich zu machen: Ich wollte die IDE mehr oder weniger verwerfen (was bedeutet, dass Sie eine andere Programmiersprache lernen müssen. Da Sie jedoch bereits eine Antwort gepostet haben, habe ich Ich kann das nur als separate Frage stellen.
Manishearth
@Manishearth Ah, ich bearbeite es, um das widerzuspiegeln, wenn du willst.
Polar
Ich werde einen anderen fragen, dies wird zu breit, wenn ich das
reinstecke
@ Manishearth Ok :)
Polar