Anschließen von Mikrocontrollern über GPIO

Dies ist wahrscheinlich eine grundlegende Frage für die meisten Leute hier, aber ich bin neu in der Elektronik und neige dazu, anhand von Beispielen zu lernen, also dachte ich, das wäre eine gute Frage!

Ich habe ein Board namens Nano Pi Neo Plus 2, das einem Raspberry Pi sehr ähnlich ist, nur mit einem kleineren Formfaktor und billiger - stellen Sie es sich als chinesische Nachahmung vor;)

Ich habe auch einen Arduino Nano.

Ich möchte boolesche Werte vom Nano Pi an den Arduino Nano senden, und nachdem ich verschiedene Kommunikationsprotokolle recherchiert hatte, entschied ich mich, einfaches GPIO zu verwenden und sie ein- und auszuschalten, um boolesche Werte wahr/falsch darzustellen.

Soweit alles gut - ich habe im Internet ein paar grobe Beispiele gefunden und alles miteinander verbunden. Leider habe ich dabei schon ein paar Arduino Nanos in die Luft gesprengt!

Hier sind meine Elektronikkenntnisse sehr begrenzt. Ich bin mir nicht sicher, ob ich Widerstände an den GPIO-Pins benötige (ich nehme an, ich tue es, um zu verhindern, dass sie explodieren), aber ich weiß nicht, ob sie hochziehen, herunterziehen und welche Werte haben sollen (keine Ahnung, wie man sie berechnet). .

Ich versorge beide Platinen mit einem einzigen 5-V-Netzteil. Ich habe die Spannung an Nano Pi GPIO-Pins gemessen und der Spannungsabfall betrug ~ 3,3 V.

Könnte mir jemand erklären, was mit der Schaltung nicht stimmt und welche Schritte Sie unternehmen würden, um die Widerstandskonfiguration und -werte zu ermitteln?

Dies ist das Steckbrett-Layout, das ich derzeit verwende. Ich konnte in Fritzing kein Nano-Pi-Teil finden, also habe ich ein Raspberry Pi verwendet, um zu zeigen, wie es miteinander verbunden ist.

Aktuelle Anordnung

Hier ist das Fritzing-Breadboard-Layout, falls das hilft

Das Bild hilft nicht wirklich, ein Schema, wie Sie es eingerichtet haben, wäre besser. Ich bin mir nicht sicher, was Sie mit "Spannungsabfall war ~ 3V3" meinen. Meinen Sie, die Pins waren bei 3V3 oder 1V7? Höchstwahrscheinlich hätte ich gedacht, dass Sie an beiden Pins als Ausgänge eingerichtet haben, und das verursacht Probleme. Es schadet nicht, GPIO direkt miteinander zu verbinden, solange einer ausgegeben und der andere eingegeben wird.

Antworten (3)

Wie im Kommentar erwähnt, würde ein Schaltplan helfen. Abgesehen davon: Sobald ich in derselben Frage „Arduino“ und „Pi“ lese, stehen mir alle Haare zu Berge, weil sie unterschiedliche I/O-Spannungen verwenden. Die Pis haben 3,3 Volt, die Arduinos 5 Volt. Ich bin sehr überrascht, dass Ihr Pi nicht explodiert ist.
Im Allgemeinen schadet es nicht, Controller über Widerstände anzuschließen. Die Eingangsimpedanz eines Controllers ist sehr hoch, sodass das Hinzufügen eines 2,2-K-Widerstands während des Betriebs keine Rolle spielt. Aber es schützt Ihre Controller, wenn Sie zwei Ausgänge angeschlossen haben.
Zurück zur Spannungsdifferenz: Sie können einen Ausgang des Pi sicher mit einem Eingang Ihres Arduino verbinden, aber wie bereits erwähnt, ist das Hinzufügen eines Vorwiderstands eine Sicherheitsvorkehrung.
Umgekehrt müssen Sie die Spannung reduzieren. Am einfachsten und billigsten ist es, zwei Widerstände als Spannungsteiler zu verwenden. Sie müssen von 5 V auf 3,3 V gehen, was einer Reduzierung von 0,66 entspricht. Ich würde 1200 Ohm plus 2200 Ohm empfehlen.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Ein anderer Weg ist ein billiger Level-Shifter : Es ist eine einfache bidirektionale Lösung!Geben Sie hier die Bildbeschreibung ein

Nur-Link-Antworten sind nicht gut. Die Produktseite, auf die Sie verlinkt haben, könnte entfernt werden und dann wird die Antwort irrelevant. Es kann eine gute Idee sein, die Antwort so zu bearbeiten, dass sie für sich steht, oder sie zu entfernen, bevor Sie Ablehnungen erhalten.
Ok, Bild gerade hinzugefügt

Der beste Weg, dies im Allgemeinen zu tun, ist die Verwendung eines Dual-Vdd-Spannungsumsetzers wie dem SN74AVC4T245 . Es gibt viele verschiedene solcher Teile, aber ich empfehle eines mit zwei Vdd-Versorgungen, die die von Ihnen benötigten Bereiche abdecken, und solche mit einem Eingang zur Steuerung der Richtung (bidirektionale, die automatisch umschalten, sind verfügbar, hängen jedoch von einem Hochleistungsantrieb ab, um die Änderung zu erzwingen).

Das Anschließen des 5-V-Ausgangs Ihres Arduino an die 3,3-V-Eingänge des Pi kann zu dauerhaften Schäden oder verschiedenen interessanten Arten von Fehlfunktionen führen.