Forum: Mikrocontroller und Digitale Elektronik PIC oder AVR für Projekt


von Georg S. (georgschmied)


Lesenswert?

Hallo,
Ich bin ein Anfänger, der noch keine Erfahrung mit Mikrocontrollern hat. 
Ich möchte zuerst einige Erfahrungen sammeln und dann mein eigentliches 
Projekt beginnen:

Einen kleinen "PDA", mit dem man folgendes kann:

Texte verfassen/anzeigen(Punkt-Matiry Display)/speichern
Texte an Computer übertragen bzw. vom Computer laden (am besten via USB)

Nun zu meiner Frage:
Mit welcher Mikrocontrollerfamilie soll ich nun arbeiten (PIC, AVR oder 
andere)?

PS:
Welche Literatur könnt ihr mir empfehlen?

Danke im Voraus für die Antworten!

von Rahul D. (rahul)


Lesenswert?

>Welche Literatur könnt ihr mir empfehlen?
http://www.mikrocontroller.net/articles/AVR-Tutorial
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
Datenblätter, Application Notes...

Realisieren liesse sich das Projekt mit vielen Controllern.
Einige PICs haben schon eine gewisse USB-Funktionalität integriert...
Das kann man aber auch meist mit externen Chips erreichen.

von let (Gast)


Lesenswert?

Genau, machbar dürfte das mit so ziemlich jeder Controller Familie sein.
Ich empfehle aber die AVR-Reihe, da sie sich meiner Meinung nach
für den Einstieg am besten eignet:

 - Bei Bedarf recht leisungsfähig
 - Sehr einfache Beschaltung
 - preiswerte Programmiergeräte
 - die wichtigsten Entwicklungsumgebungen sind preiswert
   bis kostenlos verfügbar (ASM, C, Basic)
 - Im Hobbybereich weit verbreitet d.h. gute Unterstützung
   bei Problemen durch Foren - v.a. diesem hier ;)
 - viel existierender Code (z.B. LCD Ansteuerung)
 - Eval-Boards sind günstig verfügbar (Hier im Shop, Pollin, Ebay)

Michael

von mr.chip (Gast)


Lesenswert?

Hallo

Die AVRs sind sicher gut geeignet dafür und für einen Anfänger sehr 
einfach zu verbasteln und auch zu beschaffen.

Zu deinem PDA: Wie stellst du dir das mit der Texteingabe vor? Kommt da 
eine Tastatur ran? Nicht vergessen: Das kann ziemlich knifflig, und 
wenig praktisch werden. Also wenn du einfach einen PDA möchtest, dann 
kaufst du besser einen fertigen, z.B: ein Gebrauchtgerät auf Ebay. Für 
die Microcontroller-Bastelei gibt es IMHO dann viel sinnvollere 
Projekte, zum Anfangen beispielsweise einfache Roboter.

Gruss

Michael

von Schoasch (Gast)


Lesenswert?

Hi

Realisieren lässt sich das mit beiden Controllern. Für die PIC sprechen:

[Zitat]
 - Bei Bedarf recht leisungsfähig
 - Sehr einfache Beschaltung
 - preiswerte Programmiergeräte
 - die wichtigsten Entwicklungsumgebungen sind preiswert
   bis kostenlos verfügbar (ASM, C)
 - Im Hobbybereich weit verbreitet d.h. gute Unterstützung
   bei Problemen durch Foren
 - viel existierender Code (z.B. LCD Ansteuerung)
 - Eval-Boards sind günstig verfügbar (Hier im Shop, Pollin, Ebay)
[\Zitat]
(Nein Nein... ich hab mich nicht verschrieben ;-) )

Im grunde ist es wirklich egal mit welchen Controller du arbeitest (AVR 
oder PIC). Sie haben ungefähr das selbe Leistungs- und 
Peripheriespektrum( Microchip(PIC) hat Controller mit integriertem USB 
und  Ethernetmodul, ob das die AVRs haben weis ich leider nicht, ist 
aber gut möglich).

Was meiner Meinung nach sehr für die PICs spricht( und das ist auch der 
Grund warum ich diese verwende), ist deren Firmenpolitik bezüglich 
Schüler und Studenten. Microchip biete für Schüler und Studenten sehr 
viel an. Zum Beispiel gibts gratis Samples, gratis Compiler, 
vergünstigungen bei Eval-Boards und Programmern usw. Und so hats auch 
bei mir begonnen. Ich hab mir ein Sample bestellt und programmiert... es 
hat geklappt... also hab bin ich gleich bei den geblieben :-)

Und jetzt einmal ein paar Arrgumente die nicht mehr gelten:
Viele benutzen keine PICs wegen dem "Banking". Das ist schon richtig, 
dass es das gibt. Aber das betrifft dich auch nur, wenn du die PIC16F 
unter ASM programmierst ;-). Da aber die PICs die für dich interessant 
sind, eh PIC18F sind, betrifft dich das nicht ;-).
Die interessantesten PIC-Klassen sind ja wohl eh die grossen PIC18F und 
die ganz kleinen PIC10F und PIC12F. Und hier gibts kein 
Banking.Ausserdem gibts dafür euch gratis C-Compiler.

Zur Programmiersprache: Im Grunde ists egal mit welcher Sprache du 
anfängst. Ich hab mit C angefangen und programmiere hin und wieder etwas 
in ASM. Den Controller selbst lernst du bei beiden Sprachen sehr gut 
kennen. Und wenns nicht gerade extrem Zeitkritische Sachen sind, ist es 
auch egal was du nimmst. Ansonst gibts auch Inline-ASM in C ;-). 
Ausserdem ist der Start mit C doch auch recht einfach :-)

So und wenn ich dir jetzt etwas lust auf PICs gemacht habe, dann 
empfehle ich dir zwei wunderbare Seiten:

www.sprut.de
Das ist DIE PIC Seite im Netz. Dort findest du alles was man über PICs 
wissen sollte. Das ganze sehr verständlich und interessant geschrieben. 
Es gibt auch sehr oft updates. Schau einfach mal dort hin :-)
Achja... und dort gibts auch einige DIY-Brenner für PICs die sehr 
empfehlenswert sind. Es gibt sogar eine USB-Version.

und dann noch:

www.fernando-heitor.de
Das ist ein PIC-Spezifisches Forum. Es ist zwar nicht so viel los wie 
hier, aber die Leute dort sind alle sehr Kompetent und helfen und 
erklären immer ziemlich gut (besser als wie hier ;-)). Weiters findet 
man dort Tutorials und andere wissenswerte Sachen.

In diesem Sinn. Viel Spass mit den µC.
mfg Schoasch

von Schoasch (Gast)


Lesenswert?

Edit: Wie ich gerade sehe, gibts hier im Shop keine PIC-Boards mehr. 
Braucht man aber auch nicht wirklich :-). Ein Breadboard und Drähte 
reichen völlig aus. Oder du baust dir gleich dein eigenes 
Eval-Board,wodurch du gleich einiges über den Controller lernst.

mfg Schoasch

von Georg S. (georgschmied)


Lesenswert?

Danke für die Antworten erstmal. Mir geht es bei diesem Projekt vor 
allem darum, dass dieses "kleine" Gerät mir Papier und Stift ersetzen 
soll und mit dem Computer verbunden werden kann. Ich habe bereits einen 
PDA zuhause und bin auch sehr damit zufrieden. Aber ich möchte eben in 
die Microkontrollerwelt einsteigen und lernen, wie man eine Verbindung 
zum PC herstellt.

Noch eine Frage: Worauf können die Texte gespeichert werden? Brauche ich 
zusätzliche Speicherbausteine?

von Franko P. (sgssn)


Lesenswert?

Manche Pics haben EEPROM, ist aber eher wenig. Externes EEPROM oder 
Flash ist da wohl notwendig.


Gerhard

von Georg S. (georgschmied)


Lesenswert?

Kennt jemand vielleicht gute Bücher, in welche ich mich einlesen kann?

von let (Gast)


Lesenswert?

Viel wichtiger als die Wahl des Controllers erscheint mir die Frage
nach dem LCD und vor allem der dazugehörigen Touch-Folie.

Wie groß soll das denn werden? Es gibt von Batron LCDs mit 128x128
Pixeln mit etwa 5-6cm Kantenlänge die sich noch gut per Software
handhaben lassen. Aber eine (hochauflösende) Folie? Wüßte ich jetzt
nicht wo man sowas bekommt.

Zum Speichern der Grafiken könnte man externe Flash-Speicher nehmen
oder gleich eine MMC Karte.

Doch ich würde mal sagen das das mehr als nur ein kleines Projekt
ist. Da kommt einiges an Arbeit auf dich zu ;-).

Ich programmiere übrigens häufiger PICs (fast täglich) als AVRs.
In der Firma Microchip, privat ausschließlich Atmel (oder NXP).
Und das liegt nicht etwa an einem fehlenden ICD.
Aber letztlich muß das natürlich jeder selbst entscheiden.
Brauchbar sind beide Familien.



 - Michael

von Peter D. (peda)


Lesenswert?

Georg Schmied wrote:

> Ich bin ein Anfänger, der noch keine Erfahrung mit Mikrocontrollern hat.

...

> Einen kleinen "PDA", mit dem man folgendes kann:
>
> Texte verfassen/anzeigen(Punkt-Matiry Display)/speichern
> Texte an Computer übertragen bzw. vom Computer laden (am besten via USB)

Dann scheint mir das aber mehrere Nummern zu groß zu sein.

Die meisten hier haben wesentlich kleiner angefangen.
Versuch z.B. erstmal, ein Textdisplay anzusprechen, ehe Du ein 
Grafikdisplay nimmst.
Vorher die Grundlagen (LEDs blinken, Schalter abfragen, entprellen, 
Uhrzeit, Datum zählen usw.) lernen wäre auch nicht schlecht.


USB ist auch kein Einsteigerprojekt. Es gibt natürlich MCs mit 
eingebautem USB-Bootloader (AT89C5130, AT89C51SND1), aber die meisten 
nehmen lieber die UART (mit FTDI-Chip oder externem 
USB-RS232-Converter).


Für den Einsteiger sind die 8051 (z.B. AT89C51ED2) mit eingebautem 
UART-Bootloader am einfachsten, denn man braucht keinerlei 
Programmiergerät.
Einfach mit dem PC verbinden und das Programm runterladen.


Der AVR ist sehr leicht zu erlernen und auch in Assembler gut zu 
beherrschen.
Hier im Forum ist er der Favorit (die meiste Hilfe zu AVRs).
Etwas nachteilig ist, daß er keine Interruptprioritäten hat. Daher nehme 
ich am liebsten die 8051-Familie (2 .. 4 Interruptprioritäten).


Für den PIC kann ich mich nicht erwärmen.
Da ich viel mit Interrupts arbeite, mag ich es, wenn die 
Interruptquellen ihren eigenen Interruptvektor haben.
Beim PIC muß man dagegen immer erst austesten, wer denn nun den 
Interrupt ausgelöst hat und das kann Zeit kosten, die ja im Interrupt 
kostbar ist.
Bei den PICs haben auch nur die PIC18xx 2 Interruptprioritäten und nen 
Softwarestack.
Auch gibt es zwischen den einzelnen PICs sehr große Unterschiede, so daß 
es schwer ist, Programme auf andere PICs anzupassen.
Es klang ja schon an, daß der PIC mehr durch die Samplevergabe als durch 
die inneren Werte zu Popularität gekomen ist. Das war früher mal bei 
Chippreisen von 100,-DM ein Argument, aber heutzutage ist oft ein 
Big-Mac teurer als zwei MCs.


Peter

von Dieter Werner (Gast)


Lesenswert?

> .... PIC18xx 2 Interruptprioritäten und nen Softwarestack.

Das mit den Prioritäten ist richtig aber der Stack ist immer noch 
Hardware (allerdings 32 Level).

Erst die 16 Bit Controller PIC24 und die dsPIC haben 7 frei wählbare 
(und noch einige feste) Interruptprioritäten und für jede Quelle 2 
Interruptvektoren zwischen denen man durch Setzen/Löschen eines Bits 
umschalten kann.
Da gibts dann auch den Softwarestack, Barrelshifter, ADC mit eigenem 
FIFO, einige DMA Kanäle usw.

von Georg Schmied (Gast)


Lesenswert?

Natürlich fange ich gerade erst an und habe dieses Projekt nicht für den 
Anfang, sondern für irgendwann danach geplant. Ich werde mich natürlich 
erst mit der Materie tiefgehend beschäftigen. Ich muss nur wissen, mit 
was ich anfangen soll.
Wie aus den Antworten herausgeht, sind wohl die AVR - Controller besser 
für mich geeignet. Gibt es noch irgendwas, das für PIC spricht? Wie 
schaut es mit der USB Tauglichkeit aus? Ist der Aufwand da für PIC 
kleiner?

Nochmals Danke für die Antworten!!!

von Schoasch (Gast)


Lesenswert?

Der Aufwand bei PICs und USB.. hmm. Entweder du verwendest einen FTGI 
Chip, dann ists egal, ob es ein PIC oder AVR ist.
Wenn du das interne Modul verwenden willst, dann brauchst du nur 2 
Widerstände dazu und etwas nachlesen... und die Source-Datei von 
Microchip umschreiben.
OK sooo einfach ist es dann auch nicht, aber mit etwas hineinlesen, kann 
man dann gleich mal etwas damit anfangen:

http://www.sprut.de/electronic/interfaces/usb/usb.htm

mfg Schoasch

von Marvin (Gast)


Lesenswert?

Ich würde dringend die Verwendung eines FTDI (FT232) für die Anbindung 
an USB empfehlen. Als Anfänger bekommt man wohl kaum die Initialisierung 
der USB-Funktionalität hin, die "alte" serielle Schnittstelle ist sowohl 
PC-seitig als auch µC-seitig wesentlich einfacher zu handhaben.

von MSB (Gast)


Lesenswert?

Von Atmel gibts einen USB Key Evalboard (30Eus) den USBkey mit AT1287 
oder ähnliches samt quelltext

von let (Gast)


Lesenswert?

Da wirst du wohl eine einsame Entscheidung treffen müssen.
Vielleicht hilft es wenn du dir mal die Tutorials (AVR, PIC)
ansiehst. Du könntest auch mal nach Beispielcode/Schaltungen
suchen z.B. für Text- und Grafik LCDs (glcd).
Dazu wäre es auch hilfreich wenn du dich zumindest tendenziell
für eine Programmiersprache entscheiden könntest.

Die Unterschiede zwischen den beiden Typen sind so gering, das
du eigentlich nichts falsch machen kannst. Du kannst also danach
gehen welche Umgebung dir sympatischer ist.

 - Michael

von Georg Schmied (Gast)


Lesenswert?

OK, ich werde noch intensiv im Netz nach Informationen und Tutorials 
Ausschau halten. Ich glaube nun, dass vieles mir klarer geworden ist.
Danke nochmal für alle Beiträge!

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.