-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Finde RS485 fehler nicht

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    340

    Finde RS485 fehler nicht

    Anzeige

    Hallo zusammen,

    ich habe ein kleines RS485 Problem. Und zwar habe ich folgende Schaltung mit einem MAX485 an einem Atmega aufgebaut.

    Klicke auf die Grafik für eine größere Ansicht

Name:	max.jpg
Hits:	25
Größe:	23,0 KB
ID:	30380

    Beim überprüfen aller Signale ist mir aufgefallen das der A-Kanal des MAX nicht richtig funktioniert. Ich bekomme folgendes Bild am Oszilloskop (Messung A-Gnd / B-Gnd / Differenz der beiden Signale) :

    Klicke auf die Grafik für eine größere Ansicht

Name:	rs485_fehler.jpg
Hits:	23
Größe:	29,1 KB
ID:	30381

    Wieso habe ich auf dem A Kanal nur solche Peaks?? Ich habe schon alles abgesucht, habt Ihr noch eine Idee.

    Wenn ich mir die UART Seite des MAX anschaue dann sieht alles normal aus:

    Klicke auf die Grafik für eine größere Ansicht

Name:	UART_dere.jpg
Hits:	17
Größe:	28,9 KB
ID:	30382

    Das einzige was mir aufgefallen ist, ist eine leichte "Reflektion" auf der RXD Leitung wenn die TXD sendet. Ich weiß nicht ob die von belang ist, bzw. wie die zustande kommen kann?

    Klicke auf die Grafik für eine größere Ansicht

Name:	UART_fehler.jpg
Hits:	16
Größe:	21,1 KB
ID:	30383


    Ich hoffe Ihr habt noch eine Idee und könnt mir helfen? Ich wäre euch sehr dankbar!

    Viele Grüße

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    59
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von demmy Beitrag anzeigen
    ich habe ein kleines RS485 Problem. Und zwar habe ich folgende Schaltung mit einem MAX485 an einem Atmega aufgebaut.
    Das kleine Problem ist, dass du nicht wirklich richtig sendest.

    Beim Senden, schaltet TxD immer zwischen Senden und Empfangen um!

    Wenn TxD auf 1 liegt, das ist der Grundzustand, ist der Empfänger aktiv und es wird normal empfangen.

    TxD ist ein invertiertes Signal.
    Wenn du also eine 0 sendest, wird der Sender aktiv.
    Sendest du aber eine 0 ist der Sender deaktiviert und die Leitung wird hochohmig. Welche Pegel dann auf den Leitungen liegen und wie lange, hangt dann von den Kabelkapazitäten und den Abschlusswiderständen ab.

    Das geht so nicht!

    RE/ und DE müssen für die ganze Übertragungszeit eines Bytes aktiv sein und nicht nur für ein Bit.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    340
    Mhh ok, das habe ich mir schon fast gedacht.

    Gibt es eine saubere Möglichkeit die Richtungsumschaltung per Hardware zu realisieren?

  4. #4
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.970
    Hallo!

    Ja, siehe bitte Figure 22 auf 14. Seite vom Datenblatt (DB): http://www.datasheetcatalog.com/data...4/MAX485.shtml .
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    47
    Beiträge
    497
    Geändert von sast (01.07.2015 um 16:47 Uhr)

    雅思特史特芬
    开发及研究

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.03.2011
    Beiträge
    1.401
    Ich würde erstmal fragen: warum eigentlich halbduplex RS485 und nicht vollduplex RS422? Da muß man nichts umschalten. Mangelt es an den zwei zusätzlichen Adern im Kabel? Die weitergehende Frage wäre: muß es überhaupt differentiell sein oder tun es nicht einfach TTL Signale. Die brauchen nur eine Leitung, mit zweien, wie bei RS485, ist vollduplex möglich.

    Gibt es eine saubere Möglichkeit die Richtungsumschaltung per Hardware zu realisieren?
    Eigentlich nicht. Man kann da etwas mit einem Monoflop basteln, das knabbert aber das Startbit etwas an und das Timing ist immer ein Kompromiss. Eine saubere Lösung verlangt nach einem extra Portbit.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    340
    Hi zusammen,

    vielen Dank für die zahlreichen Antworten. Ich denke aber Ihr habt recht. evtl. sollte ich über eine andere Übertragungsmethode oder einen weiteren Portpin nachdenken.

    Viele Grüße

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.06.2011
    Ort
    Dresden
    Beiträge
    170
    hi,
    eigentlich ist Deine Schaltung garnicht so verkehrt (man kann die Steuerpins auch bitweise ansteuern).
    Im Ruhezustand (TxD inaktiv) ist TxD high, damit ist der Receiver des MAX enabled, der Transmitter
    disabled - korrekt. Dein Oszillogramm sieht so schlecht auch nicht aus (die spikes auf A entstehen, weil
    Deine Transistorschaltung nicht schnell genug den Steurpin deaktiviert. Da alle UARTs heutzutage
    mehrfach abtasten, sollte das nich stören. Was passiert wenn Du einen Abschlusswiderstand zwischen A
    und B bringst ?
    Eleganter ist es natürlich einen IO-Port vom Mega als Steuer-Pin zu nehmen, H vorm Senden,
    auf Low setzen, wenn TXC-flag gesetzt wurde, sonst schaltet der Mega den Sender aus, bevor das
    Byte rausgeshiftet wurde.
    Hast Du mal probiert, mit einem anderen MAX/Mega zu kommunizieren ? (Pull-Up an A nicht vergessen,
    sonst sehen beide Receiver undefinierte Zustände.)
    mfg
    Achim

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    340
    Hallo Achim,

    ich habe aktuell insgesamt 3 Atmegas am Bus hängen. Ich habe jetzt mal die Umschaltung bei allen Atmegas auf einen µC-Pin umgelegt.
    Die A und B Pegel sehen jetzt so aus:

    Klicke auf die Grafik für eine größere Ansicht

Name:	rs485_ohne_abschluss.jpg
Hits:	17
Größe:	33,6 KB
ID:	30384

    Schalte ich jetzt am Anfang und am Ende einen 120R Widerstand zwischen A und B dann verändern sich plötzlich die Pegel und die Kommunikation bricht nach 3 Telegrammen zusammen. Das ganze sieht dann so aus:

    Klicke auf die Grafik für eine größere Ansicht

Name:	rs485_mit_abschluss.jpg
Hits:	15
Größe:	36,4 KB
ID:	30385

    Kann es sein, dass da jetzt die Widerstände nicht passen?

    Viele Grüße

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    340
    Hi,

    Hat keiner mehr eine Idee, was das nun noch mit den Abschlusswiderständen sein könnte?

    Viele Grüße

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Finde Fehler nicht
    Von hunikuni im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 20
    Letzter Beitrag: 03.06.2012, 14:54
  2. Hilfe...finde die fehler nicht heraus
    Von Kuwe im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 13
    Letzter Beitrag: 21.04.2010, 21:29
  3. Antworten: 4
    Letzter Beitrag: 08.01.2008, 20:03
  4. ADC - Ich finde den/die Fehler nicht
    Von Christoph2 im Forum C - Programmierung (GCC u.a.)
    Antworten: 9
    Letzter Beitrag: 07.08.2007, 19:34
  5. AVR 90S2313 Problem, und finde nicht den Fehler!
    Von Alex20q90 im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 01.05.2005, 14:20

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •