RS-485 ist eine wirtschaftliche Lösung für serielle Kommunikationsnetzwerke. Es kann mit Datenraten von 10 Mbit/s oder bei Entfernungen bis zu 1.200 m bei geringeren Geschwindigkeiten eingesetzt werden. RS-485 Shield ist ein Standardschild für den Raspberry Pi. Es ist mit einer einfachen Schraubklemme und einer DB9-Schnittstelle integriert.

kaufe jetzt

Eigenschaften

  • Ein Controller und ein Empfänger pro Teil
  • Minimierung von EMI-Rauschen
  • Übertragungsgeschwindigkeit bis zu 2,5 Mb / s
  • Keine Begrenzung der Controller-Rampenrate
  • Begrenzter Kurzschlussstrom
  • Ausfallsichere Anwendungen

Spezifikationen

Charakteristisch Wert
Betriebsspannung 3,3 V
Schnittstelle RS-485 DB9-Schnittstelle X1
RS-485 Schraubschnittstelle X1
2 × 13 Buchse für Raspberry X1
2 × 13 Zusätzliche Buchse X1
Schnittstelle Grove I2C X1
Datenübertragungsrate 2,5 Mbit/s
Anzahl der Empfänger 32

Temperaturbereich

Lager

-65 °C bis 160 °C
Anzahl der Kanäle 8
Auflösung 12-Bit
Energieverbrauch Variiert je nach Baudrate
Maße 62 x 39,2 x 21,8 mm
Waage 23 gr
Größe des Pakets 140 x 75 x 25 mm
Bruttogewicht 42 gr

Typische Anwendungen

  • RS-485-Transceiver mit geringem Stromverbrauch
  • Pegelwandler
  • Transceiver für industrielle Anwendungen in elektromagnetisch empfindlichen Netzen
  • Halbduplex-Anwendungen

Hardware-Übersicht

Verteilung von Leads

 

RS-485 DB9-Schnittstelle und RS-485-Schraubschnittstelle

 

Die 485-Schnittstelle verwendet eine differenzielle Signalübertragung. Stellen Sie sicher, dass Port A mit Port A des 485-Geräts und Port B mit Port B des 485-Geräts verbunden ist.

485-A: Ende A des RS485-Datenkabels, mit Pin A des MAX485-Chips verbinden.
485-B: RS485-Datenübertragungskabel, Ende B, mit Pin B des MAX485-Chips verbinden.
GND: Mit dem GND des Raspberry Pi verbinden.

 

Wie Sie sehen, werden GPIO14 und GPIO15 für die Datenübertragung und GPIO18 für das Freigabesignal verwendet.

Die Definition von Logiksignalen finden Sie in der folgenden Tabelle.

 

Buchse für Raspberry

Wir verwenden die 2X13-Buchse, um dieses Modul mit dem Raspberry Pi zu verbinden. Stellen Sie sicher, dass die Stifte ausgerichtet sind.

 

Zusätzliche Buchse

Das RS-485 Shield belegt 26 Pins des Raspberry Pi, und nur 5 Pins des GPIO werden tatsächlich verwendet. Wir leiten diese 26 Pins ab, falls Sie sie für andere Zwecke benötigen.

Liste der verwendeten GPIOs

GPIO- Nummer Funktion
GPIO02 SDA für Grove I2C-Port.
GPIO03 SCL für Grove I2C-Port .
GPIO14 Zur Datenübertragung mit dem DI -Pin des Max485-Chips verbinden.
GPIO15 Zur Datenübertragung mit dem RO -Pin des Max485-Chips verbinden.
GPIO18 Verbinden Sie die RE- und DE -Pins des Max485-Chips und arbeiten Sie als Aktivierungssignal.

Grove I2C-Port

Wir haben die I2C-Schnittstelle reserviert, damit sie problemlos mit I2C-Geräten verwendet werden kann. Beachten Sie, dass die VCC dieses Ports 5 V beträgt. Überprüfen Sie, ob das Modul mit 5 V arbeitet.

SCL: Serielle I2C-Uhr, mit GPIO03 des Raspberry Pi verbinden.
SDA: Serielle I2C-Daten, Verbindung zum GPIO02 des Raspberry Pi.
VCC: An den 5V-Pin des Raspberry Pi anschließen.
GND: Mit dem GND-Pin des Raspberry Pi verbinden.

 

Chip Max485

Für diese Abschirmung wurde die integrierte Schaltung MAX485ESA verwendet. Weitere Informationen zu diesem IC finden Sieim MAX485-Datenblatt .

Wie man anfängt

Ausrüstung

Benötigtes Material

Himbeer-Pi RS-485-Schild für Raspberry Pi
    • Schritt 1. Verbinden Sie die RS-485-Abschirmung mit dem Raspberry Pi.

    • Schritt 2. Verbinden Sie 485-A mit A 485-Draht, verbinden Sie 485-B mit B 485-Draht.

    Beachtung

    Wenn das Kabel belegt ist, ist keine Kommunikation möglich.

    • Schritt 3. Schließen Sie den Raspberry Pi mit dem microUSB-Kabel an die Stromversorgung an.

    Software

    Kommunikationstestcode

    Sie können eine neue Python-Datei erstellen und den folgenden Code in die neue Datei kopieren oder die Quelldatei im Ressourcen-Downloadbereich herunterladen. Führen Sie es dann in Ihrem Terminal aus.

    Code senden.

     #! / usr / bin / env python import time import serial import os send_str = "******* rs485888888 - rn" os.system ("echo 18> / sys / class / gpio / export") os. system ("echo out> /sys/class/gpio/gpio18/direction") ser = serial.Serial (port = '/dev/ttyAMA0', baudrate = 10000000, bytesize = 8, stopbits = 1, timeout = 1) last_time = time.time () now_time = time.time () os.system ("echo 1> / sys / class / gpio / gpio18 / value") time.sleep (0.01) n = 800 while n> 0: ser.write ( send_str) n = n-1 # time.sleep (0.001) os.system ("echo 0> / sys / class / gpio / gpio18 / value")

    Empfangscode

      

     #! / usr / bin / env python
    
    Importzeit
    Seriennummer importieren
    Import von os
    
    
    
    send_str = "******** abcdefghijklmnopqrstuvwxyz &"
    
    
    os.system ("echo 18> / sys / class / gpio / export")
    os.system ("echo out> / sys / class / gpio / gpio18 / direction") 
    
    ser = serial.Serial (port = '/dev/ttyAMA0', Baudrate = 115200, Bytegröße = 8, Stopbits = 1, Timeout = 1)
    
    letzte_zeit = zeit.zeit ()
    während 1:
        now_time = time.time ()
        if ((now_time-last_time)> = 1):
            last_time = now_time
    # print "172 sending"
            os.system ("echo 1> / sys / class / gpio / gpio18 / value")
            time.sleep (0.01)
            ser.write (send_str)
            time.sleep (0.01)
            os.system ("echo 0> / sys / class / gpio / gpio18 / value")
        os.system ("echo 0> / sys / class / gpio / gpio18 / value")
        time.sleep (0.01)
        count = ser.inWaiting ()
        if (count! = 0):
            x = ser.readline ()
            wenn "********" in x:
    # print "str length is:" + str (count)
                X drucken
    

    Um den obigen Code zu testen, benötigen Sie zwei Kappen und zwei Raspberry Pi, oder Sie können ein serielles Tool auf Ihrem Computer verwenden, um mit Ihrem Raspberry Pi zu kommunizieren.

    Wir freuen uns auf die Zusammenarbeit mit Ihnen!