Möchten Sie EE-Wissen anwenden – welchen Mikroprozessor würden Sie empfehlen?

Hier ist meine Geschichte: Ich habe meinen Abschluss in Elektrotechnik gemacht, ABER ich habe nicht viel Erfahrung mit Schaltungen (OMG, oder? O_O). Der größte Teil meiner Ausbildung befasste sich mit Kommunikationstheorie, daher fühle ich mich wirklich unvollständig und möchte mein Wissen irgendwo anwenden und anfangen, etwas auf einem Mikroprozessor zu machen. Es wäre auch eine gute Fähigkeit, sich für die Belegschaft zu entwickeln. Haben Sie irgendwelche Empfehlungen, mit welcher Art von Mikroprozessor ich arbeiten sollte? Bild? Arduino? Andere? Was wird am meisten auf dem Markt und für Produktionszwecke verwendet? Spielt es eine Rolle? Ich höre, Arduino hat eine sehr gute Community für Hilfe, aber ich höre, es ist mehr für "Hobbyisten"? Ist das unbedingt schlecht? Jeder Einblick wird sehr geschätzt. Danke!!

PICs sind Mikrocontroller. Hier ist eine gute Frage , die den Unterschied zwischen den beiden zeigt.
Ich denke, Arduino ist in Ordnung. Später können Sie von der Arduino-Softwareumgebung zum nackten AVR und einem C-Compiler wechseln, wie Mikrocontroller in der Industrie verwendet werden.

Antworten (11)

Hey, tolles Timing! Diese Woche habe ich EE-Studenten für eine Praktikumsstelle interviewt. Hier ist, was ich mit 100%iger Sicherheit sagen kann: Studenten der großen Schulen, sogar Junioren, die an ihrem Bachelor arbeiten, haben fast NULL nützliches Wissen. Ein Typ, den ich interviewt habe, konnte den Wert für einen Strombegrenzungswiderstand für eine LED nicht berechnen. Ja, das ist es, was dir 30.000 $/Jahr für eine Ausbildung einbringen. Der Punkt ist, jede praktische Erfahrung oder jedes Wissen, das Sie haben, wird Sie über Ihre Klassenkameraden stellen, wenn es darum geht, einen Job zu bekommen! Im Ernst, es ist so schlimm da draußen.

Okay, zu deiner Frage. Aus Arbeitgebersicht spielt es keine Rolle, welches uC Sie verwenden. Die Chancen stehen gut, dass, was auch immer Sie wählen, es wird falsch sein. Wichtiger ist, dass die Erfahrung und das Wissen, das Sie sammeln, auf die meisten uCs zutreffen. Davon abgesehen, bleiben Sie bei den üblichen.

Die Microchip PICs sind mein am wenigsten Favorit. Die Hardware ist in Ordnung, aber das Schreiben von Software für sie ist eine große Qual. Ich habe sie in der Vergangenheit benutzt und nie wieder. Ich habe auch das Cypress pSoC 1 verwendet. Es war anfangs nett, aber ihre Software ist fehlerhaft und die Dokumentation ist sehr mangelhaft. Ein aktuelles Projekt von mir verwendet einen MSP430, aber es ist noch zu früh, um zu sagen, wie gut er funktioniert. Die TI ARM-basierten uCs sind auch nett, könnten aber in diesem frühen Stadium zu viel für Sie sein.

Frage: Würden Sie auch CS-Studenten in Betracht ziehen, wenn sie einige Kenntnisse mit eingebetteten Systemen angewendet hätten (auch bekannt als mit Schaltkreisen/Low Level C, Montage/ gearbeitet und mit Mikrocontrollern und dergleichen gearbeitet hätten?
In diesem Fall suchen wir jemanden mit einschlägigen Kenntnissen oder Erfahrungen (Micro's, C/Asm, VHDL, Löten usw.). Es spielt keine Rolle, ob sie CS, EE sind oder an einem Programm für freie Künste arbeiten.
Hey, ich weiß , wie man den Strombegrenzungswiderstand einer LED berechnet! Wohin schicke ich meinen Lebenslauf?
Ich sage den Leuten, dass das College Ihnen einen neuen Werkzeugkasten mit glänzenden neuen Werkzeugen gibt und Ihnen die Namen der Werkzeuge beibringt. Es ist dein erster richtiger Job, bei dem du herausfindest, welche Tools du wirklich brauchst und welche nicht, und herausfindest, wie du sie wirklich verwendest ... sowie all die Tools, die du in der Schule nie gelernt hast.

Das msp430 hat einen sehr schönen Befehlssatz. Und Sie können derzeit ein msp430-Board zum Spielen für etwa fünf Dollar bekommen. ARM dominiert die Prozessorwelt, niemand ist auch nur in der Nähe, fast alles, was Sie verwenden, basiert auf ARM. Auch ein guter Anleitungssatz, viele Variationen sind für unter 50 $ zu haben, goto sparkfun. Der reduzierte Arm-Befehlssatz heißt Daumen und der erweiterte Daumen-Befehlssatz heißt Daumen2, und es gibt jetzt einen Kern, der nur Daumen2 ist (jede Daumen-Anweisung ist eins zu eins mit Arm-Anweisungen verknüpft, sodass es einfach war, die Arm-Anweisung einfach in die einzufügen Pipe, wenn eine Daumenanweisung gefunden wurde, aber Daumen2 änderte, dass sie einen neuen Kern erstellten). ST, den ich mehr mag als LPC und vielleicht die anderen Arm-basierten Mikros, hat jetzt ein Value Line Discovery Board für etwa 12 Dollar (Sie wollen die 12-Dollar-Stm32s, nicht die 7-Dollar-Stm8s oder was auch immer, das ist ein völlig anderer Prozessor, hat ein 6502-Gefühl, ich habe die falschen gekauft, aber noch nicht damit gespielt) . Der PIC-Befehlssatz, der alte/echte (nicht der mips PIC32) ist sehr lehrreich und eigentlich elegant, aber für Compiler schrecklich, wird aus dieser Perspektive niemals msp430 oder Arm berühren. Mikrochip und Bild waren der Atmel AVR (Schmetterling und jetzt Arduino) seiner Zeit, aber "verstehen" ihn einfach nicht wirklich. Atmel „versteht es“ und seine Kunden sind sehr zufrieden und sehr loyal. Ich mag meine sam7 Armboards ziemlich. Der AVR-Befehlssatz ist schrecklich, aber das hat ihn nicht davon abgehalten, bei Hobbyisten wahnsinnig beliebt zu sein. Hängt davon ab, ob Sie Programmieren lernen möchten oder sich keine Gedanken darüber machen müssen. Wenn Sie nicht sehr viel in die Programmierung einsteigen möchten, ist das Arduino wahrscheinlich Ihre erste Wahl. Wenn Sie in die Programmierung einsteigen möchten, habe ich ein paar Emulatoren bei GitHub, Thumbulator, einen Thumb-Emulator und einen msp430. Sie können ein Gefühl dafür bekommen, was vor sich geht.

Meine Empfehlung ist, sich ein paar zu besorgen, viele verschiedene sind für unter 50 Dollar zu haben. sparkfun.com für viele von ihnen, direkt von TI für das ezusb (das 5-Dollar-Launchpad ist billiger, aber das ezusb hat zusätzliche Boards, 3 für 10 $). Auch direkt von TI (oder müssen Sie zu digikey/mouser gehen?) die Stellaris-Boards, die so vollgepackt sind, dass Sie nicht wirklich an die E / A gelangen, ohne Spuren zu schneiden. aber gleichzeitig viele Datenblätter zum Lesen und Verstehen sowie viel mehr Schaltpläne zum Lesen und Verstehen. Die Stellaris-Boards sind eher in der Kategorie unter 100 Dollar. Der 811 ist super einfach zu mauern, seien Sie vorsichtig.

knjn.com hat einige erschwingliche FPGA-Boards, Pluto, denke ich. Ich denke, alles, was Sie dafür brauchen, nachdem die Hardware kostenlos ist (von Xilinx oder Altera). Früher hatte Altera eine Modelsim-Version, aber ich bevorzuge Verilator und Icarus Verilog. Ich würde gerne mehr Zeit mit ghdl verbringen, aber ich weiß nicht genug, um es mit einem C-Prüfstand zu verbinden. Mit Verilator ist es ziemlich trivial, eine Testbank mit C zu bauen, mit der Sie Code/Treiber schreiben können, die später mit der Hardware kommunizieren oder auf der Hardware laufen können, je nachdem, was Sie machen ... auch hier wird davon ausgegangen, dass Sie ein gewisses Programmierinteresse haben ...Ich bin ein großer Fan von cyclicity-cdl.sf.net, einer Hardware-Designsprache, die ich für richtig gemacht halte. Es hat auch eine eigene, kostenlose Simulationsumgebung. Grundsätzlich können Sie Logikdesigns für etwa 50 US-Dollar erstellen, was auch immer das Board kostet. Oder wenn Sie die Hardware nicht kaufen möchten, können Sie mit allen kostenlosen Tools unzählige Designs erstellen. gtkwave ist dein Freund, wenn es darum geht, die VCD-Wellenformen zu betrachten, selbst mit Modelsim erstelle ich jetzt einfach eine .vcd und verwende den Viewer von gtkwave.

Ich fand Dinge wie das Decodieren von IR-Fernbedienungen mit einem IR-Empfänger (Radio Shack hatte sie früher, jetzt digikey oder mouser oder sparkfun), bit banging rs232, i2c, spi, Dallas One Wire (Dallas Semi ist jetzt Maxim). x10 usw. Wenn es einen Hobby- / Hackerbereich gibt, in dem Sie abhängen und löten und ein Oszilloskop verwenden können, wäre das wirklich nützlich. Zu lernen, Protokolle wie diese zu lesen und Ihre Logik/Software mit einem Oszilloskop zu debuggen, ist sehr nützlich (verwenden Sie nicht das Softwarepaket, mit dem das Oszilloskop es für Sie dekodieren kann, lernen Sie es auf die altmodische Weise).

Das Erlernen der Programmierung der verschiedenen Peripheriegeräte in den verschiedenen Mikrocontrollern (Timer, PWMs usw.) ist sehr lehrreich. lcd- und oled-displays usw. (stellaris oder arduino ist gut dafür).

Das mbed ist keine schlechte Plattform, abgesehen von den schmerzhaften blauen LEDs.

lattice hat die brevia für nicht viel geld und die mico8 passt dort glaube ich rein und ist in source form damit man es simulieren kann. Die Gitterwerkzeuge sind nicht so schlecht wie die anderen. Sie können also einen kleinen Mikrocontroller und Logik und Elektronik bekommen, wenn Sie danach suchen.

Das Hauptproblem bei Arduino und den ST-Primern lxpresso und einigen anderen ist der starke Wunsch, Sie in ihrer Sandbox festzuhalten. Der Arduino ist einfach zu löschen und neu zu programmieren und das Board zu übernehmen und die Sandbox aufzugeben, die anderen beiden sind es nicht. kauf sie nicht. Wo dies helfen oder schaden kann, was Sie zu tun versuchen, ist, all das "harte" Zeug in ein Paket oder eine API oder was auch immer zu verpacken, was es im Grunde vor Ihnen verbirgt. Und wenn Sie daran interessiert sind, dieses Protokoll (spi, i2c usw.) zu lernen oder wie man die Signale auf einem LCD wackelt, damit es funktioniert, oder einen Motor auf einfache oder harte Weise pwm. Vielleicht möchten Sie nicht an den Sandkasten gebunden sein. Gleichzeitig müssen Sie sich mit der Arduino-Sandbox nicht zu sehr mit der Programmierung befassen und können mehr Zeit damit verbringen, die Elektronik mit der Platine zu verdrahten und diese Schaltungen zu debuggen oder mit ihnen zu spielen.

Es gibt Orte, die 2 oder 3 Leiterplatten für etwa 50 US-Dollar verkaufen und den Adler verwenden. Ich denke, es ist eine Layout-Software, die Sie kostenlos herunterladen und verwenden können. Es lohnt sich wahrscheinlich, einige Layouts herunterzuladen und zu versuchen, selbst wenn Sie nicht bereit sind, irgendwelche Boards zu kaufen oder sogar eine Vorstellung von etwas haben, das Sie bauen möchten.

Zugegeben, Sie haben vielleicht immer noch ein College-Budget, und ich verstehe das, aber ich würde sagen, probieren Sie so viele dieser verschiedenen Plattformen aus, die Sie in die Finger bekommen können. Sie haben im Moment wahrscheinlich mehr Zeit als Geld, also können Sie sicherlich mit kostenloser Software arbeiten, die viel von diesem Zeug simuliert, und Sie können auch die Datenblätter und Schaltpläne sowie Software- und Hardware-Tools für die verschiedenen Boards recherchieren, bevor Sie den Abzug zum Kauf betätigen.

Die wirkliche Ausbildung, die Sie hier kennen müssen, ist das Lesen von Datenblättern und Schaltplänen. Und Sie wollen nicht nur Datenblätter von einem Anbieter lesen, einige sind gut, andere schrecklich, und in der realen Welt mit einem richtigen Job in diesem Bereich müssen Sie sich mit dem Guten und dem Schlechten auseinandersetzen. Die anderen Fähigkeiten sind Löten und das Verwenden des Oszilloskops, Löten, das Sie sich leisten können (naja, ein gutes Bügeleisen, wahrscheinlich noch nicht), ein Oszilloskop, wie Sie es wirklich bei einer Arbeit verwenden würden, nicht erschwinglich. Wenn Sie diesen ersten Job bekommen, nehmen Sie sich so viel Zeit wie möglich. Beobachten Sie, wie andere Ingenieure es verwenden, da sie alle ihre eigene Art haben, durch die Menüs und Funktionen zu navigieren. Debugging ist entscheidend für Ihre Karriere. Wenn Sie zur Logik neigen, machen Sie sich ein paar Stunden mit den Xilinx- und Altera-Tools sowie den anderen, die ich erwähnt habe, und machen Sie sich mit dem Betrachten von Wellenformen auf Modelsim oder Gtkwave richtig vertraut. Die kostenpflichtigen Tools sind alle schrecklich, ungefähr die schlechteste Software, die man sich vorstellen kann, und kosten aus irgendeinem Grund Zehntausende. (und die Software wird jedes Jahr/jede Version schlechter). Aber dieser Schmerz ist der Schlüssel zu diesem Karriereweg, „kenne deine Werkzeuge“.

Tut mir leid, aber: TL;DR.

Jeder Mikrocontroller hat sein Reich, in dem er wirklich gut gedeihen kann. Zum Beispiel ist der MSP430 sehr gut für niedrige Leistung geeignet. Wenn Sie sich wirklich auf die gesamte Industrie vorbereiten möchten, müssen Sie alles lernen, was Sie in die Finger bekommen können. Wenn Sie also auf eine Situation stoßen, kennen Sie den besten Mikrocontroller.

Ardunios sind keine Mikrocontroller, sie sind im Wesentlichen ein Entwicklungsboard, das um Atmel AVR als Mikrocontroller herum aufgebaut ist. Ardunios sind sehr hobbyorientiert, was für den Anfang nicht schlecht ist, aber Sie müssen mehr über den verwendeten Atmel erfahren, wenn Sie in der Industrie irgendetwas damit machen wollen.

Und wenn Sie eine bestimmte Aufgabe haben, die Sie angehen möchten, erstellen Sie eine neue Frage, in der Sie angeben, was Sie tun möchten, und wir können Ihnen dabei helfen, festzustellen, worauf Sie beim besten Mikrocontroller achten müssen.
+1 für Atmel AVR. Sie werden an vielen Universitäten für die Lehre eingesetzt.
@Polemon und so sind PICs und MSP430s.
@Kellenjb Ich weiß nichts über PICs und MSP430s an Universitäten. Mine verwendete Atmel AVRs ohne Prototyping-Board, nur Steckbretter. Ich benutze MSP430 zu Hause, um damit herumzuspielen. Ich habe jedoch nie PICs verwendet.
@Polemon Ich sage, dass sie verwendet werden. Ich habe an einer Universität gelehrt, die PICs im Mittelpunkt hatte, und an Schulungsmaterial für MSP430s gearbeitet
@Kellenjb: ¯\(°_o)/¯
@polemon - Ausgezeichneter Kommentar. Die muss man sich merken.

Sie sollten den richtigen Mikrocontroller/Mikroprozessor für die jeweilige Aufgabe verwenden.

Wählen Sie ein Projekt und dann Ihren Prozessor aus.

Ich habe auf Atmel, PIT, Microchip und TI programmiert, und mir persönlich gefällt die IDE von TI am besten. Sie haben viel Mühe darauf verwendet, ihre Mikrocontroller so benutzerfreundlich wie möglich zu gestalten. Ganz zu schweigen von ihrer Dokumentation und Tutorials, die weit über dem Durchschnitt liegen. Versuchen Sie, ein MSP430-Entwicklungskit zu erwerben. Es ist ein Mikrocontroller mit einer anständigen Menge an Speicher und Rechenleistung, er verfügt über Mehrkanal-A/D- und D/A-Wandler und wird sogar mit einem integrierten 2,4-GHz-Transceiver zum Experimentieren mit drahtlosen Netzwerken geliefert. Das Entwicklungskit wird mit 2 MSP430-Modulen, einem USB-Programmierer und einem Batteriepack geliefert und kostet weniger als 100 US-Dollar.

Das muss ich mir mal anschauen!

Microchip ist Marktführer bei 8-Bit-MCUs, sodass Sie beim Lernen nichts falsch machen. ARM Cortex-Geräte ersetzen 16-Bit- und 8-Bit-Geräte in vielen Anwendungen, daher ist es auch hilfreich, sich mit ihnen vertraut zu machen.

Ich würde empfehlen, mit Arduino anzufangen, ein paar Projekte zu machen und sich dann selbst beizubringen, wie man den AVR ATMega programmiert. Die zwei Gründe für die Verwendung von AVR sind:

  1. riesiges Online-Support-Netzwerk zwischen AVR-Freaks, Arduino-Foren, SparkFun-Foren und Adafruit-Foren
  2. Kostenlose Open-Source-Toolkette (im Gegensatz zu PIC AFAIK)

Ein gutes Gerät, das ich bekommen kann, ist der Bus Pirate, der als ISP-Programmierer für AVR-Chips arbeitet und viele andere Dinge tut: http://dangerousprototypes.com/bus-pirate-manual/

Ein großartiges erstes Projekt ist der Bau eines LED-Arrays. Beginnen Sie mit einem Arduino-Prototyp und wiederholen Sie ihn dann mit einem AVR ATtiny-Chip (viele Tutorials verfügbar).

Ich würde stark argumentieren, dass Sie Ihre Erfahrung in C beginnen sollten, nicht in Assembler. Es hat viele Vorteile, unter anderem, dass es viel einfacher ist, Ihre Erfahrung auf einen neuen Prozessor zu übertragen. Wenn Sie sich für Assembler entscheiden, sollten Sie einen guten Grund haben, die zusätzlichen Schmerzen auf sich zu nehmen (in manchen Fällen kann es vernünftig sein).

Sie sollten in der Lage sein, kostenlose Software-Tools in die Hände zu bekommen, um zu beginnen, wenn Sie nicht zu einem anderen Prozessor wechseln. Es ist schwer vorstellbar, wie Sie mit einem Arduino beginnen und diese Erfahrung nutzen könnten, um andere Umgebungen in Betracht zu ziehen.

Wenn Sie etwas wollen, das von kostenlosen (wie in Freiheit) Tools gut unterstützt wird, ist die AVR-Linie von Atmel wahrscheinlich der richtige Weg. Eine funktionierende Entwicklungsumgebung ist in jeder größeren Linux-Distribution enthalten, Mac OS-Pakete sind leicht verfügbar, und ich wette, Windows-Pakete sind es auch.

Ich würde raten, dass Sie sich von Arduino fernhalten. Es ist eine Plattform, die entwickelt wurde, um Amateur-Computerprogrammierer anzusprechen, die LEDs zum Blinken bringen möchten, nicht angehende Ingenieure. Die Softwarebibliotheken und Entwicklungstools werden Sie davor bewahren, irgendetwas zu lernen (außer möglicherweise, wie man eine JVM unter Linux zum Laufen bringt ... viel Spaß!) und Ihnen dabei wahrscheinlich einige schlechte Angewohnheiten beibringen. Es ist auch sehr teuer. Es ist kaum mehr als ein AVR mit der Referenzschaltung im Datenblatt, einem fest angeschlossenen USB-Programmierer und einem Paar Header für "Shield" -Module, die aus irgendeinem Grund nicht in einem Abstand von 100 mil montiert sind, sodass Sie keine Verbindung herstellen können es zu einem Steckbrett. Natürlich gibt es ein Steckbrettschild, das Sie kaufen können, und es ist teuer.

Wählen Sie einen gängigen Mikrocontroller aus und verwenden Sie ihn für ein Projekt.

Es gibt viel zu diesem Thema in diesem Forum, ich denke, ich würde das avr:s empfehlen.

  • Bild
  • Avr
  • Arm

Wenn Sie etwas kommerziell Nützliches lernen möchten, würde ich mich nicht mit Arduino oder sogar PIC beschäftigen (obwohl PIC für einfache Jobs in kommerziellen Geräten auftaucht). Die Welt läuft heutzutage auf ARM, alles von Ihrer TV-Fernbedienung bis zu Ihrem Smartphone.

Was auch immer Sie tun, ich würde mit etwas beginnen, das Sie in C codieren können - ja, es gibt andere Sprachen, aber C ist immer noch allgemein beliebt und wird Ihnen zugute kommen.