Raspberry Pi als Programmer für µController einrichten

Irgendwann bin ich an dem Punkt angelangt, da reichte die Funktionalität von einfachen Schaltungen nicht mehr aus, ein vollständiger kleiner Ein-Platinen-Rechner wäre dafür aber schon überdimensioniert. Für solche Aufgaben bietet sich ein Mikrocontroller an. Und um das ganze mal auszuprobieren, will man sich ja nicht direkt einen professionellen Programmer und ein Entwicklungsboard zulegen.

Praktischerweise bietet der Raspberry Pi entsprechende Möglichkeiten, über die UART-Schnittstelle seiner GPIO-Ports das gleiche zu erreichen. Dazu ist allerdings ein bisschen Einrichtung notwendig. Im Netz gibt es dazu zahlreiche Tutorials, die ich nicht wiederholen will, sondern hier einmal zusammenfassen, was für mich am besten funktoniert hat.

Als erstes sollte man sich die nötigen Komponenten runterladen, avrdude ist nicht über Repositories zu bekommen, daher mit wget direkt runterladen und mit dpkg installieren. Die weiteren Komponenten (Arduino IDE, git-core, gcc-avr) können mit apt-get installiert werden. lxde ist optional, wenn man noch keine grafische Oberfläche installiert hat und xrdp ist ganz praktisch, wenn man nicht am Raspberry selbst programmieren, sondern sich per Remote Desktop mit ihm verbinden will.

Wenn am Raspberry Pi selbst keine Eingabegeräte oder Monitor angeschlossen sind, wie bei mir, bietet es sich an, alles von einem Remote-PC aus zu erledigen. Dazu installieren wir uns noch einen Samba-Server für Netzwerkfreigaben (Anleitung hier) und für den Konsolenzugriff PuTTY für Windows. Als Netzwerkfreigabe richten wir uns den Home-Ordner unseres Raspberry-Users ein. Damit wäre der Raspberry dann schonmal für den Remotezugriff und mit der Entwicklungsumgebung eingerichtet.

Jetzt werden noch andere Anpassungen nötig, bevor wir starten können. Standardmäßig wird die UART-Schnittstelle am Raspberry Pi unter Raspbian als serielle Schnittstelle verwendet. Um sie als UART-Schnittstelle benutzen zu können, gehen wir wie folgt vor:

Mit

öffnen wir die Datei /boot/cmdline.txt im Editor und entfernen den Teil „console=ttyAMA0,115200 kgdboc=ttyAMA0,115200″, so dass die entsprechende Zeile dann so aussieht:

Ausserdem muss in der Datei /etc/inittab eine Zeile auskommentiert werden, dazu öffnen wir die Datei wieder mit nano:

und kommentieren diese Zeile aus:

Jetzt wir der Raspberry einmal neugestartet und die UART-Schnittstelle steht zur Verfügung.

Jetzt brauchen wir noch die notwendigen Bibliotheken für die AVR-Controller und die Definition des Raspberry als Programmer in der Arduino IDE, dann kann es losgehen.

Arduino IDE hat bei der Installation im Home-Ordner das Verzeichnis „sketchbook“ angelegt, hier werden alle Hardware-Definitionen, Libraries und Projektdateien abgelegt. Für die ATTiny-Reihe der AVR-Mikrocontroller gibt es hier die Core-Definitionen. Je nach Version der Arduino IDE sollte man das entsprechende Archiv runterladen. Der Inhalt wird dann in das Verzeichnis „hardware“ entpackt.

Im Verzeichnis „/sketchbook/hardware/tiny/“ legen wir nun (für den ATTiny84 als Beispiel) die Datei boards.txt an mit folgendem Inhalt:

Ausserdem noch die Datei „/sketchbook/hardware/tiny/variants/tiny8/pins_arduino.h“

und die Datei „/sketchbook/hardware/tiny/variants/tiny14/pins_arduino.h“

Damit sind jetzt die ATTinys bekannt. In der Datei „/usr/share/arduino/hardware/arduino/programmers.txt“ ergänzen wir folgende Zeilen und definieren so den Raspberry als Programmer:

Jetzt ist der Raspberry Pi endlich soweit eingerichtet, dass es an die Verkabelung und an den ersten Test-Sketch gehen kann. Mehr dazu im nächsten Artikel.

(Quellen: u.a. hier und hier)

Dieser Beitrag wurde unter Mikrokontroller, Raspberry Pi veröffentlicht. Setze ein Lesezeichen auf den Permalink.

2 Antworten auf Raspberry Pi als Programmer für µController einrichten

  1. Pingback: Programmieren von Attiny84 durch den Raspberry Pi | blog.necromundo.de

  2. Pingback: ATTiny84 mit Arduino UNO programmieren | blog.necromundo.de

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *