Welche Mikrocontroller kann ich kaufen, um eine solche USART-, UART-, RS232-, USB-, SPI-, I2C-, TTL-Kommunikation zu lernen? [geschlossen]

Ich habe großes Interesse daran, eine solche USART-, UART-, RS232-, USB-, SPI-, I2C- und TTL-Kommunikation zu lernen. Ich finde einige detaillierte Erklärungen zu den oben genannten Mitteilungen in diesem Link

Und ich möchte ein tiefes Verständnis dafür haben, indem ich es mit einem Mikrocontroller lerne. Heutzutage gibt es viele Arten von Mikrocontrollern. Und ich bin sehr verwirrt, welchen ich wählen soll, um das zu lernen, da ich ein Neuling in Sachen Mikrocontroller bin.

Aber ich finde diesen Link und denke, dass dieses Arduino-Starterkit ausreichen würde, um die Kommunikation über das Protokoll zu lernen. Habe ich recht? gibt es eine günstigere? Wenn nicht, empfehlen Sie mir bitte das Richtige.

Gibt es auch gute Referenzen, um die Kommunikation über die obigen Protokolle zu lernen?

Danke schon mal im Voraus.

Für alle außer USB sollte Arduino in Ordnung sein und Google als Lernressource. USB ist deutlich komplizierter.
@pjc50: Vielleicht ist USB das nächste Lernstadium?
Ein Problem bei einer solchen Frage ist, dass Sie 10 Personen fragen und 10 verschiedene (gültige) Antworten erhalten könnten. Das Obige sieht für den Anfang in Ordnung aus, aber eine offensichtliche Sache ist, dass es keine Geräte gibt, mit denen man sprechen kann. Sie möchten wahrscheinlich einen TTL-zu-RS232-Adapter und ein paar SPI / I2C-Geräte wie Speicher / Temperatursensoren / was auch immer interessant klingt. Es lohnt sich wahrscheinlich, über ein paar reale Projekte nachzudenken, die Sie vielleicht interessant finden, und zu sehen, welche Teile nützlich wären.
Der PIC 18F2550 hat alles, wonach Sie gefragt haben.
Thread zur Auswahl der Mikrocontroller (μC)-Plattform. Alle im OP erwähnten Kommunikationsbusse sind auf vielen μC verfügbar. Viele zur Auswahl. Wenn Sie ein tieferes Verständnis erlangen möchten, halten Sie sich von Arduino fern.

Antworten (2)

Ich habe das Gefühl, dass das Problem, das Sie haben, darin besteht, dass Sie sich nicht sicher sind, wo Sie anfangen sollen, und dass Sie etwas Hilfe benötigen, um die notwendigen Recherchen selbst durchzuführen, damit Sie sich diese von Ihnen aufgelisteten Protokolle selbst beibringen können.

Für mich scheint es drei Schritte zu geben, um ein relativ einfaches Protokoll (einfach im Vergleich zu Protokollen wie Bluetooth) gut zu verstehen und es in MCUs zu implementieren. Ich werde hier allgemein bleiben, aber ich werde versuchen, Ihnen so gut wie möglich einige gute Richtungen aufzuzeigen, damit Sie mit Ihrer eigenen Forschung beginnen können.

1: Lernen Sie das Protokoll

Lesen Sie mehr über das Protokoll auf einer niedrigeren Ebene; welche Signale beteiligt sind, die Logik, Timing-Anforderungen, wie die Daten übertragen werden usw. Dies scheint beispielsweise ein großartiger Artikel zu sein, um sich selbst beizubringen, wie UART auf niedriger Ebene funktioniert:

Cytrons UART-Tutorial .

Finden Sie Artikel wie diesen für alle Protokolle und verstehen Sie wirklich, was an den Pins einer MCU passiert.

2: Forschungsdatenblätter zu MCUs

Finden Sie eine MCU, die dieses Protokoll unterstützt, und lesen Sie das Datenblatt. Digikey ist ein großartiges Tool, um MCUs und die damit verbundenen Datenblätter zu finden. Zum Beispiel (ich bin selbst ein AVR-Mensch) wähle ich den allgegenwärtigen ATmega328p. Die Suche danach in Digikey ergibt die verschiedenen Pakete für diesen Chip. Ich wähle DIP ( ATmega328p DIP ).

Hier können Sie das Datenblatt der MCU öffnen. In Abschnitt 20 erläutert das Datenblatt seine USART-HW (Sie können es so konfigurieren, dass es sich asynchron verhält, um ein einfacher UART zu werden). Hier müssen Sie sich Zeit nehmen und recherchieren, wie Sie die verschiedenen Register einstellen, um den UART zu konfigurieren, und wie Sie im Allgemeinen eine Schnittstelle zur HW herstellen.

Schauen Sie sich das HW-Design des Protokolls selbst an:

Geben Sie hier die Bildbeschreibung ein

Die fettgedruckten HW-Teile, z. B. UBRRn, UDRn, UCSRnA, UCSRnB und UCSRnC, sind Register, zu denen Sie eine Schnittstelle herstellen, um die USART-HW zu verwenden. Beispielsweise können Sie das Register UCSRnC verwenden, um zu steuern, ob der USART synchron oder asynchron funktioniert oder nicht!

3: Implementieren Sie es tatsächlich

Schnappen Sie sich die MCU Ihrer Wahl, bauen Sie eine Stromversorgungsschaltung und verwenden Sie sie tatsächlich! Oder, viel bequemer, verbinden Sie sich selbst mit Arduino mit den Registern; Arduino verwendet übrigens tatsächlich den ATmega328p. Die Verwendung von Arduino mit seinen High-Level-Funktionen wird Ihnen das betreffende Protokoll nicht beibringen. Aber wenn Sie tatsächlich mit den Registern in der unteren Ebene herumspielen, werden Sie tatsächlich beginnen, die Nuancen und die damit verbundenen Feinheiten zu verstehen.

Ja, es ist viel Arbeit, aber es lohnt sich; Es vermittelt Ihnen auch unschätzbare Fähigkeiten, die in EE nützlich sind.

TL;DR: Lies viel

Viel Glück.

Es ist bedauerlich, dass dies geschlossen ist, ich glaube, das OP war dort, wo ich vor einer Weile war. Sie sehen, es gibt Dokumente und Diagramme usw., aber Sie brauchen echte Hardware und etwas spezifische Hardware + Tutorial, dem man folgen kann. Die letzte Option Ich erkunde jetzt minix3 und sehe, wie ihre Unterstützung für diese Protokolle geschrieben ist, da minix3 nicht sehr groß ist. Insgesamt gibt es für (wie mich) einen Programmierer einen großen mentalen Modellwechsel, um Code für einige echte Dinge zu schreiben
Ein ausgezeichneter Weg wäre etwas für ein Arduino oder das Himbeer-Pi und eine Anleitung, die einen durch das Schreiben eines einfachen SPI-Treibers ermutigt ... bisher habe ich so etwas nicht gefunden.

Das Problem ist, dass jede Familie / Marke von Micros in der Art und Weise, wie sie funktionieren, unterschiedlich ist, jede Programmiersprache auch anders ist und Sie manchmal Dinge für verschiedene Aufgaben anders machen müssen.

Es gibt also keine richtige Antwort - zum Erlernen der Grundprinzipien reicht fast jedes Mikro mit einem vernünftigen Entwicklungskit / einer angemessenen Umgebung aus. Wenn Sie jedoch etwas Bestimmtes im Sinn haben, wie zum Beispiel zu lernen, wie man Atmel-Mikros in C programmiert, dann sollten Sie diesen Weg besser einschlagen.