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!
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.
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
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.
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?
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.
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).
Moot S. schrieb: > Ich glaube das ist nicht, das was ich brauche? Ist das jetzt eine Aussage oder eine Frage?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.