Hallo,
ich bin noch ein Anfänger und denke gerade über ein neues Projekt nach.
Hierzu habe ich 3 Fragen:
1. Wie bestimmt ich die größe des Speichers und Prozessors vom
Controller?
2. Viele Hobbybastler schwören ja auf den Eigenbau vom Controller, da
sie ihn so optimal bestücken können. Was muss mindestens auf einem
Controller an Peripherkomponenten enthalten sein? Ich weiß, dass man
natürlich eine Stromversorgung, einen Busanschluss und eine CPU (z.b.
Atmega328) braucht. Auf den Platinen sind aber immer noch
Spannungsregler,...zu sehen. Wäre nett, wenn mir da einer einen groben
Überblick geben könnte, konnte dazu leider recht wenig finden.
3. Gibt es ein Maximum von I/Os, die ich auf einem Controller verbauen
kann?
Angenommen ich will eine 10x10 LED-Matrix nicht multiplexen oder durch
Shiftregister steuern, sondern wirklich jede LED einzeln. Ginge das und
wenn ja warum/warum nicht und wo ist die Grenze bzw. durch was wird sie
definiert?
Bin für jede Hilfe dankbar.
Grüße
golther schrieb:> 1. Wie bestimmt ich die größe des Speichers und Prozessors vom> Controller?
Indem du ins Datenblatt schaust.
> 2. Viele Hobbybastler schwören ja auf den Eigenbau vom Controller, da> sie ihn so optimal bestücken können. Was muss mindestens auf einem> Controller an Peripherkomponenten enthalten sein? Ich weiß, dass man> natürlich eine Stromversorgung, einen Busanschluss und eine CPU (z.b.> Atmega328) braucht. Auf den Platinen sind aber immer noch> Spannungsregler,...zu sehen. Wäre nett, wenn mir da einer einen groben> Überblick geben könnte, konnte dazu leider recht wenig finden.
Eigenbau welcher Controller? Was soll der Controller können? Welche
Platinen?
> 3. Gibt es ein Maximum von I/Os, die ich auf einem Controller verbauen> kann?
Was für ein Controller?
golther schrieb:> Wie bestimmt ich die größe des Speichers und Prozessors vom> Controller?
Datenblätter und "parametrische Suche" bei den Herstellern der µCs
> 2. Viele Hobbybastler schwören ja auf den Eigenbau vom Controller, da
Huch, meinst Du nicht eventuell "Eigenbau von Entwicklungsboards",
sprich den Platinen? ;-)Dann bekommt man eben genau das (und nur das)
was man braucht.
> 3. Gibt es ein Maximum von I/Os, die ich auf einem Controller verbauen> kann? ...> wo ist die Grenze bzw. durch was wird sie definiert?
Im wesentlichen duch die Anzahl der Pins, d.h. der Gehäuse-Größe, die Du
verarbeiten kannst. Sagen wir mal so, ein AVR-Tiny im Dip8 Gehäuse kann
man gut verarbeiten und hat max. 6 IOs (+Vcc+Gnd), ein moderner Core7 >>
1000 Pins und der kommt im nicht ganz so bastlerfreundlichem BGA daher.
Dazwischen gibt's so fast alles.
golther schrieb:> 1. Wie bestimmt ich die größe des Speichers und Prozessors vom> Controller?
Das hängt davon ab, was die Anwendung machen muss. Dazu gibt es
Erfahrungswerte. Die Ansteuerung eines Grafik-LCD braucht z.B. mehr
Speicher als eine LED blinken lassen. Wenns das Projekt ein
Einzelstück/Prototyp ist im Zweifel lieber einen größeren Controller
nehmen. Die Kosten halten sich ja in Grenzen.
> 2. Viele Hobbybastler schwören ja auf den Eigenbau vom Controller, da> sie ihn so optimal bestücken können. Was muss mindestens auf einem> Controller an Peripherkomponenten enthalten sein? Ich weiß, dass man> natürlich eine Stromversorgung, einen Busanschluss und eine CPU (z.b.> Atmega328) braucht. Auf den Platinen sind aber immer noch> Spannungsregler,...zu sehen. Wäre nett, wenn mir da einer einen groben> Überblick geben könnte, konnte dazu leider recht wenig finden.
Ein Spannungsregler gehört doch zur Stromversorgung. Wenn die Schaltung
von außen schon mit der richtigen Spannung versorgt wird, brauchst Du
keinen, ansonsten schon. Welche Peripherie Du sonst brauchst, hängt nur
von der Anwendung ab. Wenn das Board nur eine LED blinken lassen soll,
dann muss darauf nur die Stromversorgung, der Mikrocontroller und die
eine LED, mehr nicht.
> 3. Gibt es ein Maximum von I/Os, die ich auf einem Controller verbauen> kann?> Angenommen ich will eine 10x10 LED-Matrix nicht multiplexen oder durch> Shiftregister steuern, sondern wirklich jede LED einzeln. Ginge das und> wenn ja warum/warum nicht und wo ist die Grenze bzw. durch was wird sie> definiert?
Jeder Mikrocontroller ("Prozessor") hat eine gewisse Anzahl an I/O-Pins,
beispielsweise 32. Dann kannst Du daran 32 LEDs anschließen, mehr nicht.
Wenn Du mehr haben willst, brauchst Du entweder einen größeren
Mikrocontroller oder zusätzliche Bauteile wie Schieberegister,
Multiplexer bzw. andere ICs, die ganz grob gesagt aus wenigen Pins mehr
Pins machen. Genau dafür sind sie da. Du kannst natürlich auch mehrere
Mikrocontroller auf ein Board bauen, allerdings ist das meistens nicht
sonderlich sinnvoll.
Aber es gibt ja Controller mit verschiedenen I/Os Anzahlen z.B. 8,32,52.
Kann ich also auf meinem Board (wenn ich es selber bau) beliebig viele
I/Os einbauen?
golther schrieb:> Kann ich also auf meinem Board (wenn ich es selber bau) beliebig viele> I/Os einbauen?
Überleg doch einfach mal. Was sollte Dich daran hindern?
golther schrieb:> Aber es gibt ja Controller mit verschiedenen I/Os Anzahlen z.B. 8,32,52.> Kann ich also auf meinem Board (wenn ich es selber bau) beliebig viele> I/Os einbauen?
Direkt hast Du erstmal soviele, wie der µC selber hat. Wenn Du mehr
brauchst, gibt es verschiedene Möglichkeiten, das zu erweitern (siehe
Fabian O.).
Die werden dann aber anders angesprochen wie die µC-eigenen, d.h. Du
musst dazu eine spezielle Software schreiben (eine Art Treiber), die den
I/O-Pin liest oder schreibt.
Gruß Dietrich
golther schrieb:
> Aber es gibt ja Controller mit verschiedenen I/Os Anzahlen z.B. 8,32,52.> Kann ich also auf meinem Board (wenn ich es selber bau) beliebig viele> I/Os einbauen?
Generell ja, aber was bringt dir ein Board mit 1000 I/Os wenn dein
Controller nur, sagen wir 16 I/Os besitzt?
Außerdem würde ich an deiner Stelle nicht mit 100 LEDs anfangen, wenn du
sie alle einzeln steuern willst, sondern mit wesentlich weniger. Z.B. 25
damit würde sich auch schon ein 5x5 LED Feld ansteuern lassen und du
kannst ein wesentlich handlichern Controller nehmen.
Ich persöhnlich bin mit dem ATMega32 sehr zufrieden und der hat 32 I/Os
(wobei man ein paar erst "freischalten" muss, da siebereits Intern
vergeben sind. Das lässt sich aber mit AVRStudio 4 sehr leicht
bewerkstelligen). Eine Hilfe hier ist vielleicht auch das AVR-Tutorial.
golther schrieb:
> 2. Viele Hobbybastler schwören ja auf den Eigenbau vom Controller, da> sie ihn so optimal bestücken können. Was muss mindestens auf einem> Controller an Peripherkomponenten enthalten sein? Ich weiß, dass man> natürlich eine Stromversorgung, einen Busanschluss und eine CPU (z.b.> Atmega328) braucht. Auf den Platinen sind aber immer noch> Spannungsregler,...zu sehen. Wäre nett, wenn mir da einer einen groben> Überblick geben könnte, konnte dazu leider recht wenig finden.
Wenn du ein Entwicklungsboard oder generell eine Platine suchst dann
schau doch mal ins Equipment Tutorial von AVR
(http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment). Dort
findest du eigentlich alles notwendige. Als Spannungsversorgung
funktioniert aber auch ein altes PC-Netzteil, das liefert dir eine
geglätte und stabilisierte Spannungsversorgung mit vielen üblichen
Spannungswerten.
golther schrieb:
> 1. Wie bestimmt ich die größe des Speichers und Prozessors vom> Controller?
Wie bereits gesagt musst du dafür das entsprechende Datenblatt zu rate
ziehen. Für ein kleineres Anfangsprojekt sollte so ziemlich jeder
Speicher eines handelsüblichen Mikrocontroller ausreichen. Atmel bietet
auf diesem Gebiet eine große Auswahl an günstigen Mikrocontroller (z.B.
die ATtiny-Reihe oder die ATMega-Reihe)
Meine bescheidene Erfahrung zu Entwicklungsboards ist: Man gibt trotz
sorgfältiger Budgetierung mehr Geld aus, wenn man eins selber baut, als
wenn man sich z.B. ein myAVR gönnt. Das kann zwar erstmal nur
DIP-20-AVRs und hat fast keinen Port mit allen acht Pins, aber es läuft
gut und man kann sich mal einarbeiten. Mit dem myMultiProg-Board kann
man dann auch alles andere programmieren. Alternativ bastelt man sich
Adapter, die auf den myAVR-Sockel passen und oben einen für ATTiny,
ATMega8535 etc. haben /(quasi ein erweitertes MultiProg).
Die Platinen sind oft auch deshalb so "voll", weil sie für mehrere Fälle
gebaut werden. Mein myAVR-Board hat z.B. ungenutzte Kontakte für den
AVRUSBmkII-Programmer-Wannenstecker, den man aber prinzipiell auflöten
und benutzen könnte (statt der myAVR-Programmierplatine). Der Rest ist
aber, wie schon gesagt wurde, Spannungsregler (auf 6V, hat auch jede
meiner anderen Platinen) und das Zeugs für die Programmiererei: LEDs mit
Vorwiderstand an Masse, Summer, Steckports für Add-on-Module, Potis,
Taster, Port-Kontakte. Manche haben vielleicht noch einen Taktgeber für
LCDs? Es kommt immer drauf an, was sich der "Bauer" gedacht hat. Schau
dir mal verschiedene Entwicklungsboards an und zieh all das ab. Viel
bleibt nicht übrig.
Selber bauen heisst meistens auch: Mehrere Bauteile werden gegrillt, man
kauft zuviel vom einen, zuwenig vom anderen, das Falsche vom dritten,
muss zwischendrin umdisponieren, braucht plötzlich neue Platinen etc
etc. Dafür lernt man sehr viel steiler.
Was allerdings beim Eigenbau ein Vorteil ist: Man kann z.B.
Schraubkontaktleisten statt der üblichen Sockelsteckkontakte verbauen,
ist mechanisch etwas stabiler, wenn man das Zeug durch die Wohnung
trägt, und etwas Platz für Beschriftung ("Port A 0...7") ist auch
noch...
Was die 10x10 LEDs angeht: 2x10 Pins und AND-Bausteine? ;) Dann reicht
schon ein ATMega8535 oder ähnliches aus... oder aber Schieberegister und
ein ATTiny... wie Fabian O. schon meinte: "Genau dafür sind sie da."
Strom könnte dabei ein Problem werden...
Gruss,
Eingehirner
Zum multiplexen nehme ich immer 74hc595 weil die latchen.
Da kann man in aller Ruhe neue Daten reintakten ohne dass irgendetwas
flackert.
Oft liegt es auch am mangelnden Wissen über Bauteile und will alles mit
den Controller-Pins direkt regeln.
Das kommt mit der Zeit...