Forum: Mikrocontroller und Digitale Elektronik AVR - Tutorial - Benötigte Ausrüstung


von Stefan (Gast)


Lesenswert?

Hallo,

nach mehr als 20 Jahren möchte ich wieder etwas Mikrocontroller know how 
aneignen.
Ich hab damals noch mit sowas in der Ausbildung gebastelt:
http://www.auram.de/pages/computer-sammlung/single-board/ecb85.php
Etwas anderes als Assembler ging da nicht.

Jetzt ist der Sohn alt genug und ich habe auch die nötige Zeit und Lust 
um mich mit dem Thema zu beschäftigen.

Wenn ich hier die Forenbeiträge lese muss ich feststellen, dass sich die 
Welt in den letzten 20 Jahren doch gedreht haben muss. Soll heißen ich 
verstehe fast nichts von dem hier geschrieben wird.

Bei der Auswahl der HW geht es leider schon los.
Im Tutorial (wird das noch gepflegt?) unter AVR-Tutorial - Benötigte 
Ausrüstung kommt schon die erste Entscheidung Breadboard oder 
Starterkit/Evaluations-Board. Einige der Links funktionieren leider 
nicht.
Ich denke der ATmega8 ist schon ausreichend. Ich würde gerne mit 
Assembler anfangen und auch die Möglichkeit haben den Mikrocontroller in 
C zu programmieren.
Kurzfristige Ziele sind:
- ein paar LEDs zum blinken bringen
- Lichtschranke/Zeitmessung
- Relais steuern um 220V zu schalten
Mittelfristig wäre es schön ein LCD Display anzusteuern und das Thema BT 
und WLAN sind auch interessant.

Welches HW würdet ihr da empfehlen (wäre super wenn die Erweiterbar ist 
(siehe Ziele))? Bitte mit aktuellen Links zum Board und ISP (falls 
separat notwendig)
Ich denke das Breadboard ist zwar ganz nett aber viel Steckerei die 
Fehleranfällig ist.

Danke STefan

P.S: Wäre schön wenn es noch ein Unterforum geben würde wo wirklich nur 
die Anfängerfragen abgehandelt werden.
P.S2: Und ja ich habe die suche bemüht.

von Gregor O. (zappes)


Lesenswert?

Ich habe dazu vor einiger Zeit mal 2 Videos gemacht - vorsicht, die sind 
etwas lang. :)

https://www.youtube.com/watch?v=GfZ_h9X5Z4Q
https://www.youtube.com/watch?v=XSE0QfRYwFE

Die Videos sind jetzt nicht speziell zu dem AVR-Tutorial hier, aber sie 
zeigen, womit man etwa ein halbes Jahr lang gut auskommt, wenn man 
vorhat, ATmegas auf Breadboards zu verbauen und hinterher Lochrasterkram 
zu verbrechen.

: Bearbeitet durch User
von Bernd S. (Firma: Anscheinend Corner-Cases ;-)) (bernd_stein)


Lesenswert?

Stefan schrieb:
> Hallo,
>
> nach mehr als 20 Jahren möchte ich wieder etwas Mikrocontroller know how
> aneignen.
>
Da habe ich Dir einen Vorschlag zu machen. Ich möchte mich nämlich nun 
auch wieder gewissenhafter mit den µC ( Mikrocontroller ) von ATMEL 
befassen und zwar in Assembler, da dies nun mal die beste Möglichkeit 
ist diese wirklich gut kennen zu lernen. Dazu gibt es einen Online 
Kursus ( völlig kostenlos ), den man nur durchzuarbeiten muß und dadurch 
schon viel lernt. Der Kurs baut auf den ATmega32A auf, ich benutzte 
jedoch den ATmega8, was für Anfänger vollkommen reicht.

Leider habe ich heute keine weitere Zeit, deshalb nur in Kürze :

1. ATMEL-Studio 4.19 Build 730 herunterladen und installieren.
2. Prgrammer AVRISP mkII kaufen
3. Bauteile besorgen, die ich Dir hoffentlich morgen schreiben kann.
4. Die Zeit nutzen und sich mit ein paar Sachen befassen, die ich jetzt 
verlinke :

https://www.youtube.com/watch?v=Q1rR1IgBgcU

Hier Thema " Assembler " anklicken. Kann leider nicht direkt verlinken.

http://www.avr-asm-tutorial.net/avr_de/beginner/

Und hier Mikrocontrollertechnik-Kursus MODUL_A herunterladen

http://www.weigu.lu/a/

Und hier posten und " Thread beobachten " anklicken, dann kannst Du, 
wenn Du eingeloggt bist oben rechts durch anklicken sehen, ob sich was 
getan hat bzw. kriegst eine eMail-Benachritigung ( Beobachtete Threads & 
Thread mit meinen Beiträgen ).

Beitrag "AVR-Mikrocontrollertechnik-Kursus in Assembler besprechung"



Bernd_Stein

von Fritz Katze (Gast)


Lesenswert?

Stefan schrieb:
> Jetzt ist der Sohn alt genug und ich habe auch die nötige Zeit und Lust
> um mich mit dem Thema zu beschäftigen.

Die Vorschläge hier sind aus meiner Sicht teilweise ein bißchen 
Old-School, obwohl ich selbst Baujahr 1968 und damit auch nicht mehr 
taufrisch bin.

Gerade, weil Du Deinen Sohn erwähnst, würde ich die Arduino Boards und 
IDE zum Einstieg empfehlen.
Nach ein paar Stunden Einarbeitung kann man von vielen Tutorials und 
Bibliotheken im Netz profitieren. Man kann darauf auch Assembler 
programmieren, denn es wird ein gcc benutzt, muß man aber nicht.

Ich finde es wirklich sehr schön, daß ich z.B. ganz verschiedene 
Displays mit der gleichen C++-Bibliothek oder zumindest mit dem dem 
gleichen Quellkode ansprechen kann und nur den Konstruktoraufruf ändern 
muß (I2C, SPI oder direkter Anschluß, verschiedene Anzahl Spalten, 
Zeilen).

Ein Arduino Uno/Mega/Due Board gibt es als legalen Klon (ist ja eine 
offene Plattform) vom deutschen Händler auf EBay für 10.- bis 15,- Euro.

Ich habe damit einen µ-WebServer und einen kleinen wissenschaftlichen 
Taschenrechner mit 34-stelliger BCD-Arithmetik gebaut. Das hätte ich 
nicht geschafft, wenn ich das in Assembler hätte machen müssen.

von Stefan (Gast)


Lesenswert?

Erstmal Danke!

@zappes: Ich habe mir beide Video angeschaut. Das Breadboard kann dann 
doch mehr als erwartet.

@bernd: In den Kurs bei weigula habe ich noch nicht geschaut.
Das Video zeigt mir, dass das alles erstmal machbar ist in Assembler.
Warum  ATMEL-Studio 4.19 Build 730 und nicht 6.2?
Baust du alles auf Breadboards?
Ich wollte mir dann sowas zulegen 
http://www.watterott.com/de/StarterKit-for-Arduino-UNO hat dann aber 
schon einen ATmega328
Deinem Beitrag werden ich folgen.
Bauteileliste wäre interessant

@Fritz: Ich wollte erstmal unten anfangen. Bin auch mehr der Fan der 
prozeduralen Sprachen. Der OOA und OOP liegen mir nicht wirklich und ich 
muss mir nicht gleich zuviel Sachen auf einmal reinholen.
Dein Ebay Link funktioniert leider nicht. Kannst du den nochmal posten?


Stefan

von Stefan (Gast)


Lesenswert?


von Gregor O. (zappes)


Lesenswert?

Stefan schrieb:
> @zappes: Ich habe mir beide Video angeschaut. Das Breadboard kann dann
> doch mehr als erwartet.

Jup, so ein Breadboard ist zum Experimentieren völlig super. Dauerhafte 
Schaltungen kann man damit natürlich nicht aufbauen, aber für das erste 
Prototyping gibt es kaum etwas besseres.

von Fritz Katze (Gast)


Lesenswert?

Hier zum Beispiel:

http://www.ebay.de/itm/Neu-SunFounder-Lab-Mega-2560-R3-ATmega2560-16AU-Board-fur-Arduino-kompatibel-/151275549665?pt=Wissenschaftliche_Ger%C3%A4te&hash=item2338b9b3e1

Wichtig ist halt nicht "Ebay Deutschland", sondern Deutschland als 
Standort zu wählen, dann gibt es auch keine überraschenden Steuern oder 
Zollgebühren, wenn der Warenwert mal über 22,- € liegt.

Hier gibt es auch unschlagbar günstigen Krams: miniinthebox.com, 
allerdings sind die Lieferzeiten manchml recht lang.

von Florian (Gast)


Lesenswert?

Ich würde kleiner anfangen: http://www.blafusel.de/misc/my_first_mc.html

von Christian K. (the_kirsch)


Lesenswert?

Wenn du neu einsteigen willst, ist als Hardwaregrundlage ein Arduino 
Leonardo (oder ein Arduino Mega 2560) gut geeignet.

Die Arduino Lib und die Arduino IDE sind sehr stark auf Einsteiger 
ausgelegt.


http://arduino.cc/de/pmwiki.php?n=Main/ArduinoBoardLeonardo
http://arduino.cc/de/pmwiki.php?n=Main/ArduinoBoardMega2560


Die Arduino Lib ist eine Hardware-Abstraktionschicht hinter die ganze 
Hardwareansteuerung versteckt ist.
Ich bin kein Freund von, sobald man sich ein bisschen mit der Materie 
beschäftigt hat, sollte man es mal ohne probieren und alles selbst 
machen.


Die Arduino IDE ist grottenschlecht, die kann gar nichts.
Besser, aber nicht viel ist das AVR-Studio. Es hat einen AVR-Simulator 
dabei (Meiner Meinung das einzige Pro-Argument für AVR-Studio)

Ich benutze für die C-Programmierung Eclipse CDT mit AVR-Plugin. (Ist 
aber aufwendig einzurichten).

Das Atmel-Studio hat das AVR-Studio abgelöst, es basiert auf 
Microsoft-Studio. Hat auch einen Simulator. Ist für alle Controller von 
Atmel gedacht, also auch für AVR. Ist aber ganz schön groß, man hat das 
Gefühl mit Kanonen auf Spaßen zu schießen, wenn man damit kleine 
Microkontroller programmiert.



Arduino Hardware Top, Lib und IDE eher mau.

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Bernd Stein schrieb:
> 1. ATMEL-Studio 4.19

sorry mit der Version hatte ich Probleme, schrieb auch ein Moderator 
hier, ich bin wieder zurück zum 4.18 Build 716

Fritz Katze schrieb:
> Gerade, weil Du Deinen Sohn erwähnst, würde ich die Arduino Boards und
> IDE zum Einstieg empfehlen.

Ich mag auch nicht mehr Prototypen auf Lochraster zusammenlöten mit 
Quarz, Reset, ISP und Vogelfutter wenn es fertige nanosV3 328p für 5€ 
und mega2560 für 12€ in China gibt. Mit den Arduinos kann man gleich 
loslegen oder wer mag per ISP aus dem Atmelstudio arbeiten, Codes auch 
kombinieren, so bin ich von normalen Atmel LIBs langsam zu Arduino LIBs 
gewechselt, I2C LIB, ws2812 LIB z.B. Demnächst steht wohl der Wechsel 
der LCD LIB zu Arduino an.

von Thomas D. (thomasderbastler)


Lesenswert?


von Bernd S. (Firma: Anscheinend Corner-Cases ;-)) (bernd_stein)


Lesenswert?

Stefan schrieb:
> @bernd: In den Kurs bei weigula habe ich noch nicht geschaut.
>
Ist nicht schlimm, der läuft ja nicht weg ;-)
Und ich weiß, das sind jetzt wieder einmal fürchterlich viel 
Informationen auf einmal, die hier in Deinem Thread von verschiedenen 
Leuten zusammengetragen werden.

> Hallo,
>
> nach mehr als 20 Jahren möchte ich wieder etwas Mikrocontroller know how
> aneignen.
>
> Das Video zeigt mir, dass das alles erstmal machbar ist in Assembler.
>
Eigentlich wollte ich nicht auf diesen Thread eingehen, da Du als Gast 
aufgetreten bist und es somit nicht möglich ist, Dir mal eine eMail 
zuschicken, denn bei solchen Sachen habe ich schon genug Zeit 
verschwendet.

Beitrag "Re: asm optimierung"

Ich bin jetzt mal anhand Deines Eröffnungs-Threads davon ausgegangen, 
das Du nicht mal eben schnell µC-Anwendungen erstellen möchtest,
sondern die AVR-µC verstehen willst. Dazu denke ich ist Assembler die 
beste Wahl.
Denn Du lernst genau, warum Du genau dies(e) Bit(s) in in diesem 
Register setzen oder löschen must. Und wenn man darin absolut Sattelfest 
ist, dann denke ich kann man sich daran setzen und eine " höhere " 
Programmiersprache zu erlernen.

Falls Du auf die Arduino-Schiene aufspringen möchtest, bin ich schon mal 
nicht mit dabei, das ist mir zu weit von den Grundlagen entfernt bzw. 
nimmt einem ähnlich wie BASIC viel vom Detailwissen, das ich gerne 
erwerben möchte.

>
> Warum  ATMEL-Studio 4.19 Build 730 und nicht 6.2?
>
Erstens, weil ich mal ein Problem mit einem "Uralt-AVR" ( Basic Line ) 
hatte und einem relativ neuem mit USB-Schnittstelle. Zweitens ich die 
Sachen in 6.2 zum Glück nicht brauche, sowie diese auch nicht verstanden 
habe ( siehe Video ). Drittens man hat die gleiche Grundlage und kann 
somit 1:1 die Sachen erklären.

Beitrag "Re: AT90S2312 und Atmel Studio 6 ?"

https://www.youtube.com/watch?v=buW8L62SXa8

>
> Baust du alles auf Breadboards?
>
Davon bin ich damals abgekommen, da ich immer Kontaktschwierigkeiten 
hatte, deren Fehlersuche sehr langwierig waren. Kann natürlich sein,
das ich im Elektronikladen was angedreht bekommen habe, wo die Kontakte 
schon korrodiert waren. Aber auch zeigte sich das der Platz schnell eng 
wurde, da viele Bauteile zwischen den Beinen eine Unterbrechung 
brauchten oder die Strombelastung die Kontakte ausglühen ließ. Außerdem 
ging mir das Kabelgewirr und die vielen Brücken auf den Zeiger.

Bin jetzt über Streifenraster zu Lochpunktraster gekommen und finde dies 
am flexibelsten.

>
> Deinem Beitrag werden ich folgen.
> Bauteileliste wäre interessant
>
In dem Beitrag, werde ich mal ein paar Fotos von meinem Aufbau machen 
und einen Warenkorb hinterlegen.


Bernd_Stein

von Fritz Katze (Gast)


Lesenswert?

Bernd Stein schrieb:
> Ich bin jetzt mal anhand Deines Eröffnungs-Threads davon ausgegangen,
> das Du nicht mal eben schnell µC-Anwendungen erstellen möchtest,
> sondern die AVR-µC verstehen willst. Dazu denke ich ist Assembler die
> beste Wahl.
> Denn Du lernst genau, warum Du genau dies(e) Bit(s) in in diesem
> Register setzen oder löschen must. Und wenn man darin absolut Sattelfest
> ist, dann denke ich kann man sich daran setzen und eine " höhere "
> Programmiersprache zu erlernen.
>
> Falls Du auf die Arduino-Schiene aufspringen möchtest, bin ich schon mal
> nicht mit dabei, das ist mir zu weit von den Grundlagen entfernt bzw.
> nimmt einem ähnlich wie BASIC viel vom Detailwissen, das ich gerne
> erwerben möchte.

Das würde ich nicht so schwarz oder weiß sehen. Die Interrupt-Behandlung 
zum Auslesen einer Tastaturmatrix konnte ich z.B. nicht mit der 
Arduino-Bibliothek erledigen. Das hat mich nicht daran gehindert, mir 
die Dokumentation zu den Interrupt-Control-Registern durchzulesen und 
diese zu benutzen. Als ich wegen des Speicherplatzebedarfs der 
BCD-Arithmetik (sowohl Flash als auch SRAM) von einem Arduino Uno (328P) 
zu einem Arduino Mega (Mega 2560) wechseln mußte, konnte ich den Kode zu 
100% übernehmen, weil ich mir das Pin-Out der beiden Chips und der 
Boards angesehen habe und die "passenden" Anschlüsse verwendet habe.

Aber welche Pins auf dem Board völlig willkürlich zu welchen Anschlüssen 
am MC und wiederum zu welchen Bits in welchen Registern gehören, das 
kann man in Tabellen nachschlagen. Wenn ich jahrelang mit dem gleichen 
Chip arbeite, dann weiß ich das vielleicht auch auswendig, aber das ist 
doch nicht Zweck der Übung!

Ich würde es auch begrüßen, wenn jeder Programmierer mal irgendeinen 
Assembler benutzt hätte. Heutzutage könnte das auch Byte-Code für die 
JVM oder MS-IL für die CLR sein, zumindest letzteres fühlt sich ganz 
ähnlich an. Ich habe ganz wenig Assembler für 6502, x86 und 
DirectX-Shader programmiert, wenn es nicht zu vermeiden war, bzw. 
gelesen, um zu lernen, wie z.B. SIMD funktioniert und ob der Compiler 
gemacht hat was ich wollte.
Man muß die Waffen halt immer passend zum Gegner wählen.

von Dirk K. (dekoepi)


Lesenswert?

Der Zusammenhang: ASM - Datenblatt/Registerzugriffe - µC-Verständnis 
erschließt sich mir nicht.

Die Atmel-Datenblätter für die AVRs sind grade mal 200 Seiten stark und 
erklären eigentlich jedes Register. Da kann man fast Assembler-gleich in 
C mit arbeiten. Sogar in der Arduino-GUI, wobei ich da Eclipse+AVR-GCC 
vorziehe.

Das Verständnis kommt aus der Kombination Datenblatt lesen - kleines 
Projekt programmieren. Da ist weder Assembler nötig, noch hindert die 
Verwendung von C das Verstehen.

von Joachim B. (jar)


Lesenswert?

Fritz Katze schrieb:
> Das würde ich nicht so schwarz oder weiß sehen. Die Interrupt-Behandlung
> zum Auslesen einer Tastaturmatrix konnte ich z.B. nicht mit der
> Arduino-Bibliothek erledigen.

wieso, man kann auch die Danneggerentprellroutine in Arduino übernehmen, 
ich sogar in i2c mit Arduino Bibliothek

von Fritz Katze (Gast)


Lesenswert?

Joachim B. schrieb:
> Fritz Katze schrieb:
>> Das würde ich nicht so schwarz oder weiß sehen. Die Interrupt-Behandlung
>> zum Auslesen einer Tastaturmatrix konnte ich z.B. nicht mit der
>> Arduino-Bibliothek erledigen.
>
> wieso, man kann auch die Danneggerentprellroutine in Arduino übernehmen,
> ich sogar in i2c mit Arduino Bibliothek

Ich glaube, wir meinen beide das Gleiche: dort, wo die Arduino-Bibiothek 
nicht hinreicht, kann man selbst in die Register greifen.

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.