Hallo, hier ein kurzer Bericht zu Problemen mit dem MAX485: Auf einer Platine habe ich den RS485-Transceiver MAX485CSA+ verbaut. Diese Platine habe ich schon über 100 Mal erfolgreich aufgebaut. Jetz hat bei der letzten 20er-Serie bei 15 Platinen die Kommunikation nicht funktioniert. Nach längerer Suche habe ich festgestellt, dass der MAX485CSA+ sich nicht so verhält wie im Datenblatt angegeben. Dort steht in Table 2: Receiving: Input a-b >= +0.2 V => Output 1 Input a-b <= -0.2 V => Output 0 Inputs open => Output 1 Die nicht funktionierenden Chips liefern aber bei Inputs open den Output 0 und bringen dadurch die serielle Kommunikation aus dem Takt. Sie haben oben die Markierung "MAX485 CSA+ 201" und unten "Z TAIWAN PK". Die funktionierenden Chips haben oben die Markierung "MAX485 CSA+ 305", unten "Z TAIWAN RS". Ich habe die nicht funktionierenden gegen solche mit der Markierung 305 getauscht, das hat das Problem bei allen betroffenen Platinen beseitigt. Die funktionierenden stammen von Farnell. Ich habe noch Chips aus zwei Lieferungen von Farnell, bei beiden haben alle Chips die Markierung "305". Woher die nicht funktionierenden Chips stammen, kann ich nicht mit Sicherheit sagen.
Beitrag #7794374 wurde vom Autor gelöscht.
Günter N. schrieb: > Die nicht funktionierenden Chips liefern aber bei Inputs open den Output > 0 und bringen dadurch die serielle Kommunikation aus dem Takt. Sie haben > oben die Markierung "MAX485 CSA+ 201" und unten "Z TAIWAN PK". Zeigen.
H. H. schrieb: > Zeigen. ok, kann ich am Mittwoch machen. Auf dem Oszi sieht man, dass bei Ruhe auf den Leitungen A und B (d.h. etwa 0,2 V auf beiden Leitungen) der Receive-Pin bei den "falschen" auf low geht, bei den "richtigen" auf high.
Günter N. schrieb: > Auf dem Oszi sieht man, dass bei Ruhe auf den Leitungen A und B (d.h. > etwa 0,2 V auf beiden Leitungen) Hängt da etwas dran, z.B. der quer durchs Haus führende Bus? Die Failsafe-Funktion ist kein Ersatz für (relativ niederohmige) Bias-Widerstände. Was passiert, wenn Du A und B auf GND legst?
Günter N. schrieb: > ok, kann ich am Mittwoch machen. Sicherheitshalber: hinz meint GUTE Fotos des Gehäuses. Klaus.
Günter N. schrieb: > Die nicht funktionierenden Chips liefern aber bei Inputs open den Output > 0 und bringen dadurch die serielle Kommunikation aus dem Takt Man kann sich bei RS485 Empfängern nicht darauf verlassen, welcher Pegel erkannt wird, wenn die Eingänge offen sind. Normalerweise werden die Eingänge zumindest am Busende mit 120 Ohm abgeschlossen. Damit dann sicher über 0.2V erkannt werden, muss der Strom vom pull up an A und pull down an B zumindest 1.66mA betragen, an 5V also maximal 1k5. Wie sind deine pull up/down ausgelegt, oft finde ich unzureichende 4k7 (oder an 3.3V mehr als 1k). Beitrag "Re: RS485 Transceiver: Reihenfolge Terminierung, Serienwiderstand und Bias" Es kann gut sein, dass sie dir andere Chips mit MAX485 Marking geliefert haben. Es gibt taugliche Chips von vielen Herstellern, pinkompatibel. Sie unterscheiden sich teils deutlich in Stromaufnahme, ESD Festigkeit und Slewrate. Ein RS485 sollte aber mit jedem funktionieren (damit der Einkauf die billigsten wählen kann).
:
Bearbeitet durch User
> Die nicht funktionierenden Chips liefern aber bei Inputs open den Output > 0 und bringen dadurch die serielle Kommunikation aus dem Takt. Es mag ja sein das an den Chips irgendwas anders ist, aber dein Design ist auch mist. Zuerst solltest du mal deine Software auf einen Level bringen wo sie mit sowas klar kommt. Und danach kannst du dann noch zwei Widerstaende einfuegen die bei offenen Eingang fuer etwas Bias sorgen. Dann hast du eine Hardware die mit der harten Welt da draussen klar kommt... Und klar, es mag sein das jemand die umgelabelt hat. Es gibt RS485 Driver ja relativ zahlreich. Auch wenn es erstaunlich waere wenn Farnell sowas verkauft. Vanye
Günter N. schrieb: > Dort steht in Table 2: Receiving: > Input a-b >= +0.2 V => Output 1 > Input a-b <= -0.2 V => Output 0 > Inputs open => Output 1 Das stimmt zwar, nur wird das in den DC ELECTRICAL CHARACTERISTICS nirgends spezifiziert. Da steht nur, daß die Schwelle zwischen -0,2V und +0,2V liegen muß. Solange das eingehalten wird, ist der IC also in Ordnung. Im Gegensatz dazu ist bei RS-232 ICs der Zustand bei 0V eindeutig spezifiziert, ab <0,8V geht RxIN auf high. Ein RS485 Transceiver muß seinen Ausgang für mindestens eine Bitzeit enablen, damit die Receiver die Startflanke eindeutig erkennen können. Sofort loszusenden, ist bad practice. Ebenso sollte nach dem letzten Stopbit der Sender noch eine Bitzeit aktiv bleiben. Empfohlen ist es außerdem, wenn man den RS-485 mit Ziehwiderständen oder Stromquellen so vorspannt, daß bei offenem Bus immer >0,2V anliegen.
:
Bearbeitet durch User
Günter N. schrieb: > Die nicht funktionierenden Chips liefern aber bei Inputs open den Output > 0 und bringen dadurch die serielle Kommunikation aus dem Takt. "Inputs open" heißt, dass sie mit nichts verbunden sind. In der Praxis ist das aber nicht der Fall, weil die Terminierungs-Widerstände noch vorhanden sind. Für deine Anwendung brauchst du Transceiver mit 'echtem' Fail-Safe, die auch bei Idle oder Kurzschluss (also A − B = 0 V) eine 1 ausgeben. Auf der ersten Seite des MAX485-Datenblatts sind solche unter "Next Generation Device Features" aufgelistet, z.B. MAX3085.
Nimm doch gleich einen preiswerten Nachbau, der mit offenen Eingämgen logisch 1 garantiert. Sowas gibts ;-) https://www.lcsc.com/datasheet/lcsc_datasheet_2012111844_STMicroelectronics-ST485CDR_C970563.pdf Blatt 4, die Wahrheitstabelle https://www.lcsc.com/product-detail/RS-485-RS-422-ICs_STMicroelectronics-ST485CDR_C970563.html Der Preis ist wohl auch noch etwas humaner, als das Original von Maxim
Gerald B. schrieb: > Nimm doch gleich einen preiswerten Nachbau, der mit offenen Eingämgen > logisch 1 garantiert. Sowas gibts ;-) > > https://www.lcsc.com/datasheet/lcsc_datasheet_2012111844_STMicroelectronics-ST485CDR_C970563.pdf > > Blatt 4, die Wahrheitstabelle Das ist genau die gleiche Tabelle wie beim MAX485. Er tut es nur nicht - jedenfalls die fraglichen Bauteile nicht. Zu den bisherigen Hinweisen: Die Leitungen sind alle geschirmt, das Oszi zeigt saubere Signale. Die Leitungen A und B sind mit 120 Ohm terminiert. Ja, man könnte die Leitungen mit Pullup und Pulldown fail-safe "vorspannen", um im High-Z-Fall eine Differenz > 0.2 V sicherzustellen. Das ist im Datenblatt aber so nicht gefordert. Und es würde die Last auf den Treiber erhöhen (Unit Loads), so dass man insgesamt weniger Transceiver verbinden kann also momentan (laut Datenblatt 32 Stück). Morgen poste ich Fotos von den fraglichen Bauteilen.
Günter N. schrieb: > Das ist genau die gleiche Tabelle wie beim MAX485. Er tut es nur nicht - > jedenfalls die fraglichen Bauteile nicht. Ein Maxim IC zu fälschen ist deutlich lukrativer als ein billiges Generika.. Wenn also ein anderes IC die fragliche Eigenschaft, auf die man Wert legt, besitzt, is man mit dem preiswerten Nachbau besser dran, zumindest wenn man ihn aus vertrauenswürdiger Quelle bezieht (das sind für mich Versender, wo explizit dabei steht, welchen Hersteller und welche Baureihe ich bekomme) Also TME, Digikey, Mouser und auch LCSC. Der SP485EEN von Maxliear kann das lt. DB auch. https://www.lcsc.com/product-detail/RS-485-RS-422-ICs_MaxLinear-SP485EEN-L-TR_C6855.html Der ist sogar noch preiswerter. Den habe ich Anfang des Jahres geordert und mit dem bin ich sehr zufrieden.
:
Bearbeitet durch User
Günter N. schrieb: > Die Leitungen A und B sind mit 120 Ohm terminiert. Also sind die Eingänge nicht offen, sondern haben eine differenzielle Spannung von 0 V. Das Datenblatt des MAX3085 sagt: > guarantees a logic-high receiver output when the receiver inputs are open > or shorted. This means that the receiver output will be a logic high if > all transmitters on a terminated bus are disabled (high impedance).
:
Bearbeitet durch User
Hier die angekündigten Fotos. Unten links der einzige, der korrekt funktioniert, mit Markierung 305. Alle anderen funktionieren so wie oben beschrieben falsch. Der unten rechts ist umgedreht wegen der Aufschrift auf der Unterseite. Auf dem dritten Bild noch einmal so groß wie möglich. Sieht da irgendwas nach Manipulation aus?
Das zweite Bild hat es irgendwie nicht geschafft, hier nachgereicht.
Günter N. schrieb: > Alle anderen funktionieren so wie oben beschrieben falsch. Nein, sie verhalten sich korrekt. Der MAX485 hat sehr schwache Pull-Up- und -Down-Widerstände an den Eingängen. Diese funktionieren nur, wenn die Eingänge offen sind, aber nicht, wenn sie durch den Terminierungswiderstand kurzgeschlossen sind. Um einen definierten Ausgabewert mit Terminierung zu erhalten, brauchst du einen Transceiver mit "Shorted Inputs Fail-Safe", z.B. MAX3085.
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.