Serielle Kommunikation zwischen Raspberry und Arduino

HerrmannIV

Ensign
Registriert
Juli 2008
Beiträge
194
Servus beisammen.

Ich versuche aktuell meinen Raspberry2 aus dem OSMC läuft mit meinem Arduino kommunizieren zu lassen.

Zuerst natürlich versucht über Verbindung von GND, RX/TX und schreiben auf /dev/ttyAMA0, da passiert jedoch garnichts, weder per minicom, noch per "echo blabla > /dev/ttyAMA0".

Also hab ich das ganze mal auf meinem Raspberry1 (B) (auch mit OSMC) getestet, und siehe da, funktioniert einwandfrei.

Als nächstes die Verbindung über das USB-Kabel getestet und auf ttyACM0 geschrieben. Doch bei jedem Schreibzugriff, wird der Arduino resettet, was ich daran erkenne, dass mein programms beim Start ein kleines willkommensblink mit der LED macht.

Also wieder den RPi1B genommen, und siehe da, dort funktioniert auch die USB-Verbindungsvariante.

Mein Latein ist nun am Ende, deswegen bin ich hier. Ich habe die Vermutung das Problem ist ziemlich simpel, aber ich komm nicht drauf >.<

Danke schonmal :)
 
Wie hast Du denn den Raspberry mit dem Arduino verbunden? Welcher Pin auf welchen Pin? Welche Schaltung verwendest Du? Direkte Verkabelung?
 
5V von Pi an 5V von Arduino,
Gnd von Pi an Gnd von Arduino,
TxD von Pi direkt an TxD von Arduino,
RxD von Pi mit 20kOhm gegen Gnd,
und mit 10kOhm gegen TxD von Arduino

//edit:

Habe jetzt zumindest die Kommunikation über die USB-Serielle Schnittstelle hinbekommen, würde an sich aber trotzdem das ganze lieber über das normale UART hinbekommen. der Spannungsteiler ist in meiner
Endanwendung nicht vonnöten, da ich nichts von Arduino zu Raspberry senden will.
 
Zuletzt bearbeitet:
The Broadcom chip at the heart of the Pi uses 0 and 3.3V logic levels
Der Arduino verwendet hingegen 5V. Du brauchst da entweder einen Serial Port Level Shifter, oder Du verwendest direkt I2C (würde ich empfehlen).
 
I2C wollte ich vermeiden, da ich schon laufenden Arduino-Code habe der auf Seriell läuft.
dass die beiden unterschiedliche Logic Levels haben war mir durchaus bewusst, es sollte so jedoch auch funktionieren. Die 5V vom Arduino auf Senderichtung werden ja über den Spannungsteiler runtergeregelt, und in Empfangsrichtung sollte der Arduino auch mit den 3.3V vom Pi zurechtkommen, oder?
Ansonsten werde ich bei gelegenheit mal schauen ob sich das auf i2c umstellen lässt.
 
Ich vermute das Problem allgemein eher auf Raspberry (Software?) Seite. Ich hatte vorher das Bluetooth-Modul HC-06 (welches jetzt durch den Raspberry ersetzt werden soll) am Arduino hängen, welches auch mit 3.3V LL arbeitet mit dem Arduino in Betrieb (Nur Tx vom Modul an Rx vom Arduino) was auch einwandfrei funktioniert hat. also ist das LL wohl nicht das Problem :/
 
Da sind einpaar Fehler drin:

1. Du brauchst ein gekreuztes Kabel:

RX <--> TX
TX <--> RX
GND <--> GND

2. Spannungsteiler sind Müll. Je nach Übertragungsgeschwindigkeit gibt es hier Probleme. Du brauchst einen anständigen LevelShifter und das Thema ist erledigt.

3. Welcher Arduino ist es überhaupt? Ich glaube, die Atmegas erkennen 0,6*VCC als eine logische 1 am Eingang.
 
Ich schließe mich crematoria an, exakt was du benötigst.

Allerdings würde ich vorsichtig sein, dass der Arduino nicht 5V zurück gibt und die RPi zerstört. Sofern der Arduino die 3,3V schon als Hi erkennt, sind die 5V die die RPi zurück bekommt zuviel, da diese KEINE 5V toleranten IOs bietet.

Grüße,
süchtla
 
Zurück
Oben