Hallo, ich verwende ein CAN200-Dongle mit einem SJA1000-Controller. Die Kommunikation mit dem Controller über EPP funktioniert sehr gut. Auch die Kommunikation mit zwei Infineon 167CR-MCs mit internen CAN-Controller funktioniert im grossen und ganzen gut, nur habe ich das Problem, dass der SJA1000 manchmal (nach ca. einer Stunde) anfängt Nachrichten zu empfangen, die gar nicht gesendet wurden, bzw. deren Inhalt nicht stimmt (z.B. falsche Längenangaben mit mehr als 8 Byte im Nachrichtenheader). Manchmal fängt der Controller sich nach einigen Nachrichten wieder und manchmal empfängt er dann nur noch falsche Nachrichten. Die beiden C167CR bleiben davon scheinbar unberührt und tauschen weiterhin Nachrichten aus. Kennt jemand dieses Verhalten beim SJA1000, oder hat jeman eine Idee, woran dieses Verhalten liegen könnte? Ich hoffe diese Frage passt in dieses Forum. Vielen vielen Dank Markus Bernard
hab auch den can200 und unter win2k habe ich das selbe beobachtet... 9 oder mehr bytes wurden angeblich empfangen! die hardware hatte jedoch definitiv nur 8 byte gesendet(ich hab es mit weiterem dongel von peak und nem oszi nachgemessen!) ignoriere es einfach, das mache ich zumindest!
Hallo KoF, ich kann das leider nicht ignorieren, da es ja machmal vorkommt, dass des SJA1000 nur noch falsche Nachrichten empfängt. Ausserdem soll der Dongle für Echzeitübertragung verwendet werden und da darf er nicht im Vorfeld schon solche Schwächen zeigen. Danke trotzdem Markus
Wie lang ist denn die Verbindung der Datenleitungen zwischen PC und SJA1000? Ich hab von solchen Problemen mit dem SJA1000 schon mal gehört. Die Leitung war ca 30cm lang. Gruß Sebastian
Hallo, die Leitung ist einen Meter lang. Allerdings habe ich im Fehlerfall die Register nochmal über das Softwarehandshake ausgelesen und die Werte stimmen mit dem EPP-Werten überein. Nun hatte ich überlegt, dass eventuell beim Senden der Nachricht die Werte per EPP falsch in die Register geschrieben werden und der Controller seine eigene Nachricht empfängt. Aber der Selbstempfang ist ausgeschaltet und daher müsste die Nachricht von aussen kommen. Das mit dem Kabel werde ich selbstverständlich ausprobieren, was aber bitte niemanden hindern soll weitere Vermutungen zu äussern. Ich bin für jeden Verdacht dankbar und probiere alles gerne aus. Vielen Dank für die Antwort Markus Bernard
Hallo, ich habe den Controller nun direkt am Druckerport angeschlossen und der Fehler besteht weiterhin. Ich habe einen der C167-Controller so eingestellt, dass er alle Nachrichten empfängt und er empfängt tatsächlich auch ein paar falsche Nachrichten, d.h. die Nachrichten werden wirklich auf Bus gelegt. Aber warum? Ich benutze die Infineon CAN-Library, hat die irgendwelche Kinderkrankheiten? Vielen Dank Markus
hmm... falsche nachrichten werden bei mir nur angezeigt, aber nicht gesendet!! hast du eventuell den abschlusswiderstand zu klein gewählt?
Hallo, 120 Ohm an beiden Enden. Ausserdem scheint die Nachricht den CRC-Check zu passieren und daher ist es doch recht unwahrscheinlich, dass sie aus einem Kabelfehler entstanden ist, oder? Vielen Dank Markus
Hallo, ich wollte nur bescheid sagen, dass ich die Lösung des Problems gefunden habe: Obwohl ich im Resetmode das Lesen und Schreiben der Register ausgiebig getestet habe, funktionierte das EPP-Handshake im "normalen" Betrieb manchmal nicht. Deswegen wurden im Sendebetrieb die Nachrichtenheader (und oder die Nachricht) nicht richtig in die Register geschrieben, so dass der Controller Nachrichten mit falschen Header empfing. Dies scheint, unter gewissen Umständen, den Controller völlig aus den Tritt zu bringen (und das, obwohl der Controller diese Nachrichten selber gesendet hat). Schon zu Beginn meiner Experimente mit dem CAN200-Dongle, konnte ich den EPP-Modus erst in Betrieb nehmen, nachdem ich die EPP-WAIT Rückkoppelung um 10 ns verzögert habe (zusätzliches Gatter). Die nWRITE-Leitung wurde schon im Originalschaltplan durch ein R-C-Verzügerungsglied um 55 ns verzögert. Nachdem ich die Verzögerung durch eine schrittweise Änderung des Widerstandes auf ca. 20 ns veringert habe sind die Fehler verschwunden. In dieser Konfiguration hat der Dongle einen Dauertest von ca. acht Stunden, mit einer Gesamtzahl von 250 Mil. gesendeten/empfangenen Datenpaketen, bestanden. P.S. Die Kabellänge von einem Meter scheint keine Probleme zu machen. Vielen Dank an alle die mir geantwortet haben. Markus Bernard
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.