Hallo! Ich bin gerade dabei, ein kleines System aufzubauen, bei dem meine Mikrokontroller mit dem PC kommunizieren können und umgekehrt. Hierzu verwende ich ein USB-CAN-Modul der Firma Systec, welches nur einen 9-pol. SUB-D-Anschluss hat. Um aber mit allen µC's kommunizieren zu können, habe ich mir einen kleinen Verteiler gebaut, bei dem ich alle Receive- und Transmit-Leitungen auf einen SUB-D-Stecker zusammenziehe und von diesem ein Kabel zum Rechner gelegt habe. Leider habe ich bis jetzt noch keine Übertragung zustande gebracht, obwohl ich den Durchgang der Sende- und Empfangsleitungen schon überprüft habe und die Kommunikation zwischen PC-µC für einen µC (mit direkter Verbindung zum PC, ohne Verteiler) einwandfrei funktioniert. Deshalb meine Frage: Muss ich neben der Sende- und Empfangsleitung noch irgendwelche andere Verbindungen herstellen? Oder könnten durch die Verbindungskabel im Verteiler (normale Flachbandkabel) die Signale der CAN-Übertragung negativ beeinflusst werden? Ich bin für jede Hilfe sehr dankbar! MfG Thomas
>bei dem ich alle Receive- und Transmit-Leitungen >auf einen SUB-D-Stecker zusammenziehe Ne, Moment mal wie meinst du das?
@ Obelix: äähm... Sternverdrahtung? ... Ich muss leider gestehen, dass ich nicht recht weiß, was das ist... aber ich habe bei meinem Verteiler einfach alle gleichen Leitungen (wenn ich mich recht erinnere 3er und 7er-Leitung vom SUB-D-Stecker) auf eine Streifenrasterplatine gelötet und von dort eine Leitung auf den gleichen Anschluss eines anderen SUB-D-Stecker gelötet, an dem ich das Kabel zum PC angeschlossen habe.
Guggst du hier guggst du http://de.wikipedia.org/wiki/Controller_Area_Network#Topologie Ein CAN-Bus hat keine Leitungen die Receive und Transmit heißen, sondern eher CAN-L und CAN-H. Weist du was ein Abschlußwiderstand ist?
Also du hast an dem USB-CAN Adapter am Sub-D einen CAN-H und einen CAN-L Pin. Die musst du mit allen CAN-H und CAN-L von den CAN-Transceiver verbinden. Die CAN-Tranceiver wiederum sind an dem zugehörigen µC über die CAN-RX und CAN-TX verbunden. Mit dem PC Verbindest du nur den USB von USB-CAN Adapter ... Dann noch GND Verbinden. Ist Deine Schaltung so? Alles andere wäre falsch und kann nicht funktionieren.
OK, gut, mein Fehler g... Ja, habe einen Widerstand von 120 Ohm am seriellen Kabel, das ich am USB-CAN-Modul angeschlossen habe. Aber ich habe auch schon mit einem normalen seriellen Kabel eine korrekte Übertragung erreicht. Es klappte bis jetzt jede Übertragung, solange ich nicht meinen Verteiler dazwischengehängt habe...
@ opacer: ja, wenn ich jetzt nichts falsch verstanden habe, dann hätte ich eigentlich meine leitungen genauso angeschlossen. bist du dir 100%ig sicher, dass das alles ist? wenn ja, dann werd ich doch noch mal meinen verteiler in seine einzelteile zerlegen ;)
Ein Abschlußwiderstand gehört an BEIDE Enden des Buses. Am besten, du läßt den Verteiler komplett weg.
PS. Das mit den 120 Ohm betrifft nur den High-Speed-CAN.
CAN-verteiler funktioniert perfekt... bin dahintergekommen, dass die streifenrasterplatine das signal nicht durchlässt... auch den widerstand benötige ich nicht unbedingt... trotzdem danke... mfg thomas
jo, den Widerstand muss man immer im Zusammenhang mit Leitungslänge und Baudrate sehen. Vor kurzem hatte ich hier ein Gerätchen zu bauen, 500kBit, Gegenstation bei mir in der Werkstatt nur ein USB-Dongle ohne Abschluss. Für den Test habe ich die Leitung (10m) nur einseitig mit 1k2 terminiert und eine ganze Nacht lang kräftig in beide Richtungen Daten geschickt: kein einziger error-frame.
Zum Testen ist es ja OK, aber ist ein Widerstand so teuer, das man ihr einsparen muss, und damit ein erhöhtes Risiko eingeht?
ist mir schon klar, dass bei längeren leitungen ohne widerstand trotzdem fehler auftreten können. habe jetzt auch 120 ohm dazwischengelötet, da die daten möglichst fehlerfrei übertragen werden sollten und ich eine high-speed-can übertragung verwede. sorgen machte mir anfangs ja nur der umstand, dass ich nicht mal eine fehlerübertragung zustande brachte...
Kann mir jemand verraten, wie CAN ganz ohne Widerstand überhaupt funktionieren kann? So wie ich das bisher kannte, sorgen die Treibertransistoren zwar für den dominanten Pegel, aber einzig der Abschlusswiderstand für den rezessiven Pegel. Im Transceiver ist zwar noch ein differentieller Widerstand von zig KOhm drin, aber das dürfte kaum reichen.
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.