Forum: Mikrocontroller und Digitale Elektronik µC Auswahl für Projekt "Stadionanzeige" für mündliche Prüfung


von Bagorolin (Gast)


Lesenswert?

Hallo erstmal^^

Ich bin zukünftiger Abiturient und habe nächste Woche Montag meine 
mündliche Präsentationsprüfung in Computertechnik.

Ich habe bereits mit dem AT89C51ED2 gearbeitet und diesen mit Assembler 
programmiert.
In meiner Präsentation darf ich aber nicht mit einem µC arbeiten, den 
ich bereits in einem Projekt benutzt habe.
Also brauche ich jetzt eure Hilfe.

Das Thema lautet im konkreten:

"
Auswahl eines geeigneten Mikrocontrollers für das Projekt 
"Stadionanzeige"
  - Erarbeitung von Auswahlkriterien
  - Projektierung mit ausgewähltem Mikrocontroller
"

Soweit so gut. Jetzt zur Stadionanzeige und wie ich diese realisieren 
will:
Die Anzeige soll die Spieldauer in Form von MM:SS und von 2 Mannschaften 
je die Punkte in Form von PP anzeigen.
Das ganze soll mit 7-Segment Anzeigen (Gibt es da so Große?) oder per 
LED-Bänder erstrahlen.

So nun jetzt zu den Anforderungen:
 - Timer für die Spielzeit.
 - Die Fähigkeit Externe Interrupts bearbeiten zu können, um die Punkte 
hochzuzählen.
 - Genügend Register um die Punkte und die Minuten/Sekunden zu speichern 
(Punkte werden durch die Externe Interrupts hoch gezählt und Zeit wird 
nach Timer Interrupt runter gezählt).
 - Desweiteren hätte ich gerne (wenn ich richtig gerechnet habe ;)) min. 
26 Pins.
Auf die Zahl komme ich durch die 2 Signale für Externe Interrupts und 
pro Ziffer 4 Pins, die dann zu einem 7-Segment Wandler führen.
Die 2 Minuten und die 2 Sekunden Ziffern will ich per Multiplex Betrieb 
laufen lassen.

Wenn es µC bzw. µC-Platinen mit integriertem 7-Segment Wandler gibt, sag 
ich natürlich auch nicht Nein ;).

Am liebsten wäre es mir, wenn ihr mir direkt 2 Microcontroller empfehlen 
könnt, da ich ja einen Microcontroller "auswählen" soll und bei der 
Präsentation auch erklären soll, warum ich den oder den benutzt habe.

Ich hoffe ich habe euch genug Infos gegeben, Schreibkehler vermeidet ;) 
und ich hoffe, dass ihr mir helfen könnt!

Im voraus schonmal vielen Dank!
Grüße,
Bagorolin

von Bagorolin (Gast)


Lesenswert?

Jetzt habe ich doch noch was vergessen...

Also nur als Anmerkungen:
- Ich muss den µC nicht kaufen, sondern nur Vorstellen im Zusammenhang 
mit dem Projekt.
- Programmcode muss ich im Normalfall nicht zeigen, sondern nur PAPs.

von ST-uC (Gast)


Lesenswert?

Guck die mal die STM8S-Reihe von ST Mircoeletronics an 
(http://www.st.com/mcu/inchtml-pages-stm8s.html).

Lassen sich, dank fertiger C-Bibliotheken, sehr schnell programmieren. 
Zudem gibt es ein nettes Starterboard names STM8S Discovery 
(http://www.st.com/mcu/contentid-130-113-STM8S_DISCOVERY.html). Da ist 
neben dem µC, wo alle Pinne ausgeführt sind, auch direkt ein Programmer 
integriert ... das Board bekommt man für unter 10€ bei Farnell, wäre 
also auch noch günstig im Einstieg.

Einziger Nachteil: Es gibt nur bis 16k einen kostenlosen Compiler, 
danach wirds teuer.

von Landwirt (Gast)


Lesenswert?

ATMega16 in DIL40 kann das locker ...

von Landwirt (Gast)


Lesenswert?

Uhrenquarz dran, das sollte locker ausreichend genau sein
Für die Punktzählung wirds n Taster an normalem IO tun, Int eher 
nebensächlich

von Landwirt (Gast)


Lesenswert?

ATMega16 ... Compiler gratis

von avr (Gast)


Lesenswert?

Hallo Bagorolin,

für diese Aufgabe braucht der Controller nicht viel zu können.

Sinnvoll ist jedoch, wenn man das Programm einfach realisieren kann.

AVR geht mit Assembler, C oder Basic.

Für die Anzeige würde ich was fertiges nehmen mit der Möglichkeit
über Kabel etwas Abstand zu überbrücken.

Vorschlag:

Prozessor Mega8 :http://www.rn-wissen.de/index.php/RN-MiniControl

Anzeige Über I²C:http://www.rn-wissen.de/index.php/RN-Digi

Mit I²C sind (ohne Treiber) ca. 50 - 70 cm möglich, mit
Treiber auch mehr. Der Anzeige "sagt" man einfach, was sie anzeigen
soll. I²C ist hier beschrieben:http://www.rn-wissen.de/index.php/I2C

Softwarebeispiele sind ausreichend vorhanden ;)

Noch eine 5 Volt Versorgung und fertig.

avr

von Frank K. (fchk)


Lesenswert?

Bagorolin schrieb:

> Die Anzeige soll die Spieldauer in Form von MM:SS und von 2 Mannschaften
> je die Punkte in Form von PP anzeigen.
> Das ganze soll mit 7-Segment Anzeigen (Gibt es da so Große?) oder per
> LED-Bänder erstrahlen.

Das größte, was es an 7-Segment Anzeigen gibt, sind 20 cm Zeichenhöhe:

http://de.farnell.com/forge-europa/fem-7902r0300gw/led-display-200mm-rot-gem-anode/dp/1200619

Wenn das nicht reicht, musst Du die Segmente aus einzelnen LEDs 
zusammensetzen. Alternativ gibts auch die von Tankstellen bekannten 
elektromechanischen Anzeigen, wo Segmente per Elektromagnete 
sichtbar/unsichtbar gemacht werden.

http://www.pwm.com/index.php?id=70

Ich empfehle Dir, die Ansteuerung der Segmente mit Schieberegistern zu 
machen, d.h. für jede Stelle ein Schieberegister mit 8 Ausgängen (z.B. 
74HC595 oder mit integriertem Leistungstreiber TI TPIC6A596), jedes 
Segment an einen Ausgang eines Schieberegisters (ggf über 
Leistungstreiber, wenn das Schieberegister nicht genug Ausgangsleistung 
hat) und die Umwandlung Binär->7-Segment softwaremäßig zu machen.

Warum? Wenn Du multiplext, wird ja jede Stelle nur 1/n'tel der Zeit 
eingeschaltet. Dadurch erscheint sie dunkler. Um das auszugleichen, 
musst Du den Strom erhöhen. Bei großen Anzeigen brauchst Du ohnehin 
schon einiges an Saft, und wenn dann noch Multiplexing dazukommt, mußt 
Du Spannung und Strom unter Umständen soweit erhöhen, dass es unbequem 
wird, sprich Du keine geeigneten Treiber-ICs bekommst und das diskret 
aufbauen musst oder sonst wie größeren Aufwand betreiben musst. Außerdem 
kannst Du Dir EMV-Probleme durch die vielen Schaltvorgänge einhandeln. 
Plus: CPU-Belastung - die muss eben nur die Daten raustakten, und dann 
wars das bis zur nächsten Sekunde.

Plus: Du brauchst weniger Pins: Serielle Daten aus, Schiebetakt, 
Registertakt (übernimmt die Daten aus dem Schieberegister in das 
Ausgangsregister der genannten Bausteine, so wird die Anzeige nicht 
gestört, wenn Du neue Daten reinschiebst, sondern sie werden erst 
übernommen, wenn Du einen Puls auf dem Registertakt sendest).

Lies die Datenblätter zu den genannten Chips!

>
> So nun jetzt zu den Anforderungen:
>  - Timer für die Spielzeit.
>  - Die Fähigkeit Externe Interrupts bearbeiten zu können, um die Punkte
> hochzuzählen.

Müssen das unbedingt Interrupts sein, oder reicht es nicht auch aus, 
wenn Du jede Sekunde den Eingang abfragst. Wenn es Taster sind, denk an 
das Entprellen.

>  - Genügend Register um die Punkte und die Minuten/Sekunden zu speichern
> (Punkte werden durch die Externe Interrupts hoch gezählt und Zeit wird
> nach Timer Interrupt runter gezählt).

Ersetze Register durch Speicher.

> Am liebsten wäre es mir, wenn ihr mir direkt 2 Microcontroller empfehlen
> könnt, da ich ja einen Microcontroller "auswählen" soll und bei der
> Präsentation auch erklären soll, warum ich den oder den benutzt habe.

Das, was Du vorhast, kannst Du mit jedem 8 Bit Controller erreichen, das 
ist keine große Sache.

Drei sehr bekannte Hersteller sind Microchip (hier greifst Du Dir einen 
passenden Chip aus der PIC18 Serie), Atmel mit den AVRs und TI mit den 
MSP430. Alle Hersteller haben auf ihren Webseiten Bausteine-Übersichten 
und eine parametrische Suche, wo Du die Kriterien einstellst und die 
passenden Bausteine angezeigt bekommst.

Zur Auswahl noch ein paar Stichpunkte:
1. Bauteilekosten (wieviel kostet der Controller, was kommt sonst noch 
dazu)
2. Spannungsversorgung (welche Betriebsspannung braucht der Controller, 
was brauchen die anderen Chips -> wenn der Controller nur bis 3.6V geht, 
die TPIC6A596 Schieberegister aber nur mit 5V Logikspannung arbeiten, 
was hat das für Auswirkungen auf Schaltungsaufwand und Kosten?)
3. Entwicklungswerkzeuge (wie kommt das Programm in den Controller, 
kannst Du nachher per Einzelschritt durch Dein Programm durchsteppen, 
wie viele Pins gehen Dir durch den Anschluss des Debuggers/Programmers 
verloren)
4. Wie weit verbreitet sind die einzelnen Controller, wie lange sind die 
Chips erhältlich?
5. Wie ist die interne Architektur der Controller, wie viele interne 
Register etc; was kann das für einen C-Compiler bedeuten?

Das sind jetzt einige Anregungen. Du sollst ja Deine Hausaufgabe selber 
machen, sonst lernst Du nix.

fchk

von Wolfgang B. (et-tutorials) Benutzerseite


Lesenswert?

Hallo Bagorolin,
nur interessehalber: In welcher Fachrichtung und in welchem Bundesland 
machst Du Dein ABI?

Danke!

von Michael M. (Gast)


Lesenswert?

viel spaß, wenn dein lehrer sich am hervorragenden pagerank dieser seite 
erfreut und deinen beitrag dank bester hinweise in kürzester zeit finden 
wird.

von Peter D. (peda)


Lesenswert?

Bagorolin schrieb:
> In meiner Präsentation darf ich aber nicht mit einem µC arbeiten, den
> ich bereits in einem Projekt benutzt habe.
> Also brauche ich jetzt eure Hilfe.

Wieviel Zeit hast Du denn?
Mußt Du alles aufbauen + Schaltplan + Programm?


>   - Erarbeitung von Auswahlkriterien
>   - Projektierung mit ausgewähltem Mikrocontroller

Eigentlich nur die benötigte Pinzahl und einen Timerinterrupt sollte er 
haben.
Wenn Du hier fragst, wird Dir gerne der ATmega164 empfohlen. Der reicht 
dicke aus.

> Das ganze soll mit 7-Segment Anzeigen (Gibt es da so Große?) oder per
> LED-Bänder erstrahlen.

Große Anzeigen brauchen 8V oder mehr, da ist die Ansteuerung per 
Leistungstreiber am einfachsten, z.B. je Digit ein TPIC6C595.


>  - Timer für die Spielzeit.

Also einen Timerinterrupt.


>  - Die Fähigkeit Externe Interrupts bearbeiten zu können, um die Punkte
> hochzuzählen.

Eigentlich sollte man darlegen, daß das professoraler, nicht 
auszurottender Irrglauben ist. Externe Interrupts machen die Software 
nur unnötig kompliziert, da man noch entprellen muß.

Daher wird in der Praxis kein externer, sondern ein Timerinterrupt 
genommen, der kann das besser und einfacher.
Und wir brauchen ja eh einen für die Uhrzeit, der macht dann bequemer 
Weise das Tasten einlesen und Entprellen gleich mit.


>  - Genügend Register um die Punkte und die Minuten/Sekunden zu speichern
> (Punkte werden durch die Externe Interrupts hoch gezählt und Zeit wird
> nach Timer Interrupt runter gezählt).

Macht man üblicher Weise nicht mit Registern sondern im SRAM. Die 
meisten MCs haben mindestens 128Byte SRAM, das reicht dicke als Stack 
und für Deine Variablen.


>  - Desweiteren hätte ich gerne (wenn ich richtig gerechnet habe ;)) min.
> 26 Pins.

Der ATmega164 hat 32 IO-Pins, das reicht dicke.

> Wenn es µC bzw. µC-Platinen mit integriertem 7-Segment Wandler gibt, sag
> ich natürlich auch nicht Nein ;).

So verrückt ist heutzutage niemand mehr. Das ist ein indirekter 
Speicherzugriff auf die Tabelle mit den 7-Segment Mustern. Und für die 
wenigen Byte Code lohnt es sich nicht, einen extra Chip zu verschwenden.
Du hast bestimmt schon den Befehl "MOVC A,@A+DPTR" gesehen, der ist 
genau dafür gedacht.
Beim AVR gibts den LPM-Befehl, ist aber nicht so komfortabel, man muß 
den Index vorher noch auf den Tabellestart addieren.



Peter

von Daniel F. (danielosna)


Lesenswert?

Vor dem Lehrer hätte ich da keine Angst... wenn du zeigst dass du das 
hier Geschriebene auch verstanden hast würde ich diese Seite als Quelle 
angeben und da auch kein Geheimnis draus machen... Expertenbefragungen 
und die Erfahrungen anderer Techniker sind schließlich eine beliebte und 
auch anerkannte Quelle...

Die Frage ist ja nur: Wieviel versteht dein Lehrer von dem, was du 
sagst... Bei der Präsentation meines Praxissemesterberichtes (Technische 
Informatik) wusste mein Prof. nichtmal etwas mit Begriffen wie Spektrum, 
FM/AM oder Sendeleistung anzufangen...

Etwas Off-Topic aber zufällig in mehreren Physik-Klausuren RS 6. Klasse 
gesehen: Schalte über einer Reihenschaltung aus 2 Glühbirnen 3 weitere 
parallel...

laut Lehrer korrekte Anwort (Glühbirne hier mal mit "O"):

+ -------O-------O-------- -
      |      |
      |--O---|
      |      |
      |--O---|
      |      |
      |--O---|
Findet den Fehler ;)

70% der Schüler haben es übrigens genau wie oben gezeichnet und dafür 
volle Punktzahl bekommen...

von holger (Gast)


Lesenswert?

>Ich bin zukünftiger Abiturient und habe nächste Woche Montag meine
>mündliche Präsentationsprüfung in Computertechnik.

Was hat das mit uC zu tun?

>Ich habe bereits mit dem AT89C51ED2 gearbeitet und diesen mit Assembler
>programmiert.
>In meiner Präsentation darf ich aber nicht mit einem µC arbeiten, den
>ich bereits in einem Projekt benutzt habe.

Schwachsinnige Vorgabe. Sag einfach du kennst sie alle.

>Soweit so gut. Jetzt zur Stadionanzeige und wie ich diese realisieren
>will:

Ich dachte du musst? Was hat das mit "will" zu tun?

>Am liebsten wäre es mir, wenn ihr mir direkt 2 Microcontroller empfehlen
>könnt, da ich ja einen Microcontroller "auswählen" soll und bei der
>Präsentation auch erklären soll, warum ich den oder den benutzt habe.

Zwei uC? Lächerlich. Microchip PIC16, PIC18, PIC24, PIC30, PIC32.
Atmel AVR, MSP430, M16 Renesas, ARM7, ARM9, 8051 sonstwas, Propeller.
Jeder von denen kann das was du möchtest. Mit LED Treiber logo.

Bis nächsten Montag hast du nicht mal die Datenblätter dazu gelesen;)
Da schaffst du es auch nicht zu erklären warum dir empfohlen wurde
diesen uC zu nehmen. Selber gefunden hast du ihn ja nicht.

von Michael M. (Gast)


Lesenswert?

Daniel F. schrieb:
> Vor dem Lehrer hätte ich da keine Angst... wenn du zeigst dass du das
soso? dann lies doch das hier nochmal:

Bagorolin schrieb:
> Am liebsten wäre es mir, wenn ihr mir direkt 2 Microcontroller empfehlen
> könnt, da ich ja einen Microcontroller "auswählen" soll und bei der
> Präsentation auch erklären soll, warum ich den oder den benutzt habe.

denn er fragt nicht so:
"passt denn modell XXX. den hab ich ausgesucht, weil a), b), c)"
sondern so:
"ich kann/will das nicht machen, deswegen macht ihr mal"

und das ist keinem lehrer recht.

von Bagorolin (Gast)


Lesenswert?

Vielen Dank an dieser Stelle an "Frank K." und  "Peter Dannegger". Ihr 
habt mir echt geholfen. Und danke auch an die Anderen die sich ernsthaft 
bemüht haben, mir zu helfen.
Sinnlose Flames sind hier fehl am platz. An Michael M. und den ach so 
netten Holger sei hier nur gesagt:
Schaut euch mal den Thread an und zählt, wieviele µC mir empfehlen 
wurden.
Mir war klar, dass es hier so viele Unterschiedliche Meinungen geben 
wird, dass ich dennoch eine Auswahl habe, die ich selektieren werde. 
Jedoch muss ich jetzt nicht von Hunderten auswählen sondern nur von ein 
paar Dutzend.

>Ich habe bereits mit dem AT89C51ED2 gearbeitet und diesen mit Assembler
>programmiert.

Damit wollte ich nur sagen, dass verwandte Controller, also auch die AVR 
Familie mir wahrscheinlich leichter von der Hand gehen.

@wolfgang: Infos über mich, bekommt ihr nicht mehr, als ihr bereits 
bekommen habt. Das tut auch nichts zur Sache.

Und wieder back to Topic:
Ich muss nichts aufbauen und kein Programmcode schreiben. Ich muss das 
Problem nur Projektieren. Das heißt ein Schaltplan im Sinne von 
Blockschaltbild muss ich machen und PAPs.

Der µC sollte externe Interrupts bearbeiten können, damit ich mir die 
Option offen halten kann, ob per Knopfdruck hochgezählt wird oder ob 
nicht vlt per Lichtschranke oder ähnlichem ein Signal kommt.

@Peter: Wie soll ein Timerinterrupt solch ein Signal bearbeiten können?

Das wäre dann die einzigste Frage die ich noch habe. Ansonsten vielen 
Dank. Ab jetzt komm ich alleine klar.

von Michael M. (Gast)


Lesenswert?

sinnlose flames... aha.
das kannst du dann ja auch deinem lehrer sagen.

von Karl H. (kbuchegg)


Lesenswert?

Bagorolin schrieb:

> Der µC sollte externe Interrupts bearbeiten können, damit ich mir die
> Option offen halten kann, ob per Knopfdruck hochgezählt wird oder ob
> nicht vlt per Lichtschranke oder ähnlichem ein Signal kommt.

Das ist völlig sinnlos.
Ein externes Signal hat an dieser Stelle für einen µC die Dauer einer 
halben Ewigkeit.
Einen Interrupt bräuchtest du an dieser Stelle nur, wenn du den µC 
zwischenzeitlich zum Stromsparen schlafen legst und du keinen anderen 
Interrupt hast, der ihn wieder 'aufwecken' könnte.

> @Peter: Wie soll ein Timerinterrupt solch ein Signal bearbeiten können?

Indem im Timerinterrupt nachgesehen wird, ob sich der Eingangspegel 
geändert hat.
Wenn der Timerinterrupt alle 1 Millisekunden (und das ist für einen µC 
schon eine lange Zeit) auftritt, überwachst du den Eingang 1000 mal in 
der Sekunde. Das reicht dicke!

Tasten mit Interrupts zu bearbeiten verkompliziert die Sache nur und 
macht sie nicht einfacher. Auch wenn die meisten Newbies anderer Ansicht 
sind.

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.