Forum: Mikrocontroller und Digitale Elektronik Bericht: MAX485 defekt oder gefälscht


von Günter N. (turtle64)


Lesenswert?

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.
von H. H. (hhinz)


Lesenswert?

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.

von Günter N. (turtle64)


Lesenswert?

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.

von Hmmm (hmmm)


Lesenswert?

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?

von Klaus R. (klaus2)


Lesenswert?

Günter N. schrieb:
> ok, kann ich am Mittwoch machen.

Sicherheitshalber: hinz meint GUTE Fotos des Gehäuses.

Klaus.

von Michael B. (laberkopp)


Lesenswert?

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
von Vanye R. (vanye_rijan)


Lesenswert?

> 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

von Peter D. (peda)


Lesenswert?

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
von Clemens L. (c_l)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

Clemens L. schrieb:
> z.B. MAX3085.

Ja, der sieht gut aus. Oberhalb -50mV muß er 1 ausgeben.

von Gerald B. (gerald_b)


Lesenswert?

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

von Günter N. (turtle64)


Lesenswert?

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.

von Gerald B. (gerald_b)


Lesenswert?

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
von Clemens L. (c_l)


Lesenswert?

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
von Günter N. (turtle64)


Angehängte Dateien:

Lesenswert?

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?

von Günter N. (turtle64)


Angehängte Dateien:

Lesenswert?

Das zweite Bild hat es irgendwie nicht geschafft, hier nachgereicht.

von H. H. (hhinz)


Lesenswert?

Günter N. schrieb:
> Hier die angekündigten Fotos.

Kein Indiz für Fälschungen.

von Günter N. (turtle64)


Lesenswert?

Bei denen mit der 201 ist der Punkt größer.

von Clemens L. (c_l)


Lesenswert?

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.

von H. H. (hhinz)


Lesenswert?

Günter N. schrieb:
> Bei denen mit der 201 ist der Punkt größer.

Passt dennoch für beide.

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.