Forum: Mikrocontroller und Digitale Elektronik CAN Bus mehrere Teilnehmer


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Thomas (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe einen CAN- BUS mit 3 Teilnehmern (A, B, C). Teilnehmer A ist 
ein Raspberry, welcher mit dem pican 2 Shield betrieben wird. B & C sind 
ein Arduino mit jeweils einen TJA1050 MCP2515 Shield.

Teilnehemr A und B sind 30cm entfernt, B ist zu C etwa 8m entfernt.

Hänge ich nur A und B an den CAN- Bus, funktioniert alles problemlos. 
Hänge ich zusätzlich Teilnehmer C dazu, kann Teilnehmer B plötzlich 
nichts mehr senden (keiner Acknowledged das Datenpaket), aber er 
empfängt noch Pakete. A und C können miteinander sprechen.

Entferne ich Teilnehmer C wieder, können A und B wieder kommunizieren.

Alle benutzen das gleiche GND, B und C jedoch eine andere 
Spannungsquelle.
Auf A und C ist der Endwiderstand aktiviert.

Geschwindigkeit ist 125kbit/s auf allen Teilnehmern eingestellt.

Ich hatte das gleiche Setup bereits öfters mit allen 3 Teilnehmern auf 
gleichen Tisch probiert, dort funktionierte alles problemlos (alle 
hatten aber die gleiche Spannungsquelle und waren höchstens 30cm 
auseinander.

Hat jemand eine Idee, woran das liegen könnte?

von Sven L. (sven_rvbg)


Bewertung
1 lesenswert
nicht lesenswert
Was passiert wenn du B und C tauschst?

von Oliver (Gast)


Bewertung
1 lesenswert
nicht lesenswert
tja typisch. Die Bastler können heute nur noch Shields benutzen -sprich 
irgendwas irgendwo reinstecken- und fertige Software einbinden und sind 
nicht in der Lage einem evtl. Fehler auf den Grund zu gehen.

Wie wäre es als erstes, sich mit einem Oszi die Signale und 
Signalqualität anzusehen? Die dann zu sehenden Unterschiede sind 
wesentlich zielführender, als hier im Nebel rumzustochern und anderer 
Leute Zeit zu stehlen.

von Holger T. (holgert)


Bewertung
0 lesenswert
nicht lesenswert
Terminierungswiderstände?

Beitrag #5360848 wurde vom Autor gelöscht.
von STK500-Besitzer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Holger T. schrieb:
> Terminierungswiderstände?

Würde ich auch vermuten. Wenn entweder zu wenig (offene Enden) oder zu 
viele (Shields sind als Punkt-zu-Punkt-Verbindung ausgelegt).

von Thomas (Gast)


Bewertung
-3 lesenswert
nicht lesenswert
Was sind Terminierungswiderstände?

von Kuno (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Thomas schrieb:
> Was sind Terminierungswiderstände?

Die Abschlußwiderstände für den Bus.
120 Ohm am beiden Enden des Busses.

Thomas schrieb:
> Auf A und C ist der Endwiderstand aktiviert.

von Ralf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Thomas schrieb:
> Was sind Terminierungswiderstände?

Internetsuche kaputt?

von ThomasM (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Da hier nun ein 2ter Thomas als Gast herumgeistert, habe ich meinen 
Namen auf ThomasM geändert :)...

Komme leider erst wieder nächste Woche zum probieren, aber mal 
grundsätzlich:

Als Kabel kann ich ein mormales Datenkabel geschirmt verwenden? Es muss 
kein besonderes Kabel sein?

STK500-Besitzer schrieb:
> Würde ich auch vermuten. Wenn entweder zu wenig (offene Enden) oder zu
> viele (Shields sind als Punkt-zu-Punkt-Verbindung ausgelegt).

Derzeit ist ein Endwiderstand auf Client A und C (siehe Bild erster 
Beitrag). Wäre es auch möglich, dass ich gar keine brauche?

Wenn ich die Datenrate reduziere, werden Fehler auf dem Bus eher 
verziehen oder? Also könnte ich mal mit wesentlich geringerer 
Geschwindigkeit testen?

von Holger T. (holgert)


Bewertung
1 lesenswert
nicht lesenswert
ThomasM schrieb:
> Derzeit ist ein Endwiderstand auf Client A und C (siehe Bild erster
> Beitrag).

Ich habe schon viel zu oft im Leben gehört: Das haben wir geprüft. Das 
ist In Ordnung und kann nicht die Ursache sein.

ThomasM schrieb:
> Wäre es auch möglich, dass ich gar keine brauche?

Echt jetzt? Beschäftige Dich mit der CAN Spezifikation!

ThomasM schrieb:
> Alle benutzen das gleiche GND, B und C jedoch eine andere
> Spannungsquelle.

Ist für mich völlig unlogisch. A und B liegen nebeneinander, C angeblich 
in 8 m Entfernung. Wie ist GND ausgeführt? Vervollständige Deine Skizze 
um GND, Versorgung und Endwiderstände. Aber so, wie ausgeführt und nicht 
wie geplant. Es ist sehr wahrscheinlich, dass der Fehler dort zu finden 
ist.

ThomasM schrieb:
> Als Kabel kann ich ein mormales Datenkabel geschirmt verwenden? Es muss
> kein besonderes Kabel sein?

Bei den Datenraten, Längen können es (zum Test) zwei einzelne 
(verdrillte) Drähte sein.

Sven L. schrieb:
>Was passiert wenn du B und C tauschst?

Beantworte diese Frage, sonst

Oliver schrieb:
>... als hier im Nebel rumzustochern und anderer
> Leute Zeit zu stehlen.

von StefG (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Alles ausschalten und messen ob zwischen CAN-HI und CAN-LO 60 Ohm sind.

von ThomasM (Gast)


Angehängte Dateien:

Bewertung
-1 lesenswert
nicht lesenswert
Anbei die absolute Wahrheit.

Die Endwiderstände sind jeweils am Shield mit einem Jumper aktiviert.

von ThomasM (Gast)


Bewertung
0 lesenswert
nicht lesenswert
ThomasM schrieb:
> Anbei die absolute Wahrheit.

Ich sehe gerade, die L & H leitung vom CAN Bus ist beim Teilnehmer C 
verdreht ist in der Realität nicht so ;-)

von Sven K. (svenk)


Bewertung
0 lesenswert
nicht lesenswert
ThomasM schrieb:
> Anbei die absolute Wahrheit.
>
> Die Endwiderstände sind jeweils am Shield mit einem Jumper aktiviert.

Hast Du jetzt mal gemessen und sind da tatsächlich 60 Ohm zu messen ?
(wie oben vorgeschlagen ?)


Gruß Sven

: Bearbeitet durch User
von ThomasM (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sven K. schrieb:
> Hast Du jetzt mal gemessen und sind da tatsächlich 60 Ohm zu messen ?
> (wie oben vorgeschlagen ?)

Kann ich leider erst wieder Sonntag bzw. Montag :( ...

von Thomas F. (igel)


Bewertung
-2 lesenswert
nicht lesenswert
ThomasM schrieb:
> Anbei die absolute Wahrheit.

Die Masseverbindung zwischen A+B und C ist bei CAN nicht zwingend 
notwendig.

Versuchs mal ohne.

Meine China-MCP2515-Module haben eine 8MHz Quarz statt die üblichen 
16MHz. Das muss man bei der Initialisierung des MCP2515 berücksichtigen.

von dummschwaetzer (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Dreh mal ein Netzteilstecker 180° in der Steckdose

von ThomasM (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Thomas F. schrieb:
> Die Masseverbindung zwischen A+B und C ist bei CAN nicht zwingend
> notwendig.

Die habe ich auch erst gezogen, weil B nicht funktionierte.

dummschwaetzer schrieb:
> Dreh mal ein Netzteilstecker 180° in der Steckdose
+/- sind korrekt angeschlossen und gemessen.

Thomas F. schrieb:
> Meine China-MCP2515-Module haben eine 8MHz Quarz statt die üblichen
> 16MHz. Das muss man bei der Initialisierung des MCP2515 berücksichtigen.

Der Raspberry (A) hat ein 16Mhz Quarz verbaut, die Microcontroller (B,C) 
haben 8Mhz Quarz verbaut. Bei der Initialisierung ist der korrekte Wert 
angebenen.
2 unterschiedliche Quarz machen eh kein Problem?

von ThomasM (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe nun einen 4ten CAN- Bus mit Arduino zum Testen gebaut und anstatt 
von Teilnehmer B ins Netz gehängt.
Siehe da, es funktioniert alles.

Habe nun vom Teilnehmer B den CAN- Bus Shield ausgetauscht und alles 
funktioniert nun :) ...

Danke für eure Hilfe!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.