Guten Tag! Ich habe eine Frage: kann man für kurze Strecke und niedrige Baudrate CAN-Bus als eine Leitung (und GND) mit Open Drain machen? D.h. statt stromfressigen Treiber wie MCP2551 etwa SN74HCS09 mit Widerstand Bus - VCC ca. 1k benutzen? Was spricht dagegen? Genauer: ich möchte zwei (zuerst) PCB mit einem Kabel ca.2-3 Meter verbinden. Als Kabel möchte ich USB-A (beide Buchsen) nehmen, da ich eine Platine von anderer auch speisen möchte. Als eine Lösung wäre USART denkbar. Aber vielleicht wäre so "leichte CAN" zwischen zwei AT90CAN128 (unter Rücksicht auf mögliche Erweiterung) auch sinnvoll? Für analoge Mikrofone, das weiß ich aus Erfahrung, funktioniert eine asymmetrische Leitung etwa bis 1,5 Meter fast ohne Brummen. Dort ist Signal aber in Millivoltbereich, und hier wird schon 5 Volt. Viele Grüße!
Ja, aufgrund der Funktionsweise von CAN ist das grundsätzlich möglich. Um zu beurteilen, ob das was du konkret vor hast funktioniert, bräuchte es halt einen Schaltplan.
:
Bearbeitet durch User
Maxim B. schrieb: > Ich habe eine Frage: kann man für kurze Strecke und niedrige Baudrate > CAN-Bus als eine Leitung (und GND) mit Open Drain machen? Ja, das geht. Alle CAN-Rx verbinden, die CAN-Txe über Dioden dazu (so dass sie auf Low ziehen können und bei High abgekoppelt sind) und 1k als Pullup. Funktioniert einwandfrei auf der Leiterplatte und über die Backplane im Gerät. > Genauer: ich möchte zwei (zuerst) PCB mit einem Kabel ca.2-3 Meter > verbinden. Als Kabel möchte ich USB-A (beide Buchsen) nehmen, da ich > eine Platine von anderer auch speisen möchte. Das ist schon eine andere Ansage, aber wenn Du die Anstiegszeiten im Auge behältst, dann sollte es auch funktionieren. Leitungskapazität, Datenrate und Pullup müssen halt zusammenpassen.
Nehm LIN-Bus. Geht bis 20kBaud, gibt Treiber mit integriertem Spannungsregler und ist sowieso schon Eindraht. Weiß nicht wie es bei internen/externen CAN-Treibern aussieht, aber LIN-Treiber sind "dumm" insofern ihnen das Protokoll was durchgeht egal ist, du dich also nicht an irgendwelche vorgegebene Schemata mit Prüfsummen/Adressen etc. halten musst.
Soul E. schrieb: > Maxim B. schrieb: > >> Ich habe eine Frage: kann man für kurze Strecke und niedrige Baudrate >> CAN-Bus als eine Leitung (und GND) mit Open Drain machen? > > Ja, das geht. Alle CAN-Rx verbinden, die CAN-Txe über Dioden dazu (so > dass sie auf Low ziehen können und bei High abgekoppelt sind) und 1k als > Pullup. Funktioniert einwandfrei auf der Leiterplatte und über die > Backplane im Gerät. > > wenn Du die Anstiegszeiten im > Auge behältst, dann sollte es auch funktionieren. Vielen Dank! Wahrscheinlich wäre es für nur zwei Platinen und zwei vorhandenen in USB-Kabel Signalleitungen auch USART ausreichend. Aber ich möchte doch mit CAN experimentieren. Ich denke, ich nehme lieber statt Diode Open-Drain-Puffer aus HCS-Serie. Sehr interessante neue Serie, schneller als HC und alle Eingänge mit Schmitt-Trigger. Ich habe schon HCS165 ausprobiert... Sascha schrieb: > Nehm LIN-Bus. LIN möchte ich nicht, da die zweite Platine auch etwas schicken sollte, wann sie will.
:
Bearbeitet durch User
Maxim B. schrieb: > Ich denke, ich nehme lieber statt Diode > Open-Drain-Puffer aus HCS-Serie. Vollkommen egal, totaler Overkill. Aber ja, der Maxi mach halt immer alles komisch.
>> Maxim B. schrieb: > Sascha schrieb: >> Nehm LIN-Bus. > LIN möchte ich nicht, da die zweite Platine auch etwas schicken sollte, > wann sie will. CAN und LIN sind halbduplex, es kann also bei beiden Übertragungsarten zu Buskollisionen kommen. Du wirst also um irgendeine Art Abritrierung nicht drumrum kommen. Wenn es bei zwei Busteilnehmern bleibt, einfach abwechselnd senden/empfangen.
Sascha schrieb: > CAN und LIN sind halbduplex, es kann also bei beiden Übertragungsarten > zu Buskollisionen kommen. Du wirst also um irgendeine Art Abritrierung > nicht drumrum kommen. Bisher hatte CAN die Arbitrierung mit der eingbauten dominant/rezessiv-Erkennung während der geplanten Kollisionen immer selbst erledigt. Gibts jetzt ein Schrumpf-CAN ohne Arbitrierung? Oder gibt es Stromersparnis, wenn man die eingebaute Arbitrierung leerlaufen läßt und eine eigene Arbitrierung draufpackt? Gruß Klaus (der soundsovielte) P.S.Wer Sarkasmus findet, darf ihn behalten :-)
Sascha schrieb: > CAN und LIN sind halbduplex, es kann also bei beiden Übertragungsarten > zu Buskollisionen kommen. Für CAN hat AVR-Serie AT90CAN32-128. Gibt es bei AVR etwas mit eingebauem LIN-Modul?
Einfach 2 Microcontroller per "Poor Man's CAN-Bus" zusammenschalten: https://www.hackster.io/monkbroc/poor-man-s-can-bus-602636 Habe ich schon mehrfach erfolgreich eingesetzt.
Danke! Interessante Idee. Mit HC30 und einem NOT kann man so 8 Geräte verbinden.
Und bist dann weit weg von one/two-wire. Geht wenn die alle nah beieinander sind. Da finde ich Diodenlösung deutlich besser, kann immerhin ein paar Meter mit einer Leitung + Masse.
H.Joachim S. schrieb: > Und bist dann weit weg von one/two-wire. Ich möchte etwas wählen, wofür in AVR fertige Module existieren, die ISR haben. Deshalb kommt 1-Wire nicht in Frage. Diodenlösund scheint mir etwas unsauber. Ich möchte "Open-Drain" Logik mit Schmitt-Trigger ausprobieren. Ein Element kommt zwischen Tx und Linie, zweiter kommt zwischen Linie und RX. So etwas wie 74HCS09 scheint mir passend zu sein. Wenn i2c schon einige Meter überdeckt, warum könnte das "unter-CAN" nicht?
:
Bearbeitet durch User
Maxim B. schrieb: > Sascha schrieb: >> CAN und LIN sind halbduplex, es kann also bei beiden Übertragungsarten >> zu Buskollisionen kommen. > Für CAN hat AVR-Serie AT90CAN32-128. Gibt es bei AVR etwas mit > eingebauem LIN-Modul? LIN ist praktisch UART mit Support für BREAK Erzeugung und Erkennung. Wenn Du nicht das Protokoll, sondern nur den physikalischen Layer verwenden willst, kannst Du fast alles verwenden. fchk
Maxim B. schrieb: > Ich möchte etwas wählen, wofür in AVR fertige Module existieren, die ISR > haben. Deshalb kommt 1-Wire nicht in Frage. Das haste wohl was völlig falsch verstanden. Ich meinte nicht den üblichen Onewire-Bus, sondern Eindraht-CAN. Und bei deiner Idee mit HC30 schleppt man eben nicht nur die eigentliche Busleitung sondern auch die 8 TX bis zu einem zentralen Gatter mit. Maxim B. schrieb: > Diodenlösund scheint mir etwas unsauber. manchmal trügt der Schein. Das funktioniert gut, vor allem wegen der automatischen Fehlerkorrektur von CAN. Vorgesehene Buslast darf eben nicht zu gross sein. Maxim B. schrieb: > Wenn i2c schon einige Meter überdeckt, warum könnte > das "unter-CAN" nicht? CAN kann :-).
Maxim B. schrieb: > D.h. statt stromfressigen Treiber wie MCP2551 etwa SN74HCS09 mit > Widerstand Bus - VCC ca. 1k benutzen? Was spricht dagegen? Es ist arschlangsam. Ein 3m Kabel mit 1k pull up (5mA, exakt die Spezifikation früherer Centronix Druckeranschlüsse) geht maximal mit 1kBd, eher weniger wenn es störsicher sein soll. CAN Bus braucht zwar wegen Busterminierungswiderstand und linearen Treibern Power, aber nur beim Senden. Mit brauchbaren Treibern wie NCV7340 brauchst du den Rest der Zeit 10uA. Strom ist also kein Argument. Über USB Stecker ein nicht-USB Signal zu führen find ich aber blöd. USB geht auch über 3m. Man braucht halt nur die Rechenpower für einen Host. STM Nucleo oder so.
:
Bearbeitet durch User
Maxim B. schrieb: > Sehr interessante neue Serie, schneller als HC Warum muss ein Open-Wasauchimmer denn "schnell" sein? "Schnell" kann ja nur die eine Flanke sein, die von dem Open-Irgendwas aktiv gezogen wird. Die andere Flanke ist so langsam wie es der Pullup samt der Leitungsimpedanz halt so hergibt. Und "schnelle" Flanken bringen dann auch immer (das will die Physik so) irgendwelche unschönen Reflexionen und Signalklingeln mit sich. > Aber ich möchte doch mit CAN experimentieren. Warum frickelst du dann selber irgendwas Fadenscheiniges zusammen, das im Grunde so gut wie nichts mit CAN zu tun hat? Maxim B. schrieb: > Ich möchte "Open-Drain" Logik mit Schmitt-Trigger ausprobieren. Möchte, möchte... Warum machst du es denn nicht einfach? Warum probierst du es nicht aus? Wer hält dich davon ab?
:
Bearbeitet durch Moderator
Michael B. schrieb: > Über USB Stecker ein nicht-USB Signal zu führen find ich aber blöd. USB > geht auch über 3m. Ich möchte Kabel nehmen, das überall zu finden ist, robusten Steckdosen hat und das mit anderen Kabel in Projekt nicht zu verwechseln ist (aus diesem Grund kein MIDI-Kabel). > Man braucht halt nur die Rechenpower für einen Host. > STM Nucleo oder so. Da ich Elektronik nur in Freizeit mache, habe ich keine Möglichkeit, alle gängige Systeme kennenzulernen. Ich möchte lieber zuerst die AVRs richtig erlernen. Und was in Zukunft kommt, das ist Zukunf.
:
Bearbeitet durch User
Maxim B. schrieb: > Michael B. schrieb: >> Über USB Stecker ein nicht-USB Signal zu führen find ich aber blöd. USB >> geht auch über 3m. > > Ich möchte Kabel nehmen, das überall zu finden ist, robusten Steckdosen > hat und das mit anderen Kabel in Projekt nicht zu verwechseln ist (aus > diesem Grund kein MIDI-Kabel). Dann nimm Telefonkabel mit 4- oder 6-poligen Modularsteckern. (RJ10). Kabel gibts als Meterware, Stecker sind kein Problem, und die passende Crimpzange kostet auch nicht viel. fchk
Lothar M. schrieb: > Warum machst du es denn nicht einfach? Warum probierst du es nicht aus? > Wer hält dich davon ab? Die Zeit. Die Sache frißt enorm viel Zeit. Heute wieder mal ein Päckchen aus China :) Eine kleine Platine für JTAG-Adapter: ich möchte in meinen Projekten statt 2,54 mm IDC-10 etwas kleinere mit 2 mm zwischen Pins und in SMD-Bauweise benutzen (nach dem alles fertig wird, kann so eine Steckdose leichter entfernt werden als die mit Löcher. Auch andere Seite von Platine kann man dann besser verwenden). Sonst sieht das unharmonisch aus: kleine AVR und riesige IDC. Von Ideal wird das noch weit, aber schon besser als ursprüngliche.
Frank K. schrieb: > Dann nimm Telefonkabel mit 4- oder 6-poligen Modularsteckern. (RJ10). Ja, darüber habe ich auch schon gedacht... Aber diese Steckdose ist doch etwas weniger robust. Das Ding wird für ständige Transport gedacht. Ich habe sogar gedacht, 6,35 mm-Jack mit 3 Pin zu nehmen. Aber Verwechslungsgefahr: in Umgebung werden viele Jack-Kabel für Audio benutzt. Weniger als 3 Pin geht es nicht. Aber vielleicht nehme ich doch CAN mit gewöhnlichen Treiber: USB-Kabel hat zwei Signalleitungen.
:
Bearbeitet durch User
Maxim B. schrieb: > Michael B. schrieb: >> Über USB Stecker ein nicht-USB Signal zu führen find ich aber blöd. USB >> geht auch über 3m. > > Ich möchte Kabel nehmen, das überall zu finden ist, robusten Steckdosen > hat und das mit anderen Kabel in Projekt nicht zu verwechseln ist Dann nimm wenigstens Patchkabel mit RJ45. Das ist zwar genauso verkehrt wie USB zu nehmen, aber RJ45 wird sowieso überall für alles mögliche benutzt.
Bauform B. schrieb: > Dann nimm wenigstens Patchkabel mit RJ45. Aber schlau wäre es, die Versorgung dann so anzuschließen, dass nicht der Ethernettrafo des aus Versehen angeschlossenen 2k€-Laptops dank der ebenfalls draufgelegten 5V abraucht.
Bauform B. schrieb: > aber RJ45 wird sowieso überall für alles mögliche > benutzt. Nicht bei mir. In meinem Haushalt habe ich bisher solche Kabel gar nicht. Bei mir liegen dafür viele USB-, Jack- und XLR-Kabel herum... XRL wäre wegen Robustheit wohl am besten. Aber mögliche Verwechslung: wenn vor einem Einsatz fieberhaft alles zusammen zu stecken, das sollte gut durchgedacht werden. Aber ich habe wegen CAN-Treiber zu lange bei Reichelt gekuckt. Jetzt sehe ich bei Mouser: es gibt wirklich was weniger frißt.
Lothar M. schrieb: > Aber schlau wäre es, die Versorgung dann so anzuschließen, dass nicht > der Ethernettrafo des aus Versehen angeschlossenen 2k€-Laptops dank der > ebenfalls draufgelegten 5V abraucht. Kein Problem: 2k€-Laptops gibt es bei mir gar nicht :) Ganzes Geld investiere ich in Musikinstrumente. Audioaufnahmen mache ich nie mit Laptop, ich habe dafür 8-Spur-Rekorder. Der ist sicherer als Laptop mit Audiointerface. Und auch viel kleiner. Deshalb keine Nowendigkeit... Wegen RJ45: ich möchte ja auch entfernte Platinen speisen. Bei RJ45 sehen die Drähtchen so dünn aus... Das ist ein wichtiger Grund für USB-Kabel: mindestens 0,5 A hält jedes, und Verpolung nicht möglich. Wenn aber Signadader in was anderes gesteckt werden, kann nicht viel passieren.
Maxim B. schrieb: > Aber ich habe wegen CAN-Treiber zu lange bei Reichelt gekuckt. Jetzt > sehe ich bei Mouser: es gibt wirklich was weniger frißt. Das eröffnet ja ganz neue Möglichkeiten: Der halb-offizielle CAN-Stecker ist Subminiatur-D, DE-9. Kennt evt. noch jemand von COM-Ports ;) Sehr gutes Preis/Leistungsverhältnis, sicher mehr als 1A pro Kontakt, Reichelt hat alle Einzelteile, vor allem Gehäuse in vielen Varianten. Und heutzutage kaum noch verwechselbar. Nur bei der Pinbelegung bin ich ratlos. Wie verbreitet ist der alte Vorschlag von TI aus der slla270? Edit: Reichelt müsste auch noch fertige Kabel haben, genannt Modem-Kabel.
:
Bearbeitet durch User
Bauform B. schrieb: > Das eröffnet ja ganz neue Möglichkeiten: Der halb-offizielle CAN-Stecker > ist Subminiatur-D, DE-9. Kennt evt. noch jemand von COM-Ports Zu groß.
Bauform B. schrieb: > Wie verbreitet ist der alte Vorschlag von TI aus der slla270? Weiß nicht. Aber das hier https://de.canopen-lift.org/wiki/CANopen-Stecker_9-Pin_D-Sub ist doch recht verbreitet. Zumindest die PEAK und Vector Adapter verwenden diese Belegung. Matthias
Maxim B. schrieb: > Ich habe sogar gedacht, 6,35 mm-Jack mit 3 Pin zu nehmen. > Aber vielleicht nehme ich doch CAN mit gewöhnlichen Treiber: USB-Kabel > hat zwei Signalleitungen. Es gibt auch Single-Wire CAN: https://www.nxp.com/products/interfaces/can-transceivers/legacy-can/single-wire-can-transceiver:MC33897 Wird bei Motorrädern gerne verwendet. Robuste Steckverbinder und USB widerspricht sich aber. Wenn es robust sein soll dann würde ich eine M8 oder M12 Sensorleitung verwenden.
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! Sehr interessant! Vielleicht ist das gerade was ich brauche. > > Robuste Steckverbinder und USB widerspricht sich aber. > Wenn es robust sein soll dann würde ich eine M8 oder M12 Sensorleitung > verwenden. Mit Single-Wire CAN kann ich gewöhnliche Stereokabel mit Jack 6,35 nehmen. Solche Kabel habe ich genug und die sind genug robust. Für mich ist noch wichtig, schnell schalten zu können. Jack 6,35 ist dafür gut geeignet. Ich glaube, MC33897 überlebt auch, wenn BUS bei dem Einstecken auch kurzzeitig an GND oder VCC kommt.
:
Bearbeitet durch User
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.