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 frage ich mich wie ich eigentlich den Quellcode auf solch einen > Controller bekomme. Der Quellcode wird nicht übertragen da der Controller den gar nicht versteht. Quellcode wird compiliert oder assembliert und dann dieses Hex-File übertragen. https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Erzeugen_von_Maschinencode
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 Programmer Markus 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.
:
Bearbeitet durch User
@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?
Du kannst das ganze auf dem Steckbrett aufbauen. Hier ist das mal dargestellt: http://www.learningaboutelectronics.com/Articles/ATtiny85-pushbutton-circuit.php Dann musst du noch die Pins für die Programierung mit dem ISP verbinden. Die Belegung des Programersteckers ist in der Anleitung Seite 3 ganz rechts gegeben: http://www.diamex.de/dxshop/mediafiles//Sonstiges/All-AVR-Anleitung.pdf Du musst also z.B. den MISO (Pin 6 vom ATTiny) mit dem MISO (Pin 1, oben links) des Programieradapters verbinden. Am einfachsten geht das mit solchen Kabeln: http://www.ebay.de/itm/40Pin-Jumper-Kabel-Pinkabel-mannlich-nach-weiblich-fur-Arduino-Raspberry-Pi-/181921419483?hash=item2a5b5c90db:g:0DAAAOSwWnFV~Vag Du kannst aber auch nochmal eine 2-reihige, 6-polige Stiftleiste auf dem Steckbrett anordnen und dann ein entsprechendes Flachbandkabel nehmen. Weiterhin musst du eine Spannungsversorgung herstellen. Dazu kannst du am Programmer den Jumper JP1/3 stecken oder musst ein externes Netzteil nehmen.
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.
Okay dann werde ich den mit einbauen. Dann werde ich das demnächst mal versuchen aufzubauen. Danke an die Anderen für die Hilfe.
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 ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.