MCP2561FD für UART?

OP #7420954
Lesenswert?

Guten Tag! Meine Frage: kann man CAN-Transceiver als UART-Sender/Empfänger (in eine Richtung) benutzen? Oder gibt es Umstände, die dagegen wirken?

Ich glaube, für eine symmetrische Übertragung könnte CAN-Transceiver bestimmte Vorteile im Vergleich mit RS-422 haben... Hier geht es bei mir um eine Einzellösung, deshalb muß ich mich an keine einheitlichen technischen Normen halten. Sowieso geht es bei mir um 9-bit-Mode von UART...

#7420975
Lesenswert?

Maxim B. schrieb:

Meine Frage: kann man CAN-Transceiver als UART-Sender/Empfänger (in eine Richtung) benutzen? Oder gibt es Umstände, die dagegen wirken?

CAN-Transceiver haben ein Timeout für dominante Zustände und damit eine Mindestbitrate, damit kein Teilnehmer den Bus blockieren kann. Das könnte für einen UART doof werden.

Du könntest auf LVDS gehen:

Transmitter: https://www.ti.com/product/de-de/DS90LV011A Receiver: https://www.ti.com/product/de-de/DS90LT012A

Diese Bausteine haben keine Timeouts oder sonstige Logikfunktionen drin, sondern übertragen einfach nur, was am Eingang reinkommt.

Für einen Multidrop-Bus brauchst Du den DS90LV012A. Der hat im Gegensatz zum LT keinen 100R Abschlusswiderstand drin.

fchk

OP #7420999
Lesenswert?

Frank K. schrieb:

CAN-Transceiver haben ein Timeout für dominante Zustände und damit eine Mindestbitrate, damit kein Teilnehmer den Bus blockieren kann. Das könnte für einen UART doof werden.

Laut Datasheet für MCP2561/2FD ist zulässige Bit Time zwischen 0.2 und 69.44 μs. Bei 250 kbps ist Dominanz-Zeit auch bei 9 "0" und Startbit 40 μs, d.h. in Grenzen. Notfalls wäre 500 kbps auch denkbar.

Ich möchte je 4 Bytes über 2 Meter übertragen, so einfach wie es nur geht. Aber auch in Feldeinsatz. Deshalb auch 9-bit-Modus: wenn Bit 9=1, werden zuletzt empfangene 4 Bytes in Hauptpuffer kopiert und bearbeitet. Ich glaube, 2 Meter sind für schnelle asymmetrische Übertragung über Kabel schon etwas zu viel...

Du könntest auf LVDS gehen:

Transmitter: https://www.ti.com/product/de-de/DS90LV011A Receiver: https://www.ti.com/product/de-de/DS90LT012A

Diese Bausteine haben keine Timeouts oder sonstige Logikfunktionen drin, sondern übertragen einfach nur, was am Eingang reinkommt.

Danke für Tipps! Aber so wie ich verstehe, während MCP2561 in dem passiven Zustand die Linie frei läßt und somit 120 Ohm-Widerstand ohne Strom bleibt, bleibt bei LVDS die Linie immer unter Last, auch wenn "1" übertragen wird? Wenn wirklich so, dann ist klassische RS422 Transceiver wie DS89C21 etwa LVDS gleich?

#7421017
Lesenswert?

Für 250kbps sind diese Bausteine doch alle viel zu schnell. Es gibt RS-422 (oder RS-485) Transceiver, die für maximal 250kbps (oder 115k oder 500k) optimiert sind. Der Sender begrenzt die Flankensteilheit, deshalb kann man für kurze Verbindungen auf Abschlusswiderstände verzichten. Die Chips selbst brauchen auch weniger Strom (ISL3170/1/2: weniger als 1mA; sendend, nicht standby).

OP #7421021
Lesenswert?

Bauform B. schrieb:

Die Chips selbst brauchen auch weniger Strom (ISL3170/1/2: weniger als 1mA; sendend, nicht standby).

Aber Widerstand 120 Ohm braucht schon einiges von Strom. Und wenn nur 5% der Zeit das wirklich notwendig ist...

Wenn sonst nichts gegen CAN-Transceiver spricht, scheint mir das als geeignet zu sein? Bei CAN wird Linie nur für dominanten Zustand belastet.

#7421077
Lesenswert?

Maxim B. schrieb:

Aber so wie ich verstehe, während MCP2561 in dem passiven Zustand die Linie frei läßt und somit 120 Ohm-Widerstand ohne Strom bleibt, bleibt bei LVDS die Linie immer unter Last, auch wenn "1" übertragen wird? Wenn wirklich so, dann ist klassische RS422 Transceiver wie DS89C21 etwa LVDS gleich?

Achte auf das LV von LVDS. Das steht für Low Voltage, d.h. nur einige 100mV Spannungsdifferenz zwischen + und - (hier nominal 350mV). Dadurch wird im Terminierungswiderstand deutlich weniger Leistung verbraten als bei RS422 mit >=2V oder bei CAN mit nominal 2V zwischen CAN_H und CAN_L und 60 Ohm Terminierung (120R an jedem Ende). Rechne selber nach.

Wenn Du CAN als physical layer wählst, nimm einen langsamen Transceiver und keinen, der für CAN-FD gedacht ist.

Plus: CAN ist ein 5V-Standard. Wenn Du Leistung sparen willst, gehtst Du besser mit der Betriebsspannung runter, am Besten auf 1.8V Die Spannung geht immerhin quadratisch in die Verlustleistung ein, und zwischen 5V und 1.8V liegt ein Faktor 8 in der Leistung.

So geht dann Energiesparen richtig.

fchk

OP #7421081
Lesenswert?

Frank K. schrieb:

Plus: CAN ist ein 5V-Standard. Wenn Du Leistung sparen willst, gehtst Du besser mit der Betriebsspannung runter, am Besten auf 1.8V Die Spannung geht immerhin quadratisch in die Verlustleistung ein, und zwischen 5V und 1.8V liegt ein Faktor 8 in der Leistung.

Danke für Tipps! 5 Volt ist für mich übrigens bequemer, da andere Schaltung auch 5 Volt braucht... Aber hier gibt es noch was zu überlegen... Idee mit DS90LV gefällt mir im Prinzip...

OP #7424364
Lesenswert?

Frank K. schrieb:

CAN-Transceiver haben ein Timeout für dominante Zustände und damit eine Mindestbitrate, damit kein Teilnehmer den Bus blockieren kann. Das könnte für einen UART doof werden.

Ich habe nun Datasheet für SN65HVD230/1/2 angeckuckt. Habe ich richtig verstanden, daß dieser Transceiver, zum Unterschied von MCP2561/2, kein Timeout und somit keine Mindestbitrate hat?

CAN-Transceiver bleibt immer noch in meinen Gedanken als mögliche Lösung für UART, da rezessiv kaum Strom auf den 120 Ohm-Widerstand verbraucht wird.

#7424527
Lesenswert?

Maxim B. schrieb:

Ich habe nun Datasheet für SN65HVD230/1/2 angeckuckt. Habe ich richtig verstanden, daß dieser Transceiver, zum Unterschied von MCP2561/2, kein Timeout und somit keine Mindestbitrate hat?

ja, die uralten Gesellen hatten das noch nicht. Der alte PCA82C251 auch nicht.

CAN-Transceiver bleibt immer noch in meinen Gedanken als mögliche Lösung für UART, da rezessiv kaum Strom auf den 120 Ohm-Widerstand verbraucht wird.

Es gibt auch Single-Wire CAN...

https://www.nxp.com/products/interfaces/can-transceivers/legacy-can/single-wire-can-transceiver:MC33897

OP #7424665
Lesenswert?

Thomas F. schrieb:

Es gibt auch Single-Wire CAN...

https://www.nxp.com/products/interfaces/can-transceivers/legacy-can/single-wire-can-transceiver:MC33897

Danke, ich habe schon angekuckt. Auch möglich. Aber ziemlich langsam.

ja, die uralten Gesellen hatten das noch nicht.

MARCH 2001–REVISED APRIL 2018 NOVEMBER 2002–REVISED OCTOBER 2015

Hauptsache, alles funktioniert. Logische IC 74HC und 4000 sind auch uralt, und man nimmt sie immer noch...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren