Forum: Mikrocontroller und Digitale Elektronik einfache Fragen zu AVR (Neueinsteiger)


von Julian W. (julian-w) Benutzerseite


Lesenswert?

Hallo,
bin relativer neueinstiger in Sachen uC.
Zuerst bin ich ins PIC-Lager gegangen, würde jetzt aber gerne ins 
AVR-Lager aufgenommen werden ;)
(gibts es einfach mehr Info's und Projekte im Netz, das PIC-Lager ist 
leider, meiner Ansicht nach, recht klein im Netz vertreten).
Und da stellen sich mir nun einige Fragen vor dem Wechsel:

1. Wie sieht es mit den Modellen aus. Bei den PIC's war das für mich
   sehr gut gegliediert:
    - PIC12xxx - schwach
    - PIC16xxx - mitellmäßig
    - PIC16xxx - gut
    - ...
   Was gibt es bei den AVR's. Hab nur Atmega und Attiny gefunden. Gibt
   es sonst noch weitere Klassen?

2. Wie sieht es mit dem Speichertyp aus. Ist der immer Flash?

3. Wie programmiert man die AVR's. Kann man alle Modelle in C
   programmieren? Oder welche sollte man besser in ASM programmieren?

4. Könnt ihr mir ein GÜNSTIGES Programmiergerät empfehlen?

5. Wo bestellt ihr eure AVR's? Bei Reichelt blick ich nicht ganz durch?
   Da sind die PIC's besser sotiert (oder ich verstehe das System der
   AVR's nicht).

6. Haben die AVR's was mit dem ARM-Prozessor gemeinsam? Der
   ARM-Prozessor ist ja sehr leistungsstark und wird oft von embbeded
   Linux-System benutzt.
   Bei diesen embedded Linux-System kann man ja alle Programme
   drauf laufen lassen, die es für Linux gibt (sofern sie für den ARM
   vorliegen), oder etwa nicht? Und wie würde ich dort dann die Ports
   ansteuern oder gar Peripherie (Netzerk, Grafikkarte) anschließen?
   (Komme darauf wegen dem Grasshopper Board, welches ja einen AVR32
   besitzt)

Das wären meine Fragen. Denke, ihr könnt mir helfen (meine Probleme 
sollten ja für AVR-Kenner/Fanatiker kein Problem).

MfG
Julian

von STK500-Besitzer (Gast)


Lesenswert?

>Was gibt es bei den AVR's. Hab nur Atmega und Attiny gefunden. Gibt
>es sonst noch weitere Klassen?

Braucht man mehr? Zumindest erleichtert das doch sehr den 
Programmier-Lernprozess, da AVR alle den gleichen Befehlssatz 
benutzen...

>2. Wie sieht es mit dem Speichertyp aus. Ist der immer Flash?
Ja, da man sie alle im System programmieren kann.

>3. Wie programmiert man die AVR's. Kann man alle Modelle in C
>   programmieren? Oder welche sollte man besser in ASM programmieren?

Es gibt ein paar Tines, die kein SRAM haben, weswegen sie nicht in C 
programmierbar sind. Bei grösseren Projekten wird ASM unübersichtlich...

>4. Könnt ihr mir ein GÜNSTIGES Programmiergerät empfehlen?
"Kostenlos": Einen der vielen Parallelport-Programmer
Gut zum Einstieg: STK500 (hätte ich noch eins im Angebot).
Dann hat Atmel auch noch ein paar "spartanischere" Programmer (AVR ISP), 
die alle ihre Vorteile haben.

>5. Wo bestellt ihr eure AVR's?
Bei Reichelt oder CSD-Electronics.

>Bei Reichelt blick ich nicht ganz durch?
>Da sind die PIC's besser sotiert (oder ich verstehe das System der AVR's
>   nicht).
Auf der Atmel-Homepage gibt es eine parametrische Übersicht. Danach kann 
man sich seinen AVR je nach zu lösender Aufgabe aussuchen...

>6. Haben die AVR's was mit dem ARM-Prozessor gemeinsam?
Atmel stellt beide Prozessoren her. Das war's aber auch schon. (Dass man 
beide in C programmieren kann, ist halt so...)

Der AVR32 heisst nur so AVR und nichts mit den 8bittern zu tun.

von Julian W. (julian-w) Benutzerseite


Lesenswert?

Danke schon mal für die Antwort.

Also, es gibt quasie nur 2 "Großklassen" bei den AVR's:
 - die Attiny's (schwächeren)
 - die Atmegas (stärkeren)

Flash-Speicher haben sie also alle, gibt es also keine mit nur einmal 
beschreibbarem Speichern, den man nur mit UV-Lampen löschen kann.
(bevor man also ein etwas komplexeres Gerät wegwirft, kann man mal 
nachsehen, ob ein ARV verbaut ist ;)

Und mit dem ARM-Prozessor, die haben also nur ein gemeinsames Präfix 
(AVR) im Namen, haben aber nichts miteinander zu tun. Die programmiert 
man also auch nicht wie normale Atmegas, sondern es läuft ein Linux 
drauf und das steuert alles.

Hoffe, ich habe soweit alles verstanden.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Hi Julian,

Julian W. wrote:
> Hallo,
> bin relativer neueinstiger in Sachen uC.
> Zuerst bin ich ins PIC-Lager gegangen, würde jetzt aber gerne ins
> AVR-Lager aufgenommen werden ;)

Klar... warum nicht? ;)

>    Was gibt es bei den AVR's. Hab nur Atmega und Attiny gefunden. Gibt
>    es sonst noch weitere Klassen?

Es gibt die ATtiny, ATmega und bald auch die ATXmega. AVRs sind generell 
8-bittig bieten aber nach oben einigen Spielraum.

> 2. Wie sieht es mit dem Speichertyp aus. Ist der immer Flash?

Programmspeicher ist Flash und die meisten Typen haben als 
Konfigurationsspeicher auch einen EEPROM.

> 3. Wie programmiert man die AVR's. Kann man alle Modelle in C
>    programmieren? Oder welche sollte man besser in ASM programmieren?

Man kann bis auf ein paar sehr kleine Tinys, die keinen RAM haben, alle 
AVRs problemlos in C programmieren (ohne Verreenkungen).


> 4. Könnt ihr mir ein GÜNSTIGES Programmiergerät empfehlen?

Mal wieder das STK500, das es z.B. bei Reichelt gibt. Das kannst Du zwar 
nicht mit den XMegas verwenden (die es ohnehin momentan nur auf dem 
Papier gibt), aber fuer den Einstieg hast Du alles, was Du brauchst.

Wenn Du nur einen ISP-Programmer willst ist der AVR-ISP oder der USBProg 
moeglicherweise etwas fuer Dich. Aber gerade am Anfang bietet das STK 
einige nicht unwesentliche Vorteile.

> 5. Wo bestellt ihr eure AVR's? Bei Reichelt blick ich nicht ganz durch?
>    Da sind die PIC's besser sotiert (oder ich verstehe das System der
>    AVR's nicht).

Reichelt hat zwar nicht die ganze AVR-Familie, aber doch ziemlich viele 
und der Preis ist durchaus OK.

> 6. Haben die AVR's was mit dem ARM-Prozessor gemeinsam? Der
>    ARM-Prozessor ist ja sehr leistungsstark und wird oft von embbeded
>    Linux-System benutzt.

Nein.

>    Bei diesen embedded Linux-System kann man ja alle Programme
>    drauf laufen lassen, die es für Linux gibt (sofern sie für den ARM
>    vorliegen), oder etwa nicht? Und wie würde ich dort dann die Ports
>    ansteuern oder gar Peripherie (Netzerk, Grafikkarte) anschließen?
>    (Komme darauf wegen dem Grasshopper Board, welches ja einen AVR32
>    besitzt)

Der AVR32 hat mit dem AVR garnichts zu tun, das ist ne ganz andere 
Gewichtsklasse ;)

> Das wären meine Fragen. Denke, ihr könnt mir helfen (meine Probleme
> sollten ja für AVR-Kenner/Fanatiker kein Problem).
>
> MfG
> Julian

Alles Gute dann,
Michael

von STK500-Besitzer (Gast)


Lesenswert?

>Flash-Speicher haben sie also alle, gibt es also keine mit nur einmal
>beschreibbarem Speichern, den man nur mit UV-Lampen löschen kann.
Wozu auch? 100000 Schreibzyklen sollten reichen.
AVR kann man auch durch setzen von Lock-Bits gegen Auslesen sichern.

>(bevor man also ein etwas komplexeres Gerät wegwirft, kann man mal
>nachsehen, ob ein ARV verbaut ist ;)
Ein Gerät, in dem ein AVR verbaut ist, wirft man nicht weg... ;)


>Die programmiert man also auch nicht wie normale Atmegas, sondern es läuft >ein 
Linux drauf und das steuert alles.

Kann sein. Hab ich keine Ahnung von.

von Johannes M. (johnny-m)


Lesenswert?

Julian W. wrote:
> Und mit dem ARM-Prozessor, die haben also nur ein gemeinsames Präfix
> (AVR) im Namen,
Das wäre mir neu. ARM und AVR haben wirklich nichts miteinander zu tun. 
ARMs von ATMEL heißen AT91[...], einige AVRs (die mittlerweile 
abgeküdigten "klassischen" inklusive) beginnen mit AT90[...], die 8051er 
von ATMEL heißen AT89[...]. Nicht verwechseln, das sind völlig 
unterschiedliche Dinge, die nur das "AT" gemeinsam haben, und das steht 
(wie Du sicher denken kannst) lediglich für den Hersteller.

von Julian W. (julian-w) Benutzerseite


Lesenswert?

Nunja, das STK500 kostet bei Reichelt gute 80€.
Mir geht es hauptsächlich nur ums programmieren. Mit einem 
ISP-Programmer kann man doch alle z.Z. erhältliche AVR's programmieren, 
oder?

Wie sieht es mit dem ISP-Programmer aus:
 Beitrag "Serial AVR programmer selber bauen"
 http://www.mikrocontroller.net/attachment/19112/AVR-Prog-Paral.jpg
Würde der mit allen Typen funktionieren?

Und was ist mit dem USBProg vom hauseigenem Shop?
http://shop.embedded-projects.net/product_info.php?info=p6_usbprog-v3-0--Adapter-vormontiert-.html
Würde der auch alle AVR's programmieren können?

Testplatinen zu erstellen, wäre für mich kein Problem.

von Johannes M. (johnny-m)


Lesenswert?

Übrigens ist die Klassifizierung nach "stärker" und "schwächer" sehr an 
den Haaren herbeigezogen. Es gibt mittlerweile ATTinys, die fast genau 
so viel können (und fast genau so groß sind) wie die kleineren ATMegas. 
Der Hauptunterschied zu den ATMegas ist, dass diese einen 
Hardware-Multiplizierer besitzen, der den Tinys generell fehlt. Außerdem 
haben die Tinys (bis auf den ATTiny2313, der aus historischen Gründen 
aus dem Rahmen fällt) zur seriellen Kommunikation nur ein sogenanntes 
Universal Serial Interface (USI), mit dem man sich die üblichen 
Schnittstellen wie SPI und U(S)ART durch entsprechende Konfiguration und 
ein bisschen zusätzlichen Programmieraufwand selbst stricken muss.

Die Zahl der Typbezeichnung enthält immer die Größe des 
Programmspeichers, und zwar sind das jeweils die ersten 1-3 Ziffern, die 
noch eine Zweierpotenz ergeben.

Z.B. ATMega168: 16 ist eine Zweierpotenz, 168 aber nicht -> 16 KiB Flash
ATTiny85: 8 ist eine Zweierpotenz, 85 nicht -> 8 KiB Flash.
ATTiny2313: 2 ist eine Zweierpotenz, 23 nicht -> 2 KiB Flash

Die anderen Parameter muss man sich dann aus den Übersichtstabellen 
zusammensuchen.

Übrigens sind die oben erwähnten AVRs ohne SRAM (die praktisch nur in 
Assembler sinnvoll programmierbar sind) mittlerweile alle abgekündigt. 
Alle derzeit produzierten AVRs haben SRAM und sind in Hochsprachen 
programmierbar.

von Johannes M. (johnny-m)


Lesenswert?

Julian W. wrote:
> Nunja, das STK500 kostet bei Reichelt gute 80€.
> Mir geht es hauptsächlich nur ums programmieren. Mit einem
> ISP-Programmer kann man doch alle z.Z. erhältliche AVR's programmieren,
> oder?
Alle derzeit im Handel befindlichen AVRs sind über ISP programmierbar. 
Wenn Du Dir einen vernünftigen Programmer für ca. 40 € kaufst, bist Du 
auf jeden Fall auf der sicheren Seite. Selbstbaugeräte (v.a. die für die 
serielle Schittstelle) sind manchmal etwas zickig, dafür aber preislich 
unschlagbar. Nur besitzen aktuelle Computer seltenst eine parallele 
Schnittstelle und auch die gute alte RS-232 verschwindet immer mehr 
(speziell bei Notebooks ist sie bereits weitestgehend verschwunden).

von Julian W. (julian-w) Benutzerseite


Lesenswert?

Nunja, mein Rechner hat weder COM noch LTP, hab aber noch einen alten PC 
da stehen (WIN 2000), der noch funktioniert und auch beide 
Schnittstellen besitzt.

Werde zum probieren erst mal so ein "billig" ISP programmierer bauen. 
Zum probieren reicht es ja und den STK500 kann man später immer noch 
kaufen.

Was haltet ihr den von dem USBProg?

von Johannes M. (johnny-m)


Lesenswert?

Julian W. wrote:
> Was haltet ihr den von dem USBProg?
Den kannste nehmen. Oder den originalen AVRISP MK II mit USB (liegt 
preislich ähnlich und hat den Vorteil, dass er in einem Gehäuse verpackt 
ist).

Es gibt nebenbei auch noch den AVRDragon, der alle möglichen Arten der 
Programmierung beherrscht (inkl. JTAG / DebugWire) und mit dem man auch 
alle AVRs bis 32 KiB Flash In-System debuggen kann. Der Dragon ist dabei 
ziemlich preisgünstig.

von Thomas (kosmos)


Lesenswert?

wobei man noch sagen sollte das viele Programme unter 2000/NT/XP keinen 
Zugriff auf die Ports haben, da braucht man dann spezielle Treiber um 
das zu umgehen. Ich empfehle den ATMEL AVR-ISP damit kann man aus dem 
AVR-Studio raus programmieren und mus nicht solche umwege gehen wie HEX 
in BIN umwandeln usw. Wenn man ein bischen mehr Geld übrig hat sollte 
man sich das STK500 kaufen.

von hans (Gast)


Lesenswert?

@johannes

die 32 kb-grenze des drachen ist gefallen!

war auch schon hier im forum (nur PC-Einstellungen)

@julian

Ich würde auch den Atmel MK II empfehlen (Gehäuse), der
drachen ist manchmal etwas empfindlich.

gruß hans

von Sachich N. (dude) Benutzerseite


Lesenswert?

Es gibt doch wesentlich mehr AVRs als die Megas, Tinys und Xmegas? 
Lightning, LCD, Can, USB... siehe www.atmel.com

von Julian W. (julian-w) Benutzerseite


Lesenswert?

Hab gehört, es gäbe eine Seite, wo man seine Anforderungen (PINS, Timer, 
Speicher) reinschreiben kann und einem dann die uC (AVR'S) angezeigt 
werden.

Kann mir einer den Link posten?

von Sachich N. (dude) Benutzerseite


Lesenswert?


von Julian W. (julian-w) Benutzerseite


Lesenswert?

Danke, den ersten Link hab ich gesucht und gleich mal als Lesezeichen 
gesetzt!

von Sachich N. (dude) Benutzerseite


Lesenswert?

Ich würde aber nicht unbedingt danach vorgehen, sondern eher die 
"Standard"-AVRs nehmen, ich wähle im Prinzip immer nur zwischen 
Mega48/88/168 und Mega128/256/1280/2560. Anders ist es natürlich, wenn 
du Spezialfunktionen brauchst, Can, USB, viele PWM, ...

von Julian W. (julian-w) Benutzerseite


Lesenswert?

Jop, werde mich jetzt auch erst mal umgucken, welches so gängige Typen 
sind.
Hier gibt es ja viele Projekte und Tutorials und das Netz quillt schon 
fast über...

von Sachich N. (dude) Benutzerseite


Lesenswert?

Noch ein Tip zur Programmierung: Mit Bascom kommst du sehr schnell zu 
Ergebnissen, wenn dir nach mehr ist kannst du ja auf C umsteigen, aber C 
ist Frust beim Lernen ;)
So, jetzt muss ich mich ducken, Bascom darf man hier kaum erwähnen :D

von Julian W. (julian-w) Benutzerseite


Lesenswert?

Naja probieren kostet ja nichts.
Auserdem bin ich im Forum auch schon darauf gestosen, weiß aber noch 
nicht, was ich davon halten soll.
Werde es mal ausprobieren, wird auf jeden Fall nicht den Controler 
zerschießen ;)

von Magnus Müller (Gast)


Lesenswert?

Julian W. wrote:
> Hab gehört, es gäbe eine Seite, wo man seine Anforderungen (PINS, Timer,
> Speicher) reinschreiben kann und einem dann die uC (AVR'S) angezeigt
> werden.
>
> Kann mir einer den Link posten?

Die Non-plus-ultra-Auswahlseite:

http://www.avrfreaks.net/index.php?module=Freaks%20Devices&func=devCompare

Gruß,
Magnetus

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.