Guten Morgen,
ich habe mich etwas in das Programmieren der AVR Atmel Controller
eingelesen.
Nun frage ich mich wie ich eigentlich den Quellcode auf solch einen
Controller bekomme.
Mir ist bewusst das ein Programmer mit einer ISP Schnittstelle benötigt
wird. Dieser Programmer wird doch zum Beispiel über USB mit dem Computer
verbunden. Wie werden nun die Daten an einen Atmel Tiny 13 übertragen?
Ich habe noch gelesen das man ein Entwicklungsboard bzw. ein
Adapterboard benötigt. Nun habe ich sehr viele gefunden, die auch sehr
viel Geld kosten und u.a. ein selbstgebautes.
Kann ich mir einfach sowas herstellen und den Programmer an der ISP
Schnittstelle anschließen und den Atmel Tiny 13 in den Sockel setzen um
die Daten zu übertragen?
Edit: Sorry die Bilder sind zweimal hochgeladen worden.
Um ein Programm auf den Controller zu bekommen könntest du zum Beispiel
einen DIAMEX ALL AVR Isp Programmer nehmen. Dieser kostet bei Reichelt
zum Beispiel um die 30€. Zusätzlich benötigst du dann noch eine
Programmierumgebung und die passende Toolchain.
Anfänger verwenden häufig in diesem Umfeld Bascom AVR was dir den
Programmer auch direkt ansteuert.
Sebastian N. schrieb:> Nun habe ich sehr viele gefunden, die auch sehr viel Geld kosten und> u.a. ein selbstgebautes. Kann ich mir einfach sowas herstellen und den> Programmer an der ISP Schnittstelle anschließen und den Atmel Tiny 13 in> den Sockel setzen um die Daten zu übertragen?
Da der µC sowieso auf einer Platine oder einem Steckbrett sein muss,
kannst du auch einfach da drauf direkt einen ISP-Stecker vorsehen, steht
ja für “In-System-Programming“
Markus S. schrieb:> DIAMEX ALL AVR Isp ProgrammerMarkus S. schrieb:> Um ein Programm auf den Controller zu bekommen könntest du zum Beispiel> einen DIAMEX ALL AVR Isp Programmer nehmen. Dieser kostet bei Reichelt> zum Beispiel um die 30€. Zusätzlich benötigst du dann noch eine> Programmierumgebung und die passende Toolchain.
Genau an den Programmer dachte ich auch, aber ich brauche ja noch etwas
um den Microkontroller mit Daten zu befüllen. Gibt es da eine Anleitung
wie ich mit solch ein Adapter erstelle?
Aeh... das Zeug auf der Platine soll nicht der Controller sein ? Da
fehlt auf alle Faelle Einiges. Kondensatoren, Resetcircuit, und der ISP
Stecker. Ich wuerd auch noch einen Debugpin drauf haben wollen.
Und die Tinies sind sowies nicht zum Anfangen gedacht. Sie sind weder
vernuenftig gross in den Resourcen, noch von der Peripherie hinreichend.
Sie sind fuer hohe Stueckzahlen wo's auf jeden Cent ankommt. Zum
Entwickeln von einfachen Dingen sollte man sich ein UART goennen. Damit
ist das Debuggen sehr viel einfacher.
> Gibt es da eine Anleitung wie ich mit solch ein Adapter erstelle?
Kauf ihn.
@Sebastian:
Gibt es ein konkretes Projekt was du umsetzten möchtest oder ist es
einfach der Spieltrieb und Wunsch mit Mikrocontrollern umgehen zu
können? Bei dem zweiteren würde ich die Aussage von Oh Doch
unterschreiben und dir zu was größerem Raten.
Sollte es auf die größe ankommen und konkrete Ideen dahinter stehen kann
man auch mit einem Attiny beginnen.
Zu meiner Anfangszeit habe ich ebenfalls mit einem Attiny13 gestartet.
Damals habe ich damit Reaktivlichter fürs Geocaching entwickelt. Über
diese bin ich zu den größeren Controllern ATMega8 16 und 32 gekommen.
Mittlerweile verwende ich fast ausschließlich ARM Cortex Controller von
ST.
@Markus
Ja genau. Ich habe einen Bausatz mit einem Reaktivlicht. Der Bausatz hat
aber keinen ISP Anschluss, deshalb benötige ich doch einen Adapter um
den mit Controller mit den Daten zu füllen. Den Programmer habe ich.
Dann mal her mit dem Schaltplan des Bausatzes. Mit diesem können dir
einige hier helfen. Sonst kann man nur in die Glaskugel schauen aber
keine zielgerichteten Ratschläge geben. Prinzipiell kann man sagen muss
dein Bausatz (Schaltung) einfach um einen kleinen Pin Header erweitert
werden, an dem du das Programmiergerät steckst.
Mit welcher Entwicklungsumgebung wirst du dein Reaktivlicht
programmieren?
Sebastian N. schrieb:> ich habe mich etwas in das Programmieren der AVR Atmel Controller> eingelesen.
Wirklich? Wo?
> Nun frage ich mich wie ich eigentlich den Quellcode auf solch einen> Controller bekomme.
Gar nicht. Der Controller kriegt den compilierten Maschinencode. Der
fällt in der Regel in der Form eines HEX Files an.
> Mir ist bewusst das ein Programmer mit einer ISP Schnittstelle benötigt> wird. Dieser Programmer wird doch zum Beispiel über USB mit dem Computer> verbunden. Wie werden nun die Daten an einen Atmel Tiny 13 übertragen?
Na eben über die ISP-Schnittstelle. Bei den AVR besteht die ISP-
Schnittstelle aus 4 Logiksignalen: Reset, MISO, MOSI und SCK. Außerdem
braucht man noch eine Leitung für GND. Und wenn der Programmer die
Zielschaltung mit Betriebsspannung versorgen können soll oder seine
Logikpegel an die Betriebsspannung anpassen können soll, kommt noch eine
6. Leitung für die Betriebsspannung dazu. Es sind also 6 Verbindungen
zwischen dem µC und dem Programmer erforderlich. Es gibt einen
standardisierten Stecker dafür (ISP-Stecker 6-polig).
Siehe AVR In System Programmer: ISP> Ich habe noch gelesen das man ein Entwicklungsboard bzw. ein> Adapterboard benötigt.
Nein. Braucht man nicht. Man kann auch den Programmer an eine IC-Fassung
anlöten und den µC darin programmieren. Oder man verwendet ein
Steckbrett. Oder man setzt den 6-poligen Stecker gleich auf die Platine
auf der später die ganze Schaltung sitzen soll.
@Karl
@Axel
Danke euch - sowas habe ich gesucht. Jetzt komme ich so langsam
dahinter.
Also müsste das doch mit meinen oben gezeigten Bild funktionieren oder
nicht oder hat jemand sowas mal aufgebaut als Bild da?
Ich habe noch etwas recherchiert und bin dann zu einem Ergebnis
gekommen.
Mit einer Steckplatine würde ich jetzt diese Schaltung aufbauen und
meinen Programmer an der SPI Wanne anschließen und die Daten mittels
einer Software übertragen.
Laut der Beschreibung des Programmers soll dieser eine Spannung liefern,
wenn beide Schalter auf off geschaltet sind.
http://www.produktinfo.conrad.com/datenblaetter/825000-849999/842379-an-01-de-DIAMEX_USB_ISP_STICK_AVR_PROGRAMMIERADAP.pdf
Würde das so klappen?
Ich habe kein spezifisches Programm - habe das in Word erstellt bzw. die
Linien gezogen.
Edit: Habe hier im Forum noch ein passenden Thread über Google (war
vorher nicht der Fall, erst nach intensiver Suche) gefunden. Dort geht
es um den Abblockkondensator und einen Pullup (Widerstand am Reset)
Darauf wird aber widersprochen, das heißt, die werden nicht benötigt.
Vorsichtshalber doch einbauen.
Sebastian N. schrieb:> Vorsichtshalber doch einbauen.
Abblockkondensator (100nF-10µF) auf jeden Fall einbauen, der Pullup
Widerstand am Reset ist optional (und auf meinem Adapterboard auch nicht
verbaut). Praktisch ist ein Schalter für die Vcc des Kontrollers, damit
du den Programmer nicht immer abstecken musst, wenn du das IC ziehst und
steckst.
Obacht - nicht jeder Programmer liefert die Speisung für den MC mit,
beim AVRISP MkII z.B. dient der Vcc Anschluss nur zur Überwachung der
Vcc und nicht zur Speisung. Mein Adapterboard (ich benutze den AVRISP
MkII) wird aus USB gespeist. Zusätzlich enthält es auch noch einen 4MHz
Oszillator, wenn ich Batzi mal die Clockquelle verfused habe.
Die kleinen ATtinys programmiere ich meistens auf einem Steckbrett.
Direkt 1:1 mit dem ISP-Programmieradapter verbunden.
Da mein liebster Programmieradapter keine Versorgunsgspannugn bereit
stellt, stecke ich noch einen Batteriekasten mit an
(https://www.reichelt.de/?ARTICLE=44631&PROVID=2788&wt_mc=amc141526782519998&gclid=CL_mkZmPvswCFcYcGwodLjgP5A).
Ein 100nF Kondensator an VCC und GND gehört dazu, wenn man es sauber
macht. In der Praxis funktionierte es bei mir aber auch stets ohne
Kondensator.
Sebastian N. schrieb:> Ich habe noch etwas recherchiert und bin dann zu einem Ergebnis> gekommen.> Mit einer Steckplatine würde ich jetzt diese Schaltung aufbauen und> meinen Programmer an der SPI Wanne anschließen und die Daten mittels> einer Software übertragen.> Laut der Beschreibung des Programmers soll dieser eine Spannung liefern,> wenn beide Schalter auf off geschaltet sind.>> http://www.produktinfo.conrad.com/datenblaetter/825000-849999/842379-an-01-de-DIAMEX_USB_ISP_STICK_AVR_PROGRAMMIERADAP.pdf>> Würde das so klappen?> Ich habe kein spezifisches Programm - habe das in Word erstellt bzw. die> Linien gezogen.
Die Verbindungen zum Stecker sehen richtig aus. Wenn du da hast,
solltest du auf jeden Fall den Kondensator und Widerstand einbauen. Wie
das auf dem Steckbrett aussieht sieht man in dem 1. Link, den ich oben
gepostet habe.
Bezüglich der Schalterstellung würde ich das anders interpretieren:
Wenn der ATTiny mit Spannung versorgt werden soll, muss Schalter 1 auf
on stehen, mit Schalter 2 wählt man die Spannung off = 3,3 V; on = 5 V
Sebastian N. schrieb:> Mir ist bewusst das ein Programmer mit einer ISP Schnittstelle benötigt> wird.
Im Prinzip schon. Das muss aber nicht dein Problem sein. Oft reicht eine
serielle Schnittstelle/USB. Die Arduinos z.B. haben alle einen
Bootloader drauf, der sich um das Programmieren vom Flash-Speicher
kümmert.
Und falls die Freunde aus China doch mal vergessen haben, den Bootloader
drauf zu spielen, kann man sich einen anderen Arduino als ISP-Programmer
programmieren.
Wolfgang schrieb:> Sebastian N. schrieb:>> Mir ist bewusst das ein Programmer mit einer ISP Schnittstelle benötigt>> wird.>> Im Prinzip schon. Das muss aber nicht dein Problem sein. Oft reicht eine> serielle Schnittstelle/USB. Die Arduinos z.B. haben alle einen> Bootloader drauf, der sich um das Programmieren vom Flash-Speicher> kümmert.
Thema verfehlt. Es gibt keinen Tiny13 mit Arduino-Bootloader.
Kleiner Tip: erst mal die Frage lesen. Dann antworten.
Axel S. schrieb:> Thema verfehlt. Es gibt keinen Tiny13 mit Arduino-Bootloader.> Kleiner Tip: erst mal die Frage lesen. Dann antworten.
Beim Tiny13 wird das mit dem Bootloader schon schwierig. Ich denke aber
der Wink nach Arduino war nur als Beispiel gedacht, ansonsten wüsste ich
nicht wofür das z.B. steht ;)