Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller Daten übertragen


von Sebastian N. (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Markus S. (acepilot)


Lesenswert?

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.

von Thomas F. (igel)


Lesenswert?

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

von Jan H. (jan_m_h)


Lesenswert?

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“

von Sebastian N. (Gast)


Lesenswert?

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?

von Pandur S. (jetztnicht)


Lesenswert?

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
von Markus S. (acepilot)


Lesenswert?

@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.

von Sebastian N. (Gast)


Lesenswert?

@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.

von Markus S. (acepilot)


Lesenswert?

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?

von Karl (Gast)


Lesenswert?

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.

von Axel S. (a-za-z0-9)


Lesenswert?

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.

von Sebastian N. (Gast)


Lesenswert?

@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?

von Sebastian N. (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von Sebastian N. (Gast)


Lesenswert?

Okay dann werde ich den mit einbauen. Dann werde ich das demnächst mal 
versuchen aufzubauen. Danke an die Anderen für die Hilfe.

von Stefan F. (Gast)


Lesenswert?

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.

von Karl (Gast)


Lesenswert?

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

von Wolfgang (Gast)


Lesenswert?

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.

von Axel S. (a-za-z0-9)


Lesenswert?

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.

von M. K. (sylaina)


Lesenswert?

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
Noch kein Account? Hier anmelden.