Forum: Mikrocontroller und Digitale Elektronik RS485 mit STM32 & SN65HVD72DR


von Moot S. (mootseeker)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

ich würde mich gerne etwas mit RS-485 beschäftigen um ein kleines 
Netzwerk aufbauen zu können.

Als RS-485 Wandler verwende ich folgenden Chip: SN65HVD72DR

Steuern möchte ich das ganze mit einem STM32L412KBT6 welchen ich über 
UART angeschlossen habe. Schema zum RS Wandler liegt im Anhang.

Das Schema habe ich mit aus Referenzschalungen von Ti kopiert.

Auf was muss ich nun bei der Programmierung achten. Gibt es da Beispiel 
Codes?
Kann ich normal mein UART String abschicken und der Chip Wandelt das 
automatisch?

Vielen Dank für eure Hilfe!

von STK500-Besitzer (Gast)


Lesenswert?

Moot S. schrieb:
> Auf was muss ich nun bei der Programmierung achten. Gibt es da Beispiel
> Codes?
Manche STM32 können die RS485-Pin-Steuerung in Hardware.
Dazu muss das USART nur entsprechend konfiguriert werden.

> Kann ich normal mein UART String abschicken und der Chip Wandelt das
> automatisch?

ja, nur muss die Richtung de Transceivers zeitlich richtig geschaltet 
werden.

von F. M. (foxmulder)


Lesenswert?

Du musst zusätzlich zum UART noch die Datenrichtung mitgeben.
Manche Mikrocontroller haben das in Hardware integriert, zB. der 
Atmega4809 dort kann man eine Pin zur Bestimmung der Datenrichtung 
festelegen.

mfg

von Johannes S. (Gast)


Lesenswert?

was meinst du mit 'wandelt der Chip'? Die Transceiver Bausteine machen 
nur eine elektrische Anpassung.
Für so ein RS485 Netz haben die STM32 die automatische Steuerung der 
Sendefreigabe oder eine Multidrop Funktion. Mit 9 Bit hat man 8 Daten + 
Unterscheidung Daten/Adressen. Der Empfänger kann sich schlafen legen 
und mit der eingestellten Adresse geweckt werden. Dazu DMA und man kann 
auch hohe Bitraten effizient nutzen.

von Moot S. (mootseeker)


Angehängte Dateien:

Lesenswert?

Hätte ich in diesem Fall diesen Hacken setzten sollen?

und wie sieht das im Code aus mit der Adresse (ich kann mir das noch 
nicht ganz vorstellen). Hat jemand ein Beispiel wie ich ein Gerät 
Adressiere um diesem Daten zu senden?

von Johannes S. (Gast)


Angehängte Dateien:

Lesenswert?

in CubeMX den Multidrop Modus wählen, dann kann man die weiteren 
Einstellungen setzen.
Und noch 9 Bit für Daten einstellen, hatte ich in dem Beispiel nicht 
gemacht.

von STK500-Besitzer (Gast)


Lesenswert?

Moot S. schrieb:
> Hätte ich in diesem Fall diesen Hacken setzten sollen?

Nö.

von STK500-Besitzer (Gast)


Lesenswert?

Etwas längere Antwort:
https://www.st.com/resource/en/reference_manual/dm00151940-stm32l41xxx42xxx43xxx44xxx45xxx46xxx-advanced-armbased-32bit-mcus-stmicroelectronics.pdf

Seite 1223.
Ob CubeMX das einfach so unterstützt, musst du mal gucken (jojos hatte 
ja schon eine Beschreibung gepostet).

von Moot S. (mootseeker)


Lesenswert?

STK500-Besitzer schrieb:
> Seite 1223

Ich glaube das ist nicht, das was ich brauche?

von STK500-Besitzer (Gast)


Lesenswert?

Moot S. schrieb:
> Ich glaube das ist nicht, das was ich brauche?

Ist das jetzt eine Aussage oder eine Frage?

von Moot S. (mootseeker)


Lesenswert?

STK500-Besitzer schrieb:
> Ist das jetzt eine Aussage oder eine Frage?

Ja... beides, ich möchte ja RX/TX verwenden (Hab ich im Schema ja auch 
so verbunden). Darum glaube ich das ich kein onewire Modus über den TX 
Pin benötige. Ausser ich habe das jetzt falsch verstanden.

von STK500-Besitzer (Gast)


Lesenswert?

Moot S. schrieb:
> so verbunden). Darum glaube ich das ich kein onewire Modus über den TX
> Pin benötige. Ausser ich habe das jetzt falsch verstanden.

OneWire ist natürlich falsch.
Da war ich zu schnell.

jojos hatte doch schon die Multiprozessor Communication angespochen.

Lies dir einfach mal das USART-Kapitel im (geposteten) Reference Manual 
durch.
Irgendwo müsste da was zu dem Thema stehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.