Forum: Mikrocontroller und Digitale Elektronik ATMega32 "füttern"


von Christian P. (deepbass)


Lesenswert?

Hallo Forumgemeinde,

für ein Studiumbezogenes Projekt möchte ich einen ATMega32 mit einem PC 
Verbinden, um ein C-Programm über den µP anzuwenden und entsprechende 
Peripherie anzusteuern.

Ich steige neu in das Gebiet ein und habe bisher nur Erfahrungen 
gesamelt mit dem Robotersystem RP6 und kenne den ATMega 32 deshalb ein 
wenig.

Folgende Fragen stellen sich mir:
1: Wenn ich einen "brandneuen" Prozessor kaufe ist dieser ja noch quasi 
unberühert. Er wird auch noch keinen Bootloader besitzen und ich werde 
auch nicht die UART Schnittstelle ansprechen können. Ist das Richtig ?
Wenn ja muss ich also mich also wie darum kümmern das ich das auf die 
Reihe kriege ?

2: Selber geschriebene C Programme werden durch einen Compiler 
(AVR-Studio)in eine .hex-Datei umgewandelt. Jetzt geht es mir um die 
Verbindung zwischen µP und PC. Bei RP6 verwende ich ein USB interface 
und einen Loader der die .hex Datei in den Speicher des µP "brennt".
Wie realisiere ich das mit meinem "nackigen" µP ?
Ich möchte alle drumherum liegende Peripherie selber bauen und nicht 
fertig kaufen.

3: Nach meinem bisherigen Verständnis benötige ich einen Pegelwandler, 
(bsp.MAX232) um den µP an eine serielle Schnittstelle anzuschließen. Am 
PC benötige ich einen Adapter, von USB2.0 auf Serial (RS232) (bsp 
DELOCK) von wo aus ich dann an den Pegelwandler gehe.

Ist das Grundsätzlich das richtige Vorgehen ? Ich möchte nur sichergehen 
das ich nicht hundert mal Bestellungen machen muss wegen einer Sache 
deswegen bitte ich um proffesionellen Rat.

Vielen Dank schon im Vorraus.

Mit freundlichen Grüßen

Christian

von Daniel (Gast)


Lesenswert?

Hallo,
Mach dir das Leben einfacher und nimm einen Programmieradapter z.B. 
sowas hier: 
http://student.embedded-projects.net/index.php?module=artikel&action=artikel&id=367 
Den kannst du direkt über USB ansprechen.

von tiny (Gast)


Lesenswert?

Oder USBasp, den gibts auch zum selber bauen.

von Flip B. (frickelfreak)


Lesenswert?

einache Programmieradapter aka usbasp gibt es für unter 3€ in der Bucht. 
Die werden per Isp angeschlossen und enthalten alles nötige um alle avrs 
zu brennen.

Flip

von Christian P. (deepbass)


Lesenswert?

Hallo,

was haltet ihr denn von 
"http://www.reichelt.de/USB-Konverter/DELOCK-61460/3/index.html?;ACTION=3;LA=446;ARTICLE=78847;GROUPID=5253;artnr=DELOCK+61460;SID=14USSRRX8AAAIAAAvwSNUa91c3b05a37b5b9392026d99bb5d0c9a 
" Artikel ?
Hilft mir sowas weiter ?

Wäre es nicht eher sinnvoll das ich mir ein Entwicklungsboard kaufe wo 
der ATMega drauf ist und ich ihn nicht mehr "alles" beibringen muss ? 
Wenn er frisch vom Hersteller kommt kennt er ja noch nichteinmal seine 
Schnittstellen oder ?

Viele Grüße

Christian

von Dominik S. (dasd)


Lesenswert?

Christian P. schrieb:
> was haltet ihr denn von
> "http://www.reichelt.de/USB-Konverter/DELOCK-61460/...
> " Artikel ?
> Hilft mir sowas weiter ?

Nein. Ließ doch bitte die Antworten :)

Du brauchst ein zum jeweiligen µC passendes Programmiergerät, um einen 
"nackten" µC zu beschreiben.

Selbes Prinzip wie du oben schon selbst gesagt hast:

Christian P. schrieb:
> Bei RP6 verwende ich ein USB interface
> und einen Loader der die .hex Datei in den Speicher des µP "brennt".

Edit:

Christian P. schrieb:
> Wäre es nicht eher sinnvoll das ich mir ein Entwicklungsboard kaufe wo
> der ATMega drauf ist und ich ihn nicht mehr "alles" beibringen muss ?
> Wenn er frisch vom Hersteller kommt kennt er ja noch nichteinmal seine
> Schnittstellen oder ?

Ok... du solltest GANZ dringend erst mal ein paar Tutorials lesen, bevor 
du mit irgendwas weiter machst.

http://www.mikrocontroller.net/articles/AVR
http://www.mikrocontroller.net/articles/AVR-Tutorial

von Peter Z. (hangloose)


Lesenswert?

Du brauchst nicht erst den UART auf RS232 Pegel wandeln und dann von 
RS232 auf USB wandeln.
Das geht auch direkt von dem UART des µC zu USB.
z.B. FT232 von FTDI oder CP2102 von Silabs.

Als Programmieradapter nimm den originalen AVRISPmkII
Erspart dir viel ärger.
http://www.reichelt.de/Programmer-Entwicklungstools/AT-AVR-ISP/3/index.html?;ACTION=3;LA=446;ARTICLE=45040;GROUPID=2969;artnr=AT+AVR+ISP;SID=12UJt6k38AAAIAADWQQmA8e782d7844d53fb464667eaac3e9baa2

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


Lesenswert?

Peter Z. schrieb:
> Als Programmieradapter nimm den originalen AVRISPmkII
> Erspart dir viel ärger.
> http://www.reichelt.de/Programmer-Entwicklungstool...

AVR Dragon soll wohl auch ganz cool sein, ich selber benutze aber auch 
den MkII. Ganz zum selberbasteln gibt es auch PonyProg, macht aber gerne 
mal Schwierigkeiten:
http://www.lancos.com/prog.html

von Christian P. (deepbass)


Lesenswert?

Also danke erstmal für eure Antworten,

zunächst habe ich die mir zugelinkten Tutorials überblickend gelesen. 
Leider finde ich da keine konkreten Antworten auf meine Fragen.

Mir geht es einfach um folgendes wozu ich einfach keine vernünftige 
zusammenhängende Erklärung finden kann im Internet:

1: Ich möchte einen ATMega 32 dazu bringen was zu machen.(RC5 Signale 
verarbeiten)

Jetzt meine Fragen:
1: Wie gehe ich an die Sache ran ? Ich würde gerne vom grunde auf sowas 
mal aufbauen von der Übertragung des PC`s über USB zum µP, sodass ich 
selber geschriebene Programme draufbrennen kann, bis hin zum aufbauen 
der Notwendigen Peripherie, damit der µP überhaupt was macht.

2: Wie soll ich vorgehen ?
-µP kaufen, auf eine PLatine löten, und dann stellt sich für mich die 
Frage wie bringe ich dem Keks jetzt was bei ? Was brauche ich dazu ?
-es gibt so viele Sachen, könnte ich nicht auch mit dem Interface 
http://www.order.conrad.com/cgi-perl/lshop.cgi?action=showdetail&wkid=1268279071&ls=d&nc=&rubnum=q08.az22.h99&artnum=191638&file=&gesamt_zeilen=20Tshowrub--q08.az22.h99&shop= 
genau das gleiche erreichen wie mit dem originalen AVRISPmkII ? Weil für 
dieses Geld bekomme ich ja schon eine komplette Entwicklungsumgebung ! 
Da habe ich ja gerade mal ne Verbindung zu einem µP hergestellt den ich 
bei dem Preis aber auch nicht habe :D

3: Welche Dinge sind zu beachten, ich weis das ein µP einen Bootloader 
vorprogrammiert haben muss sonst ist auch nichts mit fröhlich hochladen 
von .hex Dateien mit einem Programmieradapter...


Tut mir leid für den Stress es geht darum das die bestellten Sachen dann 
auch funktionieren müssen weil ich nicht selber für die Kosten aufkomme 
sondern eine Institution...

Viele Grüße

Christian

von Stefan N. (stefan_n)


Lesenswert?

Dominik S. schrieb:
> Ok... du solltest GANZ dringend erst mal ein paar Tutorials lesen, bevor
> du mit irgendwas weiter machst.
>
> http://www.mikrocontroller.net/articles/AVR
> http://www.mikrocontroller.net/articles/AVR-Tutorial

Vor allem sollte er sich das Datenblatt von dem AVR einmal durchlesen.

http://www.atmel.com/atmel/acrobat/doc2503.pdf

von Karl H. (kbuchegg)


Lesenswert?

Christian P. schrieb:

> Mir geht es einfach um folgendes wozu ich einfach keine vernünftige
> zusammenhängende Erklärung finden kann im Internet:
>
> 1: Ich möchte einen ATMega 32 dazu bringen was zu machen.(RC5 Signale
> verarbeiten)


Für einen Anfänger schon zu schwer.
Dein Weg beginnt damit, eine LED gezielt ein/aus schalten zu können, 
blinken zu lassen, dann einen Taster mit dazu nehmen, etc. etc.

> Jetzt meine Fragen:
> 1: Wie gehe ich an die Sache ran ?

> Ich würde gerne vom grunde auf sowas
> mal aufbauen

Ja, dann mach das. Im AVR-Tutorial ist ja beschrieben wie die 
notwendige Hardware in ihrer Grundvariante dazu aussieht.

> von der Übertragung des PC`s über USB zum µP,

für den Teil kaufst du dir einen fertigen Brenner. Erstens lohnt das 
nicht, den selbst zu bauen und zweitens musst du den Teil als dein 
"Werkzeug" ansehen. Du baust ja auch deine Bohrmaschine nicht selber, 
wenn du ein Baumhaus bauen willst.
Der 'Brenner' muss zuverlässig funktionieren, sonst artet der Rest in 
Frust aus.
Abgesehen davon, dass du ansonsten ein Henne/Ei Problem hast: Auf dem 
Brenner sitzt ein µC. Wie programmierst du diesen µC, wenn du noch 
keinen Brenner hast.

Also: Brenner Selbstbau - lass es.

> sodass ich
> selber geschriebene Programme draufbrennen kann, bis hin zum aufbauen
> der Notwendigen Peripherie, damit der µP überhaupt was macht.

Ja.
Genau darum geht es im AVR-Tutorial.
Wie sieht eine Grundschaltung eines AVR aus, so dass man mit dem Brenner 
(welcher ist egal, denn die Schnittstelle ISP ist immer dieselbe) 
Programme in diesen Mega brennen kann, so dass der die ausführt.

> 2: Wie soll ich vorgehen ?
> -µP kaufen, auf eine PLatine löten, und dann stellt sich für mich die
> Frage wie bringe ich dem Keks jetzt was bei ?

Indem du ein Programm schreibst.
Such dir aus welche Programmiersprache du benutzen willst und los gehts!

Wenn du in C programmieren willst, dann lautet eine gern gemachte 
Empfehlung dahingehend, dass du dir erst mal mit einem C-Buch und einer 
Entwicklungsumgebung die ersten Schritte der C-Programmierung auf dem PC 
beibringst. Beherrscht du das erste Drittel deines C-Buchs so 
einigermassen, dann hast du beste Voraussetzungen um in der 
µC-Programmierung schnellen Schrittes voranzukommen.

> Was brauche ich dazu ?
> -es gibt so viele Sachen, könnte ich nicht auch mit dem Interface
> 
http://www.order.conrad.com/cgi-perl/lshop.cgi?action=showdetail&wkid=1268279071&ls=d&nc=&rubnum=q08.az22.h99&artnum=191638&file=&gesamt_zeilen=20Tshowrub--q08.az22.h99&shop=
> genau das gleiche erreichen wie mit dem originalen AVRISPmkII ?

Es gibt viele Brenner.
Such dir einen aus, der dir preislich zusagt und hör auf da jetztz groß 
rumzustochern. Ein Brenner ist nur ein Werkzeug, welches den Teil 
'Übertragung des Programms vom PC in den µC' übernimmt. Programme 
schreiben musst du nach wie vor selber.

Irgendwann muss man mal ins kalte Wasser springen und einfach loslegen. 
So etwas wie 'Die optimale Hardware' gibt es nicht. Und Lehrgeld wirst 
du noch genug zahlen. Manches davon monetär, den Hauptteil davon in Form 
von Schweiß :-)

> 3: Welche Dinge sind zu beachten, ich weis das ein µP einen Bootloader
> vorprogrammiert haben muss

Nö. muss er nicht.
Dazu hast du ja den Brenner.


> auch funktionieren müssen weil ich nicht selber für die Kosten aufkomme
> sondern eine Institution...

Und da streiten wir um 20 Euro auf oder ab? Die 20 Euro sind nur die 
Spitze des Eisbergs. Da wird im Laufe des nächsten Jahres noch einiges 
mehr auf dich zukommen. Vieles davon werden Portokosten sein für 
Bauteile, die du benötigen würdest, die du aber bei der letzten 
Bestellung vergessen hast. Das macht aber nichts, das geht allen so.


> das die bestellten Sachen dann auch funktionieren müssen

Gerade deshalb würde ich dir davon abraten, bei deinem allerersten 
Enticklungsboard (das werden im Lauf der Zeit schon noch mehr) im 
Selbstbau zu agieren. Der Brenner-Selbstbau ist sowieso tabu. Das 
Entwicklungsboard ist zwar grundsätzlich nicht schwer aufzubauen, aber 
für den Einstieg gibt es zb von Olimex schön einfache Development 
Boards, die auch preislich so sind, dass sich ein Selbstbau für einen 
Einsteiger nicht lohnt, wenn er mit Kostenwahrheit an die Sache rangeht.
Wenn du dieses Board dann ausgereizt hast, dann kannst du ja deinen 
ersten Selbstbau eines Development-Boards ins Auge fassen. Wie gesagt: 
es ist grundsätzlich nicht schwer, es ist aber auch nicht so, dass man 
mit 0-Vorwissen da blauäugig rangehen kann.
Und: ja. Deine ganze Ausdrucksweise verrät, dass du 0 Vorwissen hast und 
dass du blauäugig an die Sache rangehst.

von Karl H. (kbuchegg)


Lesenswert?

Christian P. schrieb:

> -es gibt so viele Sachen, könnte ich nicht auch mit dem Interface
> 
http://www.order.conrad.com/cgi-perl/lshop.cgi?action=showdetail&wkid=1268279071&ls=d&nc=&rubnum=q08.az22.h99&artnum=191638&file=&gesamt_zeilen=20Tshowrub--q08.az22.h99&shop=
> genau ...


Was willst du mit dem Teil? Das passt noch nicht mal annähernd zur 
Aufgabenstellung.
Entweder du willst mit dem Mega32 bei 0 anfangen oder du willst das 
nicht. Wenn du es aber willst, dann ist ein Bootloader samt diesem 
USB/RS232 Umsetzer nicht dein Weg.
In dem Fall führt kein Weg an einem richtigen Brenner vorbei.

von Laxantium (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Deine ganze Ausdrucksweise verrät, dass du 0 Vorwissen hast und
> dass du blauäugig an die Sache rangehst.

Er will ja auch einen ATMega "füttern" :-)

ob der dann Verdauungsprobleme bekommt?

von Karl H. (kbuchegg)


Lesenswert?

Laxantium schrieb:
> Karl Heinz Buchegger schrieb:
>> Deine ganze Ausdrucksweise verrät, dass du 0 Vorwissen hast und
>> dass du blauäugig an die Sache rangehst.
>
> Er will ja auch einen ATMega "füttern" :-)

Das ist die Ausdrucksweise aus den 70-er Jahren des vergangenen 
Jahrhunderts. Damals gab es kaum eine TV-Sendung (durchaus seriöse 
Sendungen!), in der nicht ein 'Elektronengehirn gefüttert' wurde.

von Christian P. (deepbass)


Lesenswert?

Ok, die Ausführungen waren schonmal sehr hilfreich,

was ich mit dem "Teil" wollte ist recht einfach zu erklären. Es stellt 
zumindest beim Roboter System RP6 die Verbindung her zwischen UART des 
µP und PC über USB Schnittstelle. Es ist doch auch ein "Brenner" dieses 
Interface oder nicht ? So eins habe ich nämlich noch zuhause 
herumliegen.

Was meine Erfahrungen in dem Gebiet anbelangt bin ich ja nichtmehr 
totaler Neuling, ich habe immerhin es fertig gebracht einen Roboter mit 
vorhandener Hardware so zu programmieren das er autonom durch die Kante 
fährt ohne anzuecken und dabei auch mal zu blinken oder Töne von sich zu 
geben. Wir fangen also bei 0,1 an ;)

Kennt jemand denn ein gutes Entwicklungsboard mit einem ATMega drauf und 
hat damit Erfahrungen?

Gruß Christian

von Christian P. (deepbass)


Lesenswert?

Hallo,

also ich denke ich bin fündig geworden.
-->http://www.pollin.de/shop/dt/MTY5OTgxOTk-/Bausaetze_Module/Bausaetze/ATMEL_Evaluations_Board_Version_2_0_1_Bausatz.html

Nun würde mich eure Meinung interessieren ob das als kleines 
Einsteigerprojekt angebracht wäre. Da könnte ich dann einen ATMega32 
draufsetzen.

Meine Frage dazu:
-ich kann also über die serielle ISP Schnittstelle des Boards mithilfe 
eines ISP den Bootloader programmieren ?!
-das flashen und einbinden der Programmierten .hex Dateien läuft dann 
über die RS232 Schnittstelle ?

Ich benötige also außer dem Board noch zwei Dinge:
1. den ISP
2. den ATMega32 ?

Gruß Christian

von Karl H. (kbuchegg)


Lesenswert?

Christian P. schrieb:

> was ich mit dem "Teil" wollte ist recht einfach zu erklären. Es stellt
> zumindest beim Roboter System RP6 die Verbindung her zwischen UART des
> µP und PC über USB Schnittstelle. Es ist doch auch ein "Brenner" dieses
> Interface oder nicht ? So eins habe ich nämlich noch zuhause
> herumliegen.

Nein, das ist kein Brenner.
In deinem RP6 Robot ist ein Bootloader eingebrannt worden (mit einem 
richtigen Brenner) und dieser Adapter ist einfach nur ein USB/RS232 
Umsetzter, der den Kontakt vom PC zu diesem Bootloader herstellt.

Vorteil: das ist technisch recht einfach
Nachteil: In den Mega muss erst mal ein Bootloader rein. Dazu braucht
          aber einen richtigen Brenner.


Also: Für diesen Spezialfall eines 'vorbereiteten' Megas durchaus ok. 
Für allgemeine Aufgaben aber nicht zu gebrauchen.

von Karl H. (kbuchegg)


Lesenswert?

Christian P. schrieb:


> Meine Frage dazu:
> -ich kann also über die serielle ISP Schnittstelle des Boards mithilfe
> eines ISP den Bootloader programmieren ?!

Ja kannst du.
Aber bitte vergiss endlich diesen Bootloader.
Das ist nicht der Normalfall. Denn mit einer Programmierung über 
Bootloader hast du deinen Mega nicht vollständig unter Kontrolle. Ändern 
der Fusebits ist damit nicht möglich.

> -das flashen und einbinden der Programmierten .hex Dateien läuft dann
> über die RS232 Schnittstelle ?

Nochmal:
Das wäre der Fall, wenn du einen Bootloader benutzt.

Aber auf diesem Board ist bereits ein Brenner integrier, wenn auch einer 
von der eher schlechteren Sorte. Und wenn du erst mal einen Brenner 
hast, der zuverlässig funktioniert, gibt es keinen Grund mehr über einen 
Bootloader zu gehen.

> 1. ISP
wäre empfehlenswert

> 2. den ATMega32 ?
Ja

: Wiederhergestellt durch User
von Hmm (Gast)


Lesenswert?

Mir fällt in dem Thread noch ein Sätze auf, auf den ich eingehen möchte.

>Wenn er frisch vom Hersteller kommt kennt er ja noch nichteinmal seine
>Schnittstellen oder ?

Nein.

Die Hardwarestruktur des AVR ist in grossen Teilen vorgeben. Sie ist 
tatsächlich, physisch so verdrahtet, das sic ein UART, eine 
SPI-Schnittstelle, ein Timer etc. ergibt.

Im Datenblatt müsstest Du eigentlich schon gesehen haben, wie die 
Struktur des Controllers aussieht. Genau DAS ist sie.

Wie man damit genau umgeht siehst Du dann im Tutorial.

von Christian P. (deepbass)


Lesenswert?

Das Problem ist nur das ich bei jeglichen Threats ständig das Wort 
Bootloader und Probleme im Zusammenhang damit lese. Das ist halt der 
Hacken an der Sache, selten findet man "funktionierende" Projekte in 
einem Forum sondern es handelt sich nur um Probleme. Man selber als 
Einsteiger kriegt dann natürlich etwas "Angst" ;)

So nun gut also so ganz verstehe ich deine Aussage nicht:
>Aber bitte vergiss endlich diesen Bootloader.

In einem fabrikneuen ATMega ist kein Bootloader drinn, ohne Bootloader 
kannst du nicht über die RS232 Schnittstelle Programmieren also wie soll 
ich dann das Ding mit meinen .hex Dateien Füttern ??

Wenn ich dich richtig verstehe dann kann ich mit einem vernünftigen 
Brenner auch alles machen was ich über die RS232 Schnittstelle machen 
würde und diese wäre dann "überflüssig" ?!

Gruß Christian

von Düsendieb (Gast)


Lesenswert?

Christian P. schrieb:
> Wenn ich dich richtig verstehe dann kann ich mit einem vernünftigen
> Brenner auch alles machen was ich über die RS232 Schnittstelle machen
> würde und diese wäre dann "überflüssig" ?!

Ja. Aber Du kannst noch mehr machen (Fusebits setzen, Ganzen Speicher 
nutzen, etc.) und das ist der Vorteil eines "richtigen" USB Programmers

von Christian P. (deepbass)


Lesenswert?

ok verstanden, danke

ich mache mich mal auf die Suche was ich außer dem evaluation board noch 
brauche und gebe dann bescheid.

von Christian P. (deepbass)


Lesenswert?


von amateur (Gast)


Lesenswert?

@Christian
Zu Deinem Eingangsschreiben:

zu 1.
>Ist das Richtig ?
Ja

zu 2.
>Verbindung zwischen µP und PC.
Atmel sieht dazu das Konzept des <<ISP>> vor.
Geräte für diesen Anschluss gibt es wie Sand an Meer (Fertig oder 
Puzzel).
Meist geht’s los bei RS232 oder USB.

zu  3.
>benötige ich einen Pegelwandler
Wie praktisch alle nackten Rechner sprechen auch die Atmels nur 5V bzw. 
3,3V.
Also ja.

von Christian P. (deepbass)


Lesenswert?

Hallo,

so ich habe mir jetzt folgenden Artikel 
bestellt:http://www.reichelt.de/Programmer-Entwicklungstools/AVR-STK-500/3/index.html?;ACTION=3;LA=446;ARTICLE=34093;GROUPID=2969;artnr=AVR+STK+500;SID=14USSRRX8AAAIAAAvwSNUa91c3b05a37b5b9392026d99bb5d0c9a

Was haltet ihr davon ? Ich denke das ist ideal man kann alles damit 
machen und es ist universell einsetzbar. Voll gut auch das alle I/O 
Ports rausgezogen sind, so kann man gleich seine Schaltung mit 
entwickeln und sich dann eine Lochrasterplatte schnappen, los gehts !

Viele Grüße,

Christian

von Karl H. (kbuchegg)


Lesenswert?


von tobi (Gast)


Lesenswert?

Ja, das STK ist ganz gut. Etwas alt vielleicht.


Allerdings würde ich Dir erstmal das Pollin Board ans Herz legen, ist 
etwas günstiger und sollte für den Start reichen. Sollte man auch damit 
programmieren können (nie selber gebraucht, ich hab 'nen JTGAGICE 
daheim)

http://www.pollin.de/shop/dt/MTY5OTgxOTk-/Bausaetze_Module/Bausaetze/ATMEL_Evaluations_Board_Version_2_0_1_Bausatz.html

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.