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
@ 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.
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 ;)
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.
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.