- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

Thema: Finde RS485 fehler nicht

  1. #11
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Zitat Zitat von demmy Beitrag anzeigen
    Kann es sein, dass da jetzt die Widerstände nicht passen?
    Früher hast du den Achim gefragt und erst jetzt kann ich antworten: JA.
    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!

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    66
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von demmy Beitrag anzeigen
    Hat keiner mehr eine Idee, was das nun noch mit den Abschlusswiderständen sein könnte?
    Wie, Was Wo hast du denn jetzt gemacht?

    ICH KENNE MINDESTENS 3 RICHTIGE Methoden, wie man die Abschlusswiderstände verschalten kann!

    Der Unterschied liegt darin, dass du mit den Widerständen einen definierten Pegel hast, wenn der Sender hochohmig ist. Ohne widerstände bleibt der letzte Pegel, auf Grund der Leitungskapazitäten, "kleben"

    Dies habe ich mehrfach verwendet um zu erkennen ob ein Erweiterungsmodul vorhanden ist oder nicht. Bedingung ist allerdings, dass das Modul eine Pul Up (oder Pulldown) Widerstand am Eingang hat.

    Port-Pin als Ausgang schalten und eine 0 ausgeben.
    Dann den Pin als Eingang schalten und einlesen.
    ohne Pull Up bleibt die 0 noch einige µs b1s einige 10 µs stehen, mit Pull Up hat man sofort eine 1.
    Funktioniert bei einigen Seriengeräten Fehlerfrei.

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

  3. #13
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Zitat Zitat von Peter(TOO) Beitrag anzeigen
    Wie, Was Wo hast du denn jetzt gemacht?
    Eben, ohne kompletten Schaltplan des Busses ist keine konstruktive Hilfe möglich.
    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!

  4. #14
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    348
    Nein nein, die Frage war natürlich an alle gerichtet!

    Ich hoffe Ihr habt die Oszillogramme gesehen mit und ohne Widerstand (Eintrag #9) !?

    Also der Bus besteht aktuell aus einer Platine auf der die Teilnehmer aufgesteckt sind und die so aufgebaut ist:

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

Name:	Bus.png
Hits:	11
Größe:	6,1 KB
ID:	30391

    Die einzelnen Teilnehmer sehen dann so aus, wobei nur bei dem ersten und letzten der R4 vorhanden sind. R8 und R9 sind aktuell gar nicht bestückt.

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

Name:	Abschluss.PNG
Hits:	10
Größe:	9,8 KB
ID:	30392

    Die einzelnen Abstände zwischen den Teilnehmern sind nur wenige cm und komplett über Leiterbahnen.

  5. #15
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    66
    Beiträge
    2.435
    Hallo,

    Und wie erfolgt nun die Umschaltung zwischen Senden und Empfangen?
    Hier braucht man aber auch die Software dazu.
    Deine erste Variante konnte ja nicht funktionieren.

    Das praktisch Problem ist folgendes:
    Das UART besteht aus zwei Registern, dem Datenregister und dem Schieberegister.
    Das Datenregister ist per Software zugänglich, das Schieberegister leider nicht.
    Deine Software schreibt nun in das Datenregister. Wenn das Schieberegister leer ist, werden die Daten aus dem Datenregister in das Schieberegister kopiert und gesendet.
    Gleichzeitig wird das Transmit Register Empty Bit (TE) gesetzt und ein Interrupt ausgelöst, wenn freigegeben.
    Nun ist aber das UART dann noch dabei, die Daten im Schieberegister zu senden.
    Wenn also das TE-Bit aktiviert wird, musst du noch warten, bis alle Daten raus sind, bevor du deinen Treiber auf Empfang umschaltest.
    Wie lange du warten musst, hängt von der verwendeten Baudrate und dem Datenformat ab. Da müssen ja Start und Stopp-Bit raus. Das Stopp-Bit kann 1 oder 2 Bit lang sein. Dann die Daten, meist sind 5, 7 oder 8 Bit einstellbar. Dann noch das Parity-Bit, wenn vorhanden. Manche UARTS beherrschen noch ein zusätzliches Master/Slave Bit.
    Die Übertragung kann also zwischen 7 und 13 Bit dauern.

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

  6. #16
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    348
    Also die Umschaltung mache ich jetzt über einen µC-Pin. Vor dem Senden den Max auf senden schalten, dann über das UDRE Interrupt die Daten ins UDR Register schieben und wenn zum Schluss alles raus ist, dann über das TXC Interrupt den Max wieder auf empfangen schalten. Ich habe alle Pins und das Timing am Oszi überprüft, das passt so einwandfrei. Das TXC Interrupt kommt erst dann, wenn auch wirklich das letzte Bit raus ist.

    Die Pegel sehen auch sehr gut aus, also so lange man eben keine Widerstände gesteckt hat.

    ich habe eben nochmal im Datenblatt des Max485 nachgeschaut, die haben da aber auch nur einen 120R zwischen A und B eingezeichnet?
    Ist vielleicht 120R nicht der richtige Wellenwiderstand? Ich hab mal gelesen, wenn man den falschen Abschlusswiderstand hat ist das schlimmer als gar keinen zu haben?

  7. #17
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Zitat Zitat von demmy Beitrag anzeigen
    ... ich habe aktuell insgesamt 3 Atmegas am Bus hängen.
    Weil ich bisher keinen aktuellen Schaltplan gesehen habe, könnte ich nur vermuten, dass die drei MAX485 nicht synchron mit gleichem Signal umgeschaltet werden.
    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!

  8. #18
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    66
    Beiträge
    2.435
    Zitat Zitat von demmy Beitrag anzeigen
    Die Pegel sehen auch sehr gut aus, also so lange man eben keine Widerstände gesteckt hat.

    ich habe eben nochmal im Datenblatt des Max485 nachgeschaut, die haben da aber auch nur einen 120R zwischen A und B eingezeichnet?
    Ist vielleicht 120R nicht der richtige Wellenwiderstand? Ich hab mal gelesen, wenn man den falschen Abschlusswiderstand hat ist das schlimmer als gar keinen zu haben?
    Der Abschlusswiderstand muss an die Leitung angepasst sein.
    Normales verdrilltest Telefonkabel hat um die 100 Ohm.

    Bei dir sollte eine Fehlanpassung keine Rolle spielen!
    Des Hauptproblem sind die Reflektionen, bei richtigem Abschluss gibt es kaum welche.
    Allerdings hast du nur eine kurze Leitung. Bei den 10cm und einer Wellengeschwindigkeit von etwa c/2 kommt die Reflektion innerhalb von ns.
    Anders sieht das aus, wenn die Leitung 1km lang ist. Dann stört die Reflektion das nächste Bit.

    Anzumerken ist noch, dass der Empfänger bei RS485 nicht auf die Pegel reagiert, sondern auf die Differenz der beiden Signale. Etwas vereinfacht schaut der nur, welche Leitung positiver als die andere ist. Praktisch ist da noch eine Hysterese von ein paar 100mV ()Die genauen Werte stehen im Datenblatt, bin aber gerade zu faul zum nachsehen).

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

  9. #19
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.06.2011
    Ort
    Dresden
    Beiträge
    219
    Hi,
    für kurze Entfernungen (<1m) kannst Du den Widerstand zwischen A und B ganz raus lassen, ebenso den nach ground, der zwischen
    A und VCC sollte etwas kleiner dimensioniert sein (4k7..10k). Alle Receiver sollten im IDLE-Zustand ein H am Eingang "sehen".
    mfg
    Achim

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Finde Fehler nicht
    Von hunikuni im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 20
    Letzter Beitrag: 03.06.2012, 13:54
  2. Hilfe...finde die fehler nicht heraus
    Von Kuwe im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 13
    Letzter Beitrag: 21.04.2010, 20:29
  3. Antworten: 4
    Letzter Beitrag: 08.01.2008, 19: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, 18:34
  5. AVR 90S2313 Problem, und finde nicht den Fehler!
    Von Alex20q90 im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 01.05.2005, 13:20

Berechtigungen

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

Solar Speicher und Akkus Tests