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
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.
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.
ATMega16 in DIL40 kann das locker ...
Uhrenquarz dran, das sollte locker ausreichend genau sein Für die Punktzählung wirds n Taster an normalem IO tun, Int eher nebensächlich
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
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
Hallo Bagorolin, nur interessehalber: In welcher Fachrichtung und in welchem Bundesland machst Du Dein ABI? Danke!
viel spaß, wenn dein lehrer sich am hervorragenden pagerank dieser seite erfreut und deinen beitrag dank bester hinweise in kürzester zeit finden wird.
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
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...
>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.
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.
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.
sinnlose flames... aha. das kannst du dann ja auch deinem lehrer sagen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.